<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13 форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Fri, 31 Jul 2026 06:29:45 -0400</pubDate>
		<item>
			<title>Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387417">Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет! Небольшое обновление: я откладывал обновление с февраля 2024 года до сегодняшнего дня. Сегодня я обновился сразу с версии 7.12.2 до 7.16.2. Скрипт из указанного поста теперь работает как надо. Видимо, что-то в скрипте сломалось в версии 7.13 и было исправлено между 7.13.5 и 7.16.2. Так что смело обновляйте свой роутер~! <br />
			<i>10.12.2024 15:57:00, msaid.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387417</link>
			<guid>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387417</guid>
			<pubDate>Tue, 10 Dec 2024 15:57:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387416">Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Это мой первый роутер MikroTik, но после того, как я провозился с DHCP-скриптами целый день, вот что выяснил: <br /><br />Во-первых, DHCP-скрипты действительно работают под версиями 7.13 и 7.14, но если в вашем скрипте есть хоть малейшая синтаксическая ошибка, он не запустится — ни логов, ни ошибок, ничего. Поэтому тестируйте скрипты сначала на консоли (естественно, придется подставлять фиктивные значения для переменных DHCP).<br /><br />Во-вторых, а это было большой неприятный сюрприз, имена переменных, указанные в справке на <noindex><a href="https://help.mikrotik.com/docs/display/ROS/DHCP#DHCP-Properties" target="_blank" rel="nofollow" >https://help.mikrotik.com/docs/display/ROS/DHCP#DHCP-Properties</a></noindex>, неправильные — таких значений при запуске скрипта нет. Я обнаружил, что переменные, упомянутые в третьем посте на этой теме действительно работают: <noindex><a href="http://forum.mikrotik.com/t/dhcp-server-script-internal-global-variables/148563/1" target="_blank" rel="nofollow" >http://forum.mikrotik.com/t/dhcp-server-script-internal-global-variables/148563/1</a></noindex><br /><br />Вот они:<br />leaseBound — установлено в "1", если аренда активна, иначе "0"<br />leaseServerName — имя DHCP-сервера<br />leaseActMAC — активный MAC-адрес<br />leaseActIP — активный IP-адрес<br />lease-hostname — имя клиента<br />lease-options — массив полученных опций<br /><br />По какой-то причине среди них есть имена с дефисом, а это проблемный символ для имен переменных в скриптах, поэтому нужно использовать $"lease-hostname", чтобы обойти эту проблему (я просто скопировал их значение в локальную переменную с нормальным именем, вместо того чтобы разбираться с кавычками внутри кавычек).<br /><br />В общем, надеюсь, кому-то это поможет, и, может быть, кто-то обновит официальную документацию? <br />
			<i>02.03.2024 12:42:00, robbiereindeer.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387416</link>
			<guid>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387416</guid>
			<pubDate>Sat, 02 Mar 2024 12:42:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387415">Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Скрипт в любом случае не работает на версии 7.13.5, есть ли вообще какой-то скрипт, который действительно работает? <br />
			<i>27.02.2024 18:08:00, metron6.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387415</link>
			<guid>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387415</guid>
			<pubDate>Tue, 27 Feb 2024 18:08:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387414">Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Та же проблема. Следующая конфигурация работает в версии 7.12.2, но не работает в 7.13, 7.13.1, 7.13.2, 7.13.3 и 7.13.4. &nbsp;<br /># 2024-02-18 07:27:12 by RouterOS 7.12.2 &nbsp;<br /># software id = QU8N-B21Q &nbsp;<br /># &nbsp;<br /># model = RB750Gr3 &nbsp;<br /># serial number = CC210F11FD6D &nbsp;<br /><br />/ip dhcp-server &nbsp;<br />add add-arp=yes address-pool=default-dhcp insert-queue-before=bottom interface=bridge lease-script=":local queueName \"Client - \$leaseActMAC\";\r\<br />\n \r\<br />\n:if (\$leaseBound = \"1\") do={\r\<br />\n &nbsp; :if ([:len [/queue simple find name=\$queueName]] = 0) do={\r\<br />\n &nbsp; &nbsp; &nbsp;:log warning \"Queue Added for \$leaseActMAC\";\r\<br />\n &nbsp; &nbsp; &nbsp;/queue simple add name=\$queueName &nbsp;target=(\$leaseActIP.\"/32\") queue=client/client limit-at=128k/128k max-limit=1M/1M burst-limit=4M/4M burst-threshold=2M/2M burst-time=10/10 &nbsp;priority=8/8 parent=\"Gateway\" comment=(\"Client - \".[/ip dhcp-server lease get [find where active-mac-address=\$leaseActMAC && active-address=\$leaseActIP] host-name]);\r\<br />\n &nbsp; } else={\r\<br />\n &nbsp; &nbsp; &nbsp;:local exist [/queue simple get [find name=\$queueName] target];\r\<br />\n &nbsp; &nbsp; &nbsp;\r\<br />\n &nbsp; &nbsp; &nbsp;:if (\$exist = \$leaseActIP) do={\r\<br />\n &nbsp; &nbsp; &nbsp; &nbsp; :log warning \"Queue Enabled - \$exist\";\r\<br />\n &nbsp; &nbsp; &nbsp; &nbsp; /queue simple enable \$queueName;\r\<br />\n &nbsp; &nbsp; &nbsp;} else={\r\<br />\n &nbsp; &nbsp; &nbsp; &nbsp; :log warning \"Queue Updated - \$exist\";\r\<br />\n &nbsp; &nbsp; &nbsp; &nbsp; /queue simple set target=(\$leaseActIP) [find name=\$queueName];\r\<br />\n &nbsp; &nbsp; &nbsp; &nbsp; /queue simple enable \$queueName;\r\<br />\n &nbsp; &nbsp; &nbsp;}\r\<br />\n}\r\<br />\n} else={\r\<br />\n &nbsp; :log warning \"Queue Disabled for \$leaseActMAC\";\r\<br />\n &nbsp; /queue simple disable \$queueName;\r\<br />\n}" lease-time=10m name=default0 &nbsp;<br /><br />/ip dhcp-server network &nbsp;<br />add address=192.168.88.0/24 dns-server=192.168.88.1 gateway=192.168.88.1 &nbsp;<br /><br />/queue type &nbsp;<br />add kind=sfq name=client &nbsp;<br />add cake-ack-filter=filter cake-nat=yes kind=cake name=gwout &nbsp;<br /><br />/queue simple &nbsp;<br />add dst=192.168.88.0/24 max-limit=1G/1G name="Local Traffic" target=192.168.88.0/24 &nbsp;<br />add max-limit=20M/20M name=Gateway queue=gwout/gwout target=192.168.88.0/24 &nbsp;<br /><br />Очевидно, скрипт выполняется до этой строки (в логах я вижу запись): :log warning "Queue Added for $leaseActMAC"; &nbsp;<br />Но новая очередь не создаётся, когда новый клиент получает свой лизинг. <br />
			<i>18.02.2024 00:39:00, msaid.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387414</link>
			<guid>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387414</guid>
			<pubDate>Sun, 18 Feb 2024 00:39:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387413">Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			У меня почти такая же проблема. У меня есть этот скрипт, но он не работает в V7:<br /><br />/queue simple add max-limit=5M/25M name="Total_Clients" target=10.4.29.0/23<br /><br />:local child "MacAddr - $leaseActMAC" &nbsp;<br />:if ($leaseBound = "1") do={ &nbsp;<br />/queue simple add name="MacAddr - $leaseActMAC" target=($leaseActIP."/32") limit-at=2M/25M max-limit=2M/25M burst-limit=2M/25M burst-threshold=2M/25M burst-time=5/5 priority=8/8 parent="Total_Clients" comment=("Computer LAN ".[/ip dhcp-server lease get [find where active-mac-address=$leaseActMAC && active-address=$leaseActIP] host-name]);  <br />} else={ &nbsp;<br />/queue simple remove $child &nbsp;<br />}<br /><br />Я пробовал использовать этот скрипт, но он создаёт очереди для каждого арендатора. А нужно, чтобы очереди создавались только для того dhcp-сервера, где срабатывает скрипт. Думаю, проблема в переменных — возможно, :local не поддерживается в DHCP-скриптах, но точно не уверен! <br />
			<i>17.02.2024 10:32:00, dotis.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387413</link>
			<guid>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387413</guid>
			<pubDate>Sat, 17 Feb 2024 10:32:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387412">Скрипт DHCP Lease для Simple Queues не работает после обновления до версии 7.13</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет, я много лет использовал скрипт DDNS на Mikrotik RouterOS 9.6, но после обновления до версии 7.13 скрипт перестал работать. Надеюсь, кто-то подскажет, что не так или что изменилось в 7.13.<br /><br /># DHCP Lease to Simple Queues &nbsp;<br /># 2014 Lonnie Mendez (lmendez@anvilcom.com) &nbsp;<br /># &nbsp;<br /># Mikrotik RouterOS v6.9 &nbsp;<br /><br />/ip dhcp-server lease &nbsp;<br />:foreach x in=[find] do={  <br /><br /># получаем переменные для дальнейшего использования &nbsp;<br />:local leaseaddr ([get $x address]."/32")  <br />:local leasemacaddr [get $x mac-address]  <br />:local leasehostname [get $x host-name]  <br />:local leasename [get $x comment]  <br />:local queuecomment &nbsp;<br /><br />:local leaseinqueue false &nbsp;<br /><br />/queue simple &nbsp;<br />:foreach y in=[find] do={  <br /><br /># получаем переменные для дальнейшего использования &nbsp;<br />:local queuetargetaddr [get $y target]  <br />:set queuecomment [get $y comment]  <br /><br /># выделяем из поля комментария информацию (MAC, Hostname) &nbsp;<br />:local queuemac [:pick $queuecomment 4 21]  <br />:local queuehostname [:pick $queuecomment 22 [:len $queuecomment]]  <br /><br /># Если MAC из аренды совпадает с MAC из очереди, то обновляем запись в очереди &nbsp;<br />:if ($queuemac = $leasemacaddr) do={ &nbsp;<br /># формируем поле комментария &nbsp;<br />:set queuecomment ("dtq," . $leasemacaddr . "," . $leasehostname) &nbsp;<br /><br />set $y target=$leaseaddr comment=$queuecomment &nbsp;<br />:if ($leasename != "") do= { &nbsp;<br />set $y name=($leasename . " (" . $leasemacaddr . ")") &nbsp;<br />} else= { &nbsp;<br />:if ($leasehostname != "") do= { &nbsp;<br />set $y name=($leasehostname . " (" . $leasemacaddr . ")") &nbsp;<br />} else= { &nbsp;<br />set $y name=$leasemacaddr &nbsp;<br />} &nbsp;<br />} &nbsp;<br />:set leaseinqueue true &nbsp;<br />} else= { &nbsp;<br /># если IP для этой аренды существует, но MAC другой, обновляем MAC/hostname и сбрасываем счетчики &nbsp;<br />:if ($queuetargetaddr = $leaseaddr) do={ &nbsp;<br /># формируем поле комментария &nbsp;<br />:set queuecomment ("dtq," . $leasemacaddr . "," . $leasehostname) &nbsp;<br /><br />set $y comment=$queuecomment &nbsp;<br />reset-counters $y &nbsp;<br />:if ($leasename != "") do= { &nbsp;<br />set $y name=($leasename . " (" . $leasemacaddr . ")") &nbsp;<br />} else= { &nbsp;<br />:if ($leasehostname != "") do= { &nbsp;<br />set $y name=($leasehostname . " (" . $leasemacaddr . ")") &nbsp;<br />} else= { &nbsp;<br />set $y name=$leasemacaddr &nbsp;<br />} &nbsp;<br />} &nbsp;<br />:set leaseinqueue true &nbsp;<br />} &nbsp;<br />} &nbsp;<br />} &nbsp;<br /><br /># Если записи не было, добавляем новую для этой аренды &nbsp;<br />:if ($leaseinqueue = false) do={ &nbsp;<br /># формируем поле комментария &nbsp;<br />:set queuecomment ("dtq," . $leasemacaddr . "," . $leasehostname) &nbsp;<br /># формируем команду &nbsp;<br />:local cmd "/queue simple add target=$leaseaddr max-limit=100M/100M comment=$queuecomment" &nbsp;<br />:if ($leasename != "") do={ &nbsp;<br />:set cmd "$cmd name=\"$leasename ($leasemacaddr)\"" &nbsp;<br />} else= { &nbsp;<br />:if ($leasehostname != "") do={ &nbsp;<br />:set cmd "$cmd name=\"$leasehostname ($leasemacaddr)\"" &nbsp;<br />} else= { &nbsp;<br />:set cmd "$cmd name=\"$leasemacaddr\"" &nbsp;<br />} &nbsp;<br />} &nbsp;<br /><br />:execute $cmd &nbsp;<br />} &nbsp;<br />} &nbsp;<br /><br /># Очистка - удаляем динамические записи, которых больше нет в таблице аренды &nbsp;<br />/queue simple &nbsp;<br />:foreach z in=[find] do={  <br />:local queuecomment [get $z comment]  <br />:local queue1stpart [:pick $queuecomment 0 3]  <br />:local queue2ndpart [:pick $queuecomment 4 21]  <br />:if ($queue1stpart = "dtq") do={ &nbsp;<br />:if ([/ip dhcp-server lease find mac-address=$queue2ndpart] = "") do={  <br />:log info ("DTQ: Удаление устаревшей записи для MAC-адреса - " . $queue2ndpart) &nbsp;<br />remove $z &nbsp;<br />} &nbsp;<br />} &nbsp;<br />} <br />
			<i>05.01.2024 22:15:00, anassar26.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387412</link>
			<guid>http://mikrotik.moscow/forum/forum57/84520-skript-dhcp-lease-dlya-simple-queues-ne-rabotaet-posle-obnovleniya-do-versii-7.13/message387412</guid>
			<pubDate>Fri, 05 Jan 2024 22:15:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
