<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Скрипт автоматического обновления адреса шлюза в маршрутах]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Скрипт автоматического обновления адреса шлюза в маршрутах форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 02 Aug 2026 13:15:36 -0400</pubDate>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393011">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			В моём случае у меня настроен резервный канал с конфигурацией по ссылке <noindex><a href="https://help.mikrotik.com/docs/pages/viewpage.action?pageId=26476608" target="_blank" rel="nofollow" >https://help.mikrotik.com/docs/pages/viewpage.action?pageId=26476608</a></noindex>. Поэтому каждый раз нужно менять сразу несколько маршрутов. Вот скрипт, который я использую:<br /><br />:local DHCPINFO [/ip dhcp-client find where comment="WAN2"]  <br />:local DHCPGW [/ip dhcp-client get $DHCPINFO gateway]<br /><br />:foreach managedRoute in=[/ip route find where comment~"DHCP"] do={  <br /> &nbsp;:local RouteGateway [/ip route get $managedRoute gateway]  <br /> &nbsp;:if ($RouteGateway != $DHCPGW) do= { &nbsp;<br /> &nbsp; &nbsp;:ip route set $managedRoute gateway=$DHCPGW &nbsp;<br /> &nbsp; &nbsp;:log info "Динамический DHCP-маршрут изменён — $RouteGateway &gt; $DHCPGW" &nbsp;<br /> &nbsp;} &nbsp;<br />}<br /><br />Этот скрипт ищет DHCP-клиента с комментарием “WAN2” и обновляет все маршруты, в комментарии которых есть “DHCP”. Я ставлю его в IP &gt; DHCP Client &gt; DHCP of assigned interface &gt; Advanced, но можно запускать и через системные скрипты с расписанием. <br />
			<i>15.11.2022 21:01:00, xgalsax1.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393011</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393011</guid>
			<pubDate>Tue, 15 Nov 2022 21:01:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393010">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Может, тебе тоже стоит сделать так: /ip firewall connection {:foreach r in=[find] do={remove $r}}; чтобы сбросить NAT-соединения, которые были установлены через старый шлюз? <br />
			<i>31.01.2022 17:49:00, maxpower.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393010</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393010</guid>
			<pubDate>Mon, 31 Jan 2022 17:49:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393009">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо, сэр, хмм, это работает, но как быть, если одинаковый шлюз? На этом примере на картинке комментарий v4 относится к ether4, но доступен и для ether5 из-за одинакового шлюза у разных WAN. Если картинка не отображается, просто кликните по этой ссылке <noindex><a href="https://postimg.cc/HJKjGCyG" target="_blank" rel="nofollow" >https://postimg.cc/HJKjGCyG</a></noindex> <br />
			<i>19.11.2021 14:27:00, krixer.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393009</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393009</guid>
			<pubDate>Fri, 19 Nov 2021 14:27:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393008">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я пытаюсь, но не получается. <br />
			<i>01.08.2021 04:38:00, cooling.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393008</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393008</guid>
			<pubDate>Sun, 01 Aug 2021 04:38:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393007">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Игнорируя остальные моменты… А куда же скобки ставить? :if (($newgw1 != $routegw1) or ($newgw2 != $routegw2)) do={ <br />
			<i>01.08.2021 02:34:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393007</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393007</guid>
			<pubDate>Sun, 01 Aug 2021 02:34:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393006">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			<noindex><a href="https://wiki.mikrotik.com/wiki/Manual:Scripting#Logical_Operators" target="_blank" rel="nofollow" >https://wiki.mikrotik.com/wiki/Manual:Scripting#Logical_Operators</a></noindex> :if (($newgw1 != $routegw1) or ($newgw2 != $routegw2)) do={ исправить: скобки } <br />
			<i>31.07.2021 08:48:00, volkirik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393006</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393006</guid>
			<pubDate>Sat, 31 Jul 2021 08:48:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393005">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Как вставить два шлюза PPPoE в один комментарий, например: out-pppoe1 = gateway {192.168.1.1}, out-pppoe2 = gateway {10.10.1.1}. Все шлюзы динамические. &nbsp;<br />/ip route (isp1) gateway 192.168.1.1, 10.10.1.1 &nbsp;<br /><br />Скрипт: &nbsp;<br />local newgw1 [/ip address get [find interface="pppoe-out1"] network];  <br />local newgw2 [/ip address get [find interface="pppoe-out2"] network];  <br />local routegw1 [/ip route get [find comment="Test"] gateway];  <br />local routegw2 [/ip route get [find comment="Test"] gateway];  <br />if ($newgw1 != $routegw1), ($newgw2 != $routegw2) do={ &nbsp;<br />/ip route set [find comment="Test"] gateway=$newgw1,$newgw2;  <br />} &nbsp;<br /><br />Но не работает. Спасибо. <br />
			<i>31.07.2021 02:35:00, cooling.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393005</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393005</guid>
			<pubDate>Sat, 31 Jul 2021 02:35:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393004">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я также обновил правило srcnat... Спасибо за скрипт для шлюза.<br /><br />:local EthInterfaceName "ether1" &nbsp;<br />:local MyComment "terra"<br /><br />:local newgw [/ip dhcp-client get [/ip dhcp-client find interface="$EthInterfaceName"] gateway];  <br />:local routegw [/ip route get [/ip route find comment="$MyComment"] gateway ];  <br />:if ($newgw != $routegw) do={ &nbsp;<br /> &nbsp; &nbsp; /ip route set [/ip route find comment="$MyComment"] gateway=$newgw;  <br />}<br /><br />:local "assigned-addr" [/ip dhcp-client get [/ip dhcp-client find interface="$EthInterfaceName"] address]<br /><br />:if ([:len ($"assigned-addr")] &lt;= 0) do={  <br /> &nbsp;:log info "DHCPc update-srcnat: локальный адрес пуст" &nbsp;<br /> &nbsp;:error "DHCPc update-srcnat: локальный адрес пуст" &nbsp;<br />} else={ &nbsp;<br /> &nbsp;:log info "DHCPc update-srcnat: локальный адрес для $EthInterfaceName — ($"assigned-addr") (активен)" &nbsp;<br />}<br /><br />:local "local-address" [:pick $"assigned-addr" 0 ([:find $"assigned-addr" "/"])]<br /><br />/ip firewall nat &nbsp;<br />:local srcnatPPPId &nbsp;<br />:set srcnatPPPId [find chain=srcnat action=src-nat out-interface="$EthInterfaceName"]  <br /># проверяем, есть ли srcnat правило &nbsp;<br />:if ([:len $srcnatPPPId] &lt; 1) do={  <br /> &nbsp;/ip firewall nat add action=src-nat chain=srcnat log=yes out-interface="$EthInterfaceName" to-addresses=($"local-address") &nbsp;<br /> &nbsp;:log info "DHCPc update-srcnat: добавлено srcnat для $EthInterfaceName на ($"local-address")" &nbsp;<br />} else={ &nbsp;<br /> &nbsp;:local oldip [/ip firewall nat get [/ip firewall nat find chain=srcnat action=src-nat out-interface="$EthInterfaceName"] to-addresses]  <br /> &nbsp;:if ($"local-address" != $oldip) do={ &nbsp;<br /> &nbsp; &nbsp;/ip firewall nat set [find chain=srcnat action=src-nat out-interface="$EthInterfaceName"] to-addresses=($"local-address")  <br /> &nbsp; &nbsp;:log info "DHCPc update-srcnat: обновлено srcnat для $EthInterfaceName на ($"local-address")" &nbsp;<br /> &nbsp;} &nbsp;<br />} <br />
			<i>12.02.2021 15:59:00, volkirik.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393004</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393004</guid>
			<pubDate>Fri, 12 Feb 2021 15:59:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393003">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я настраивал множество роутеров Mikrotik с VDSL-модемами, используя их только для модуляции и аппаратного моста. Можешь уточнить: &nbsp;<br />– Марку и модель модема, который ты используешь &nbsp;<br />– Как настроен мост &nbsp;<br />– Как провайдер завершает соединение, то есть PPPoE, IPoE, DHCP &nbsp;<br />– Какое устройство Mikrotik ты используешь и как оно подключено/настроено &nbsp;<br /><br />И также, что именно значит: ip is100.75.15.121/24, мне нужно вручную искать шлюз, который, например, приходится на 100.75.15.1? Это то, что сейчас приходит на уровне модема от провайдера? Или же это то, что передаётся твоему Mikrotik-роутеру с модема? <br />
			<i>01.09.2020 09:31:00, FiiMitch.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393003</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393003</guid>
			<pubDate>Tue, 01 Sep 2020 09:31:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393002">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет, друг! У меня интернет от провайдера. Провайдер настроил так, что подключаться может только модем, при этом мостовой режим не используется. По какой-то причине я вынужден использовать именно этого провайдера. Я подключаю модем к роутеру Mikrotik, включаю DHCP-клиент и всегда получаю IP с маской /24, а шлюз — 100.0.0.1, но до него нет доступа. Например, если IP 100.75.15.121/24, мне приходится вручную искать шлюз, который, к примеру, оказывается 100.75.15.1. Я не очень разбираюсь в скриптах, а провайдер не хочет помогать. Единственная идея — получить сеть DHCP-клиента, прибавить к ней 1 и использовать это как шлюз. Пожалуйста, помоги. <br />
			<i>01.09.2020 07:18:00, Taymaz1987.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393002</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393002</guid>
			<pubDate>Tue, 01 Sep 2020 07:18:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393001">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Плюс один, сэр. <br />
			<i>25.11.2019 03:14:00, adminken.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393001</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393001</guid>
			<pubDate>Mon, 25 Nov 2019 03:14:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт автоматического обновления адреса шлюза в маршрутах</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393000">Скрипт автоматического обновления адреса шлюза в маршрутах</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Согласно моей презентации на конференции MUM 2018 в Таиланде, я выступал с докладом на тему «Мониторинг интернет-соединений WAN-ссылок только с помощью настройки маршрутизации». <noindex><a href="https://mum.mikrotik.com/presentations/TH18/presentation_5725_1534743837.pdf" target="_blank" rel="nofollow" >https://mum.mikrotik.com/presentations/TH18/presentation_5725_1534743837.pdf</a></noindex> После конференции многие люди в Таиланде спрашивали меня, как автоматически обновлять адреса шлюзов ISP в маршрутах, если адреса шлюзов ISP на WAN-интерфейсах изменяются. В моей презентации я показал, как настраивать рекурсивные маршруты (то есть маршруты со статическими шлюзами ISP). Однако по их вопросам я понял, что некоторые провайдеры иногда меняют адреса шлюзов. Я ответил им решением — использовать скрипт, который автоматически обновляет адреса шлюзов в маршрутах. Хочу поделиться этим скриптом здесь, надеюсь, он будет полезен и другим.<br /><br />В случае PPPoE клиента на WAN-ссылке скрипт выглядит так: &nbsp;<br />:local newgw [/ip address get [find interface="pppoe-out1"] network];  <br />:local routegw [/ip route get [find comment="isp1"] gateway ];  <br />:if ($newgw != $routegw) do={ &nbsp;<br /> &nbsp; &nbsp; &nbsp;/ip route set [find comment="isp1"] gateway=$newgw;  <br />} &nbsp;<br /><br />Обратите внимание, что его можно запускать на событие On Up PPPoE клиента, добавив в профиль PPPoE клиента.<br /><br />В случае DHCP клиента на WAN-ссылке скрипт такой: &nbsp;<br />:local newgw [ip dhcp-client get [find interface="ether1"] gateway];  <br />:local routegw [/ip route get [find comment="isp1"] gateway ];  <br />:if ($newgw != $routegw) do={ &nbsp;<br /> &nbsp; &nbsp; /ip route set [find comment="isp1"] gateway=$newgw;  <br />} &nbsp;<br /><br />Его удобно запускать через системный планировщик с подходящим интервалом.<br /><br />Если нужно применить для нескольких WAN-ссылок, например, двух WAN-ссылок с PPPoE клиентами, просто скопируйте этот скрипт и вставьте так: &nbsp;<br />:local newgw1 [/ip address get [find interface="pppoe-out1"] network];  <br />:local routegw1 [/ip route get [find comment="isp1"] gateway ];  <br />:if ($newgw1 != $routegw1) do={ &nbsp;<br /> &nbsp; &nbsp; /ip route set [find comment="isp1"] gateway=$newgw1;  <br />} &nbsp;<br />:local newgw2 [/ip address get [find interface="pppoe-out2"] network];  <br />:local routegw2 [/ip route get [find comment="isp2"] gateway ];  <br />:if ($newgw2 != $routegw2) do={ &nbsp;<br /> &nbsp; &nbsp; /ip route set [find comment="isp2"] gateway=$newgw2;  <br />} <br />
			<i>24.09.2018 15:01:00, ekarin.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393000</link>
			<guid>http://mikrotik.moscow/forum/forum57/85082-skript-avtomaticheskogo-obnovleniya-adresa-shlyuza-v-marshrutakh/message393000</guid>
			<pubDate>Mon, 24 Sep 2018 15:01:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
