Я знаю, что это частый вопрос, но я потратил два дня, чтобы узнать это, и до сих пор не могу найти четкого объяснения ...
Недавно я купил Miktotik hEX (RouterOS 6, уровень 4), используемый в качестве основного маршрутизатора для оптоволоконного соединения 100 Мбит вниз / 30 Мбит вверх (тесты скорости показывают фактически 110/33, поскольку мой провайдер добавляет 10% маржу). Я хочу расставить приоритеты для трафика, чтобы избежать проблем с вызовами VoIP (через Twilio).
Раньше я успешно расставлял приоритеты трафика с помощью FireQOS используя пользовательский ящик Linux (который, однако, не может обрабатывать более 20 Мбит), используя следующую конфигурацию:
DEVICE=ppp0
INPUT_SPEED=20mbit
OUTPUT_SPEED=10mbit
LINKTYPE="local pppoe-llc"
interface $DEVICE world-in input rate $INPUT_SPEED
class voip commit 120kbit # https://www.twilio.com/docs/api/client/regions
match src 54.171.127.192/26 # Twilio: ie1
match src 52.215.127.0/24 # Twilio: ie1
match src 35.156.191.128/25 # Twilio: de1
match src 185.187.132.64/26 # Twilio: ie1-tnx
match udp port 5060 # SIP
match udp dports 10000:10100 # RTP
match sports 3478,5349 # STUN
class interactive commit 20%
match udp port 53 # DNS
match tcp port 22 # SSH
match icmp # ping
match tcp sports 5222,5228 # gtalk
class synacks
match tcp syn
match tcp ack
class web commit 5%
match tcp sports 80,443
class mail
match tcp sports 25,465,587
class default
interface $DEVICE world-out output rate $OUTPUT_SPEED
class voip commit 120kbit
match dst 54.171.127.192/26 # Twilio: ie1
match dst 52.215.127.0/24 # Twilio: ie1
match dst 35.156.191.128/25 # Twilio: de1
match dst 185.187.132.64/26 # Twilio: ie1-tnx
match udp port 5060 # SIP
match udp sports 10000:10100 # RTP
match dports 3478,5349 # STUN
class interactive commit 20%
match udp port 53 # DNS
match tcp port 22 # SSH
match icmp # ping
match tcp dports 5222,5228 # gtalk
class synacks commit 2%
match tcp syn
match tcp ack
class web commit 5%
match tcp dports 80,443
class mail
match tcp dports 25,465,587
class default
Тем временем я попытался установить соответствующие метки пакетов в RouterOS:
Я думаю, мне нужно настроить деревья очередей на Mikrotik и создать основную очередь для доступных скоростей увеличения / уменьшения и разделить на некоторые приоритеты.
В настоящее время я не знаю, с чего начать, поскольку не вижу способа создать две отдельные очереди для входящего и исходящего трафика (поскольку у меня асимметричная пропускная способность).
Я вижу, что для каждого интерфейса есть предопределенные (родительские) очереди, но проблема в том, что я использую VLAN для обеспечения доступа к WAN для три полностью независимых подсети. Единственный физический порт, который я использую: ether2-master
:
Я предполагаю создать очередь для родителей ether2-master
не будет работать, поскольку пакеты не будут отмечены на этом уровне (верно?), поскольку все ether2-master
пакеты имеют теги VLAN.
Я бы хотел иметь такое же QoS, как у FireQOS, но что действительно важно, так это часть VoIP.
Итак, как мне настроить дерево очереди?
Я бы определенно пометил пакеты перед принятием решения о маршрутизации, поэтому вы должны установить свои правила маркировки маршрутизации для предварительной маршрутизации, а не для прямой цепочки.
Затем добавьте очереди для VoIP-трафика под глобальную очередь и установите гарантированную скорость.
/queue tree add name="voip_in" parent=global packet-mark=VOIP_IN queue=pcq-download-default priority=1 limit-at=120k max-limit=100M
/queue tree add name="voip_out" parent=global packet-mark=VOIP_OUT queue=pcq-upload-default priority=1 limit-at=120k max-limit=30M
Вы также должны отмечать входящий и исходящий трафик отдельно (interactive_in, interactive_out, synacks_in, synacks_out и т. Д.). Затем вы можете создать соответствующие очереди. Вы не можете указать выделенную полосу пропускания в percantage, вы должны установить значения бит / с.
/queue tree add name="interactive_in" parent=global packet-mark=interactive_in queue=pcq-download-default priority=2 limit-at=20M max-limit=20M
/queue tree add name="interactive_out" parent=global packet-mark=interactive_out queue=pcq-upload-default priority=2 limit-at=6M max-limit=6M
/queue tree add name="synacks_in" parent=global packet-mark=synacks_in queue=pcq-download-default priority=3 limit-at=2M max-limit=2M
/queue tree add name="synacks_out" parent=global packet-mark=synacks_out queue=pcq-upload-default priority=3 limit-at=600k max-limit=600k
/queue tree add name="web_in" parent=global packet-mark=web_in queue=pcq-download-default priority=4 limit-at=5M max-limit=5M
/queue tree add name="web_out" parent=global packet-mark=web_out queue=pcq-upload-default priority=4 limit-at=1500k max-limit=1500k
/queue tree add name="mail_in" parent=global packet-mark=mail_in queue=pcq-download-default priority=5
/queue tree add name="mail_out" parent=global packet-mark=mail_out queue=pcq-upload-default priority=5
/queue tree add name="default" parent=global packet-mark=no-mark queue=default priority=6
Обратите внимание, что значение приоритета не означает приоритет пакета. Он просто устанавливает порядок очередей.