0887 371 498 support@itservice-bg.net
25.04.2022 · Самуил Арсов · MikroTik, Рутери

Mikrotik Shaper – DHCP Queues

Скриптът по-долу създава автоматично simple queue за всеки клиент, който получи адрес от DHCP сървъра на MikroTik — без ръчно поддържане на списък с опашки. Поставя се в полето Lease Script на самия DHCP сървър (IP → DHCP Server → вашият сървър → Lease Script).

:local queueName "Client-$leaseActMAC";
 
:local ipAdd "$leaseActIP/32"; 

:if ([:len [/queue simple find name=$queueName]] = 0) do={
:log info "No Queue";
        /queue simple add name=$queueName target=($ipAdd) limit-at=10M/10M max-limit=10M/10M comment=[/ip dhcp-server lease get [find where active-mac-address=$leaseActMAC && active-address=$leaseActIP] host-name];
    } else={
:log info "exists";
:local ada [/queue simple get [find name=$queueName] target];
        :log info "existing $ada";
        :if ($ada = $ipAdd) do={
            :log info "IP same $ada";
        } else={
            /queue simple set target=($ipAdd) [find name=$queueName];
        }
}

Логиката: при нов lease се създава опашка Client-<MAC> с лимит 10M/10M и коментар името на хоста. Ако опашката вече съществува, но клиентът е получил друг адрес, target се обновява автоматично. Лимитът 10M/10M сменете според вашите планове.