{"id":458,"date":"2013-05-07T10:54:10","date_gmt":"2013-05-07T14:54:10","guid":{"rendered":"http:\/\/www.campano.cl\/?p=458"},"modified":"2013-05-07T10:54:10","modified_gmt":"2013-05-07T14:54:10","slug":"ipexterna","status":"publish","type":"post","link":"https:\/\/www.campano.cl\/?p=458","title":{"rendered":"Agregar IP externa a lista de firewall en Mikrotik"},"content":{"rendered":"<p>Hoy me propuse algo simple, pero necesario en muchos escenarios, mejorar la automatizaci\u00f3n de esas tareas que nos generan m\u00e1s de un problema, una de ellas es la de agregar nuestra IP externa a un lista en el firewall de Mikrotik, esto para hacer un correcto uso del dstnat ya que si redireccionamos toda la red aun solo equipo en el puerto que queremos no tiene gracia \u00bfcierto?, adem\u00e1s es f\u00e1cil o relativamente f\u00e1cil tener un script programado por tiempo que agregue dicha IP externa a una lista borrando constantemente la entrada anterior, ser\u00eda algo as\u00ed (el script):<\/p>\n[learn_more caption=\u00bbC\u00f3digo\u00bb]\n<p>:local numeroipext [\/ip firewall address-list find comment=\u00bbip_ext\u00bb];<\/p>\n<p>\/ip firewall address-list remove number=$numeroipext;<\/p>\n<p>:local test [ \/ip address get [\/ip address find interface=Internet] address ];<\/p>\n<p>:local ip [:pick $test 0 [:find $test \u00ab\/\u00bb]]; :put $ip;<\/p>\n[\/learn_more]\n<p>\/ip firewall address-list add list=\u00bbIP Externa\u00bb address=$ip comment=\u00bbip_ext\u00bb;[\/quote]\nEso asumiendo que la interfaz ethernet o PPoE se llama \u00abInternet\u00bb que original !!! Chan!<br \/>\nEl problema que \u00abpuede\u00bb pasar es que si por alguna raz\u00f3n requieres de una comunicaci\u00f3n muy, pero muy fluida y seteas cada 5 minutos el cron o Scheduler de Mikrotik tendr\u00edas un peque\u00f1o momento de desconexi\u00f3n, entonces que tal si hacemos mas interesante el script y le agregamos ese querido if que tanto nos gusta y que finalmente evita hacer la tarea de forma repetitiva y sin sentido, convirtiendo el proceso en algo m\u00e1s inteligente, pues ahora detectar\u00e1 si la IP externa actual es distinta de la que tenemos en la lista, reemplazando su direcci\u00f3n s\u00f3lo cuando esta sea diferente. Manos a la Obra!<\/p>\n[learn_more caption=\u00bbC\u00f3digo\u00bb]\n<p>:local test [ \/ip address get [\/ip address find interface=Internet] address ];<\/p>\n<p>:local ipvieja [ \/ip firewall address-list get [\/ip firewall address-list find comment=\u00bbip_ext\u00bb] address ];<\/p>\n<p>:local ip [:pick $test 0 [:find $test \u00ab\/\u00bb]]; :put $ip;<\/p>\n<p>#Debug para Saber IP<\/p>\n<p>#:log info (\u00abIP_Actual = $ip\u00bb)<\/p>\n<p>#:log info (\u00abIP_Vieja = $ipvieja\u00bb)<\/p>\n<p>:if ($ip != $ipvieja) do={<\/p>\n<p>:local numeroipext [\/ip firewall address-list find comment=\u00bbip_ext\u00bb];<\/p>\n<p>\/ip firewall address-list remove number=$numeroipext;<\/p>\n<p>:local test [ \/ip address get [\/ip address find interface=Internet] address ];<\/p>\n<p>:local ip [:pick $test 0 [:find $test \u00ab\/\u00bb]]; :put $ip;<\/p>\n<p>\/ip firewall address-list add list=\u00bbIP Externa\u00bb address=$ip comment=\u00bbip_ext\u00bb;<\/p>\n<p>} else={<\/p>\n<p># Debug para saber si se realiza cambio<br \/>\n# :log info (\u00abNo Cambia el Address-List IP Externa\u00bb)<\/p>\n<p>}<\/p>\n[\/learn_more]\nY tarannn!! podemos setear incluso intervalos muy cortos como 1 minuto y simplemente se ejecutar\u00e1 al ser necesario :D, no se si est\u00e1 dem\u00e1s decir que para ver m\u00e1s info del script en el log es necesario remover los # del c\u00f3digo que aparece antes de los :log info &#8230;<br \/>\nEso ser\u00eda todo<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy me propuse algo simple, pero necesario en muchos escenarios, mejorar la automatizaci\u00f3n de esas tareas que nos generan m\u00e1s de un problema, una de ellas es la de agregar&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[12],"tags":[51,120,37,121],"class_list":{"0":"post-458","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-redes","7":"tag-campano","8":"tag-ip-externa","9":"tag-mikrotik","10":"tag-script"},"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p24xDo-7o","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.campano.cl\/index.php?rest_route=\/wp\/v2\/posts\/458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.campano.cl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.campano.cl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.campano.cl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.campano.cl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=458"}],"version-history":[{"count":0,"href":"https:\/\/www.campano.cl\/index.php?rest_route=\/wp\/v2\/posts\/458\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.campano.cl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.campano.cl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.campano.cl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}