<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Синхронизировать записи DNS с арендой DHCP]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Синхронизировать записи DNS с арендой DHCP форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 12 Aug 2026 08:50:18 -0400</pubDate>
		<item>
			<title>Синхронизировать записи DNS с арендой DHCP</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410876">Синхронизировать записи DNS с арендой DHCP</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Еще одна реализация: <noindex><a href="https://github.com/midenok/hardware/blob/master/mikrotik/dhcp-fqdn-my.rsc" target="_blank" rel="nofollow" >https://github.com/midenok/hardware/blob/master/mikrotik/dhcp-fqdn-my.rsc</a></noindex> <br />
			<i>07.12.2018 19:26:00, midenok.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410876</link>
			<guid>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410876</guid>
			<pubDate>Fri, 07 Dec 2018 19:26:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Синхронизировать записи DNS с арендой DHCP</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410875">Синхронизировать записи DNS с арендой DHCP</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Некоторым скриптам нужна дополнительная документация… Займусь этим, когда появится свободное время. Для dhcp-to-dns я делаю и то, и другое: запускаю его на dhcp-сервере как скрипт аренды (чтобы добавлять новые записи) и запускаю по расписанию, чтобы удалять устаревшие записи. Для клиента DHCP с именем «host», устройства Mikrotik с именем «router» и домена «example.com» DNS-записи выглядят как «host.dhcp.router.example.com» (или «host.dhcp.example.com», если в global-config в параметре $“hostname-in-zone” стоит false). Если только вы не используете это для своих ручных записей, ничего не перезаписывается. <br />
			<i>13.12.2018 13:16:00, eworm.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410875</link>
			<guid>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410875</guid>
			<pubDate>Thu, 13 Dec 2018 13:16:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Синхронизировать записи DNS с арендой DHCP</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410874">Синхронизировать записи DNS с арендой DHCP</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Выглядит интересно, но есть пара вопросов. В файле readme описан только процесс обновления скрипта. Скрипт DHCP запускается на самом DHCP-сервере или по расписанию? И что если для хоста вручную задано DNS-имя — оно перезапишется? <br />
			<i>13.12.2018 11:58:00, Jotne.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410874</link>
			<guid>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410874</guid>
			<pubDate>Thu, 13 Dec 2018 11:58:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Синхронизировать записи DNS с арендой DHCP</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410873">Синхронизировать записи DNS с арендой DHCP</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			У меня есть ещё один: dhcp-to-dns на github или cgit. (Он зависит от других скриптов из того же репозитория, смотрите README для настройки.) <br />
			<i>12.12.2018 20:23:00, eworm.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410873</link>
			<guid>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410873</guid>
			<pubDate>Wed, 12 Dec 2018 20:23:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Синхронизировать записи DNS с арендой DHCP</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410872">Синхронизировать записи DNS с арендой DHCP</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Старое решение из 2015 года. Может работать, не проверял. Но команда «/interface wireless» не сработает на роутерах без Wi-Fi. Должна быть опция для обработки ошибок. PS Если у вас RouterOS 6.34, как указано в вашем слогане, лучше сейчас же обновиться. <br />
			<i>07.12.2018 22:12:00, Jotne.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410872</link>
			<guid>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410872</guid>
			<pubDate>Fri, 07 Dec 2018 22:12:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Синхронизировать записи DNS с арендой DHCP</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410871">Синхронизировать записи DNS с арендой DHCP</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Всем привет! Я написал скрипт для синхронизации записей DNS с DHCP-арендами, чтобы вам не приходилось вручную поддерживать два списка. По сути, он хранит все аренды и имена хостов в самом скрипте, а затем применяет (заменяет) их на DNS-сервере и DHCP-сервере. Так что заботиться нужно только о конфигурации в скрипте (что обеспечивает централизованность). Всё, что нужно, — это следующее:<br /><br />#Вся статическая конфигурация DHCP&DNS в одной зоне (описано ниже) см. здесь. Этот скрипт обновит (удалит, а потом создаст заново) все записи, которые соответствуют описанной конфигурации. Поэтому менять что-либо на DHCP-сервере или во вкладке DNS бессмысленно. Если нужно изменить статические записи DNS/DHCP — читайте руководство здесь.<br /><br />#Настройка окружения &nbsp;<br />:local dhcpserver "Internal Network" &nbsp;<br />:local zone “example.com” &nbsp;<br />:global hostListString<br /><br />#Здесь задаём, сколько списков у вас есть. Правило именования фиксированное — hostListStringX &nbsp;<br />:local ifrom 1; &nbsp;<br />:local ito 2;<br /><br />#Списки хостов (машин/устройств) &nbsp;<br />#Формат: $ip,$hostname,$mac_addr,$client_id &nbsp;<br />#Каждая запись — в ОДНОЙ строке! &nbsp;<br />#Между запятыми не должно быть пробелов! &nbsp;<br />#$client_id — это "1:" + MAC-адрес в нижнем регистре. Можно также взять из DHCP Server-&gt;Lease. &nbsp;<br />#Важно: :global нужен, потому что ниже используется :parse &nbsp;<br />#Особенности: последняя строка должна быть пустой. &nbsp;<br />#Ограничение: размер переменной не может быть больше 4096 байт — это жёстко заданное ограничение MikroTik. Возможно, придётся разбить на несколько списков. Лично я так же разделяю списки для разных подсетей. В общем, как удобно вам.<br /><br />#Пример списков &nbsp;<br />:global hostListString1 "192.168.1.11,server1,00:DD:CC:EE:EE:11,1:0:dd:cc:ee:ee:11 &nbsp;<br />192.168.1.12,server2,00:DD:CC:EE:EE:12,1:0:dd:cc:ee:ee:12 &nbsp;<br />192.168.1.13,server3,00:DD:CC:EE:EE:13,1:0:dd:cc:ee:ee:13 &nbsp;<br />";<br /><br />:global hostListString2 "192.168.2.11,client1,00:DD:CC:EE:EE:21,1:0:dd:cc:ee:ee:21 &nbsp;<br />192.168.2.12,client2,00:DD:CC:EE:EE:22,1:0:dd:cc:ee:ee:22 &nbsp;<br />192.168.2.13,client3,00:DD:CC:EE:EE:23,1:0:dd:cc:ee:ee:23 &nbsp;<br />";<br /><br />#Начало скрипта &nbsp;<br />#Удаляем старые статические DNS-записи<br /><br />/ip dns static remove [find where name ~ (".*\\.".$zone)]<br /><br />:for i from=$ifrom to=$ito do={ &nbsp;<br /> &nbsp;:local changeList [:parse (":global hostListString". [:tostr $i] . "; :global hostListString; :set \$hostListString \$hostListString" . [:tostr $i])];  <br /> &nbsp;$changeList; &nbsp;<br /> &nbsp;:local contentLen [ :len $hostListString ];  <br /> &nbsp;:local lineEnd 0; &nbsp;<br /> &nbsp;:local line ""; &nbsp;<br /> &nbsp;:local lastEnd 0; &nbsp;<br /> &nbsp;:local hostArray;<br /><br /> &nbsp;:do { &nbsp;<br /> &nbsp; &nbsp;:set lineEnd [:find $hostListString "\n" $lastEnd ];  <br /> &nbsp; &nbsp;:set line [:pick $hostListString $lastEnd $lineEnd];  <br /> &nbsp; &nbsp;:set lastEnd ( $lineEnd + 1 );<br /><br /> &nbsp; &nbsp;:set hostArray [:toarray $line];<br /><br /> &nbsp; &nbsp;:if ([:len $line] &gt;= 7 ) do={<br /><br /> &nbsp; &nbsp; &nbsp;#Возвращаем DNS-записи &nbsp;<br /> &nbsp; &nbsp; &nbsp;/ip dns static add address=[:pick $hostArray 0] name=([:pick $hostArray 1].".".$zone)  <br /> &nbsp; &nbsp; &nbsp;#Ищем, есть ли хост на DHCP-сервере &nbsp;<br /> &nbsp; &nbsp; &nbsp;/ip dhcp-server lease &nbsp;<br /> &nbsp; &nbsp; &nbsp;:local searchingDHCP [find where mac-address=[:pick $hostArray 2]];  <br /> &nbsp; &nbsp; &nbsp;:if ($searchingDHCP != "") do={ &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;#Хост найден! Запускаем make-static (вместо удаления и создания заново) &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;#Эти две команды вызывают предупреждение, ловим исключения. &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;:do { make-static number=$searchingDHCP } on-error={}; &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;:do { set number=$searchingDHCP address=[:pick $hostArray 0] server=$dhcpserver comment="-)createdBy=DHCP2DNS" } on-error={};  <br /> &nbsp; &nbsp; &nbsp;} else={ &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;#Хост не найден! Если есть — удаляем и создаём заново &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp;:if ([find where mac-address=[:pick $hostArray 2]] != "") do={ remove number=(find where mac-address=[:pick $hostArray 2]) }<br /><br /> &nbsp; &nbsp; &nbsp; &nbsp;add address=[:pick $hostArray 0] mac-address=[:pick $hostArray 2] client-id=[:pick $hostArray 3] server=$dhcpserver comment="-)createdBy=DHCP2DNS"  <br /> &nbsp; &nbsp; &nbsp;}<br /><br /> &nbsp; &nbsp;} else={ :put "Пустая запись"; }<br /><br /> &nbsp;} while ($lineEnd &lt; $contentLen-1) &nbsp;<br />}<br /><br />Просто следуйте формату и вписывайте свои MAC, IP, hostname прямо в скрипт. Потом создайте задачу по расписанию для обновления (может и не понадобится). Внимание: обязательно сделайте резервную копию всей конфигурации и внимательно прочитайте примечания перед применением. Если конфигурация неверна, скрипт может удалить все ваши DHCP и DNS записи. <br />
			<i>29.12.2014 13:53:00, wilsonlmh.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410871</link>
			<guid>http://mikrotik.moscow/forum/forum57/86839-sinkhronizirovat-zapisi-dns-s-arendoy-dhcp/message410871</guid>
			<pubDate>Mon, 29 Dec 2014 13:53:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
