Сто дней лабораторных работ vol.6
Шестой день
EVE-NG
Продолжая тему QoS и простых очередей.
Сегодня добавлю скрипт в DHCP-Server который будет при подключении устройства выдавать ему динамическую очередь. По истечению аренды, если устройство отключилось, эту очередь очищать.
Есть родитель, его емкость Tx/Rx 1Mb/s;
Есть три устройства - vPC;
Каждому нужно выдать Tx/Rx 20кb/s Нагружать буду ping'ом с разным размером пакета: 1500, 1000 и 4000 байт - такая вот упоротая эмуляция рабочей нагрузки.
Собственно сам скрипт привязывается к родителю по его имени:/queue simple
add dst=ether1 max-limit=1M/1M name=parrent target=""
Окно dhcp-server - строка сервера - вкладка Script:
:local queueName "Client $leaseActMAC";
:if ($leaseBound = "1") do={
/queue simple add name=$queueName parent=parrent target=($leaseActIP . "/32") max-limit=20k/20k comment=[/ip dhcp-server lease get [find where active-mac-address=$leaseActMAC && active-address=$leaseActIP] host-name];
} else={
/queue simple remove $queueName
}
На этом месте сегодня хотел закончить с RouterOS, но чот как-то совсем мало получилось.
Удаляю ether2,3,4 из бриджа. Делаю три подсети (192.168.10.0/24, 192.168.11.0/24) 192.168.12.0/24) на каждый интерфейс цепляю свой DHCP-Server. Все они будут принадлежать одному родителю:
Понятное дело, что в локальной сети скорость ограничиваться не будет - родитель отслеживает только интерфейс который в "мир" смотрит.
Если оставить Target 0.0.0.0/0 и не указать dst перестанет правильно считаться upload и резаться будет и в мир и между подсетями:
Сегодня использовал алгоритм pfifo (first in — first out, первый пришел - первый ушел). Ёмкость буфера - 10 пакетов.
В следующей раз соберу лабу с использованием алгоритма PCQ (per-connection queuing — распределение очередей по соединениям) и разными параметрами "target".
На сегодня всё. К C++ и питону даже не прикасался.
Всем правильно настроенных очередей :)




















































