В небольших организациях необходимо не столько резать скорость, сколько приоритизировать нужный трафик.
Для построения дерева очередей сначала необходимо промаркировать соединения и на их основе пакеты.
За основу я возьму сконфигурированный в прошлой статье микрот.
Начнём с управляющего трафика
Добавляем правило, которое в цепочке prerouting маркирует новые соединения по протоколу tcp, идущие на порты 8391 (Winbox) и 22 (ssh)
IP -> Firewall -> Mangle -> Плюсик
Затем правило, которое в цепочке prerouting маркирует пакеты в соединениях, промаркированных Manage_conn
IP -> Firewall -> Mangle -> Плюсик
В текущей настройке я исключу из диапазона раздаваемых внутри сети адресов адреса с 10.10.10.2 по 10.10.10.100 и впоследствии буду назначать их вручную (серверам и т.д.).
IP -> Pool -> Вкладка Pools -> Двойной клик по строке с диапазономИсправляем 2 на 100
Если у нас будет/есть SIP-телефония, то сначала нужно создать список IP-адресов серверов телефонии стоящих "снаружи" и добавить в их список SIP-Servers-Outside, а IP-адреса серверов "внутри" в список SIP-Servers-Inside.
Я для примера добавлю 2 адреса: 1.1.1.1 в список внешних серверов SIP-Servers-Outside и адрес 10.10.10.10 в список SIP-Servers-Inside
У вас, конечно же, будут свои адреса, которые и нужно подставить вместо указанных для примера.
Маркируем соединения для SIP
IP -> Firewall -> Mangle -> Плюсик
IP -> Firewall -> Mangle -> Плюсик
Маркируем пакеты внутри соединений.
IP -> Firewall -> Mangle -> Плюсик
Маркируем DNS-запросы по протоколу tcp и по протоколу udp.
IP -> Firewall -> Mangle -> Плюсик
Маркируем HTTP/HTTPS-трафик.
IP -> Firewall -> Mangle -> Плюсик
Маркируем RDP-трафик.
IP -> Firewall -> Mangle -> Плюсик
Маркируем весь остальной трафик.
IP -> Firewall -> Mangle -> Плюсик
То же в терминале (не забудьте поменять адреса серверов телефонии перед копи/пастом):
/ip pool set [find name=local] ranges=10.10.10.100-10.10.10.254
/ip firewall address-list add list=SIP-Servers-Outside address=1.1.1.1 disabled=no
/ip firewall address-list add list=SIP-Servers-Inside address=10.10.10.10 disabled=no
/ip firewall mangle
add action=mark-connection chain=prerouting protocol=tcp connection-state=new dst-port=8391,22 new-connection-mark=Manage_conn passthrough=yes comment="Manage_connections"
add action=mark-packet chain=prerouting connection-mark=Manage_conn new-packet-mark=Manage_packets passthrough=no comment="Manage_packets"
add action=mark-connection chain=prerouting connection-state=new dst-address-list=SIP-Servers-Outside new-connection-mark=SIP_Conn passthrough=yes src-address-list=SIP-Servers-Inside/Clients comment=SIP-Out
add action=mark-connection chain=prerouting connection-state=new dst-address-list=SIP-Servers-Inside/Clients new-connection-mark=SIP_Conn passthrough=yes src-address-list=SIP-Servers-Outside comment=SIP-In
add action=mark-packet chain=prerouting connection-mark=SIP_Conn new-packet-mark=SIP_Packets passthrough=no comment=SIP_Packets
add action=mark-connection chain=prerouting connection-state=new dst-port=53 new-connection-mark=DNS_connections passthrough=yes protocol=tcp comment=DNS_tcp_connections
add action=mark-connection chain=prerouting connection-state=new dst-port=53 new-connection-mark=DNS_connections passthrough=yes protocol=udp comment=DNS_udp_connections
add action=mark-packet chain=prerouting connection-mark=DNS_connections new-packet-mark=DNS_Packets passthrough=no comment=DNS-packets
add action=mark-connection chain=prerouting connection-state=new dst-port=80,443 new-connection-mark=HTTP_Connections passthrough=yes protocol=tcp comment=HTTP_Connections
add action=mark-packet chain=prerouting connection-mark=HTTP_Connections new-packet-mark=HTTP_Packets passthrough=no comment=HTTP_Packets
add action=mark-connection chain=prerouting connection-state=new dst-port=3389 new-connection-mark=RDP_Connections passthrough=yes protocol=tcp comment=RDP_Connections
add action=mark-packet chain=prerouting connection-mark=RDP_Conn new-packet-mark=RDP_Packets passthrough=no comment=RDP_Packets
add action=mark-connection chain=prerouting connection-state=new connection-mark=no-mark new-connection-mark=All_Other_Connections passthrough=yes comment=Other_Connections
add action=mark-packet chain=prerouting connection-mark=All_Other_Connections new-packet-mark=All_Other_Packets passthrough=no comment=Other_Packets
Queues -> Вкладка Queue Tree -> Плюсик
Последовательно добавляем правила с параметрами, приведенными в таблице.
Кратко о параметрах:
Parent - родительская очередь
Packet Marks - маркировка обрабатываемых пакетов
Priority - приоритет (максимальный или высший- 1, минимальный или низший - 8)
Limit At - гарантированная скорость
Max Limit - максимальная скорость
Burst Limit - максимальная скорость в режиме вспышка (Burst)
Burst Threshold> и Burst Time - параметры для расчета длительности режима вспышка
То же в терминале:
/queue tree
add name=LAN-queue parent=LAN max-limit=50M
add name=WAN-queue parent=ether1 max-limit=50M
add name=SIP-LAN parent=LAN-queue packet-mark=SIP_Packets priority=4 limit-at=4M max-limit=10M burst-limit=15M burst-threshold=7M burst-time=16
add name=SIP-WAN parent=WAN-queue packet-mark=SIP_Packets priority=4 limit-at=4M max-limit=10M burst-limit=15M burst-threshold=7M burst-time=16
add name=DNS-LAN parent=LAN-queue packet-mark=DNS_Packets priority=5 limit-at=1M max-limit=2M
add name=DNS-WAN parent=WAN-queue packet-mark=DNS_Packets priority=5 limit-at=1M max-limit=2M
add name=RDP-LAN parent=LAN-queue packet-mark=RDP_Packets priority=6 limit-at=5M max-limit=10M
add name=RDP-WAN parent=WAN-queue packet-mark=RDP_Packets priority=6 limit-at=5M max-limit=10M
add name=HTTP-LAN parent=LAN-queue packet-mark=HTTP_Packets priority=7 limit-at=5M max-limit=20M burst-limit=25M burst-threshold=15M burst-time=16
add name=HTTP-WAN parent=WAN-queue packet-mark=HTTP_Packets priority=7 limit-at=5M max-limit=20M burst-limit=25M burst-threshold=15M burst-time=16
add name=Other-LAN parent=LAN-queue packet-mark=All_Other_Packets priority=8 limit-at=2M max-limit=8M burst-limit=12M burst-threshold=7M burst-time=16
add name=Other-WAN parent=WAN-queue packet-mark=All_Other_Packets priority=8 limit-at=2M max-limit=8M burst-limit=12M burst-threshold=7M burst-time=16
На этом приоритизацию трафика можно считать настроенной. В данном примере подразумевается, что провайдер выдает вам максимально 50M.
При других вводных расчет скоростей, лимитов и т.д. вам нужно будет произвести самостоятельно
Традиционно настройка из терминала (все вышеописанное одним блоком вставить в терминал).
/ip pool set [find name=local] ranges=10.10.10.100-10.10.10.254
/ip firewall address-list add list=SIP-Servers-Outside address=1.1.1.1 disabled=no
/ip firewall address-list add list=SIP-Servers-Inside address=10.10.10.10 disabled=no
/ip firewall mangle
add action=mark-connection chain=prerouting protocol=tcp connection-state=new dst-port=8391,22 new-connection-mark=Manage_conn passthrough=yes comment="Manage_connections"
add action=mark-packet chain=prerouting connection-mark=Manage_conn new-packet-mark=Manage_packets passthrough=no comment="Manage_packets"
add action=mark-connection chain=prerouting connection-state=new dst-address-list=SIP-Servers-Outside new-connection-mark=SIP_Conn passthrough=yes src-address-list=SIP-Servers-Inside/Clients comment=SIP-Out
add action=mark-connection chain=prerouting connection-state=new dst-address-list=SIP-Servers-Inside/Clients new-connection-mark=SIP_Conn passthrough=yes src-address-list=SIP-Servers-Outside comment=SIP-In
add action=mark-packet chain=prerouting connection-mark=SIP_Conn new-packet-mark=SIP_Packets passthrough=no comment=SIP_Packets
add action=mark-connection chain=prerouting connection-state=new dst-port=53 new-connection-mark=DNS_connections passthrough=yes protocol=tcp comment=DNS_tcp_connections
add action=mark-connection chain=prerouting connection-state=new dst-port=53 new-connection-mark=DNS_connections passthrough=yes protocol=udp comment=DNS_udp_connections
add action=mark-packet chain=prerouting connection-mark=DNS_connections new-packet-mark=DNS_Packets passthrough=no comment=DNS-packets
add action=mark-connection chain=prerouting connection-state=new dst-port=80,443 new-connection-mark=HTTP_Connections passthrough=yes protocol=tcp comment=HTTP_Connections
add action=mark-packet chain=prerouting connection-mark=HTTP_Connections new-packet-mark=HTTP_Packets passthrough=no comment=HTTP_Packets
add action=mark-connection chain=prerouting connection-state=new dst-port=3389 new-connection-mark=RDP_Connections passthrough=yes protocol=tcp comment=RDP_Connections
add action=mark-packet chain=prerouting connection-mark=RDP_Conn new-packet-mark=RDP_Packets passthrough=no comment=RDP_Packets
add action=mark-connection chain=prerouting connection-state=new connection-mark=no-mark new-connection-mark=All_Other_Connections passthrough=yes comment=Other_Connections
add action=mark-packet chain=prerouting connection-mark=All_Other_Connections new-packet-mark=All_Other_Packets passthrough=no comment=Other_Packets
/queue tree
add name=LAN-queue parent=LAN max-limit=50M
add name=WAN-queue parent=ether1 max-limit=50M
add name=SIP-LAN parent=LAN-queue packet-mark=SIP_Packets priority=4 limit-at=4M max-limit=10M burst-limit=15M burst-threshold=7M burst-time=16
add name=SIP-WAN parent=WAN-queue packet-mark=SIP_Packets priority=4 limit-at=4M max-limit=10M burst-limit=15M burst-threshold=7M burst-time=16
add name=DNS-LAN parent=LAN-queue packet-mark=DNS_Packets priority=5 limit-at=1M max-limit=2M
add name=DNS-WAN parent=WAN-queue packet-mark=DNS_Packets priority=5 limit-at=1M max-limit=2M
add name=RDP-LAN parent=LAN-queue packet-mark=RDP_Packets priority=6 limit-at=5M max-limit=10M
add name=RDP-WAN parent=WAN-queue packet-mark=RDP_Packets priority=6 limit-at=5M max-limit=10M
add name=HTTP-LAN parent=LAN-queue packet-mark=HTTP_Packets priority=7 limit-at=5M max-limit=20M burst-limit=25M burst-threshold=15M burst-time=16
add name=HTTP-WAN parent=WAN-queue packet-mark=HTTP_Packets priority=7 limit-at=5M max-limit=20M burst-limit=25M burst-threshold=15M burst-time=16
add name=Other-LAN parent=LAN-queue packet-mark=All_Other_Packets priority=8 limit-at=2M max-limit=8M burst-limit=12M burst-threshold=7M burst-time=16
add name=Other-WAN parent=WAN-queue packet-mark=All_Other_Packets priority=8 limit-at=2M max-limit=8M burst-limit=12M burst-threshold=7M burst-time=16