Приоритизация и разграничение трафика

Обсуждение оборудования и его настройки
Ответить
h1g04
Сообщения: 13
Зарегистрирован: 15 фев 2018, 11:03

Добрый день.


Есть офис, канал 10мб\с, работает 15 человек, в офисе стоит микротик RB2011UIAS-2HND-IN

Есть сервер в цоде с RouterOS в виртуалке , канал 100мб\с

Между ними ipsec site-to-site

В офисе понятное дело, сотрудники что-то качают из интернетов, периодически забивают канал, видимо нынче 10мб\с - это архаизм, но так живём, что поделать.


Подскажите, можно ли выделить для трафика ipsec гарантированную скорость 3-4мб\с и приоритет по трафику, а всему остальному трафику "во вне" сделать ограничение в 6-7мб\с ?

Из того, что я нашёл на просторах интернетов алгороитм действия у меня получился следующий:

1. Задать максимальную ширину трафика до подсети серверов 192.168.10.0/24
2. Задать максимальную ширину для общего трафика
3. Маркировать пакеты по основным протоколам: dns запросы, smtp, imap, Active Directory , во вторую очередь rdp, 1c, smb - файловое хранилище,
4. Задать приоритет 1 у рабочего трафика и приоритет 2 для трафика до RDP, 1C, SMB

Единственное я пока не понял можно ли сделать так, чтобы трафик по smtp и imap во вне относился к трафику к подсети серверов, видимо можно IP яндексовской почты указать.

Правильно ли я вообще мыслю? Есть какие-то ошибки?


Заранее благодарен.


Аватара пользователя
algerka
Сообщения: 407
Зарегистрирован: 14 дек 2011, 12:31

h1g04 писал(а): 06 мар 2019, 10:23
1. Задать максимальную ширину трафика до подсети серверов 192.168.10.0/24
2. Задать максимальную ширину для общего трафика
3. Маркировать пакеты по основным протоколам: dns запросы, smtp, imap, Active Directory , во вторую очередь rdp, 1c, smb - файловое хранилище,
4. Задать приоритет 1 у рабочего трафика и приоритет 2 для трафика до RDP, 1C, SMB
Заранее благодарен.
Я бы немного по другому подошел:
1. корень очереди 10Мбит
2. из неё дочерней очередью варезаем трафик до ip ЦОД нужного размера
3. из п.2 дочерней очередью офисные приоритеты. вы вот rdp в вторую очередь засунули. а это не есть хорошо. Почту то можно и подождать, а если rdp будет отваливаться то это уже фиаско.
4. из п.1 дочерней очередью вырезаем под интернет.

Но при даже при этой настройке, вы столкнетесь стем, что трафик из ЦОД будет забивать ваш канал, т.к. у него канал шире. Для этого еще и в ЦОДе надо настроить ограничение канала в ваш офис. Но и это не даст 100% результата :)


Александр
h1g04
Сообщения: 13
Зарегистрирован: 15 фев 2018, 11:03

algerka писал(а): 06 мар 2019, 12:41
h1g04 писал(а): 06 мар 2019, 10:23
1. Задать максимальную ширину трафика до подсети серверов 192.168.10.0/24
2. Задать максимальную ширину для общего трафика
3. Маркировать пакеты по основным протоколам: dns запросы, smtp, imap, Active Directory , во вторую очередь rdp, 1c, smb - файловое хранилище,
4. Задать приоритет 1 у рабочего трафика и приоритет 2 для трафика до RDP, 1C, SMB
Заранее благодарен.
Я бы немного по другому подошел:
1. корень очереди 10Мбит
2. из неё дочерней очередью варезаем трафик до ip ЦОД нужного размера
3. из п.2 дочерней очередью офисные приоритеты. вы вот rdp в вторую очередь засунули. а это не есть хорошо. Почту то можно и подождать, а если rdp будет отваливаться то это уже фиаско.
4. из п.1 дочерней очередью вырезаем под интернет.

Но при даже при этой настройке, вы столкнетесь стем, что трафик из ЦОД будет забивать ваш канал, т.к. у него канал шире. Для этого еще и в ЦОДе надо настроить ограничение канала в ваш офис. Но и это не даст 100% результата :)
Благодарю за ответ!

На стороне ЦОДа трафик в рабочие часы подскакивает максимум до 15мб\с из 100мб\с возможных, я думаю можно ничего не ограничивать)

Я попробовал сделать вот так:

Код: Выделить всё

/queue simple
add max-limit=10M/10M name=GLOBAL target=192.168.33.0/24
add dst=192.168.10.0/24 limit-at=5M/5 max-limit=10M/10M name=child1 parent=GLOBAL target=192.168.33.0/24
add max-limit=10M/10M name=child2 parent=GLOBAL target=192.168.33.0/24
Правильно?

Хотя нашёл вики https://wiki.mikrotik.com/wiki/Tips_and ... f_RouterOS

пишут что нужно добавить еще одно правило:

Код: Выделить всё

add name=child2 parent=GLOBAL target=192.168.33.0/24 
Я только не понял п.3 , это вы уже про маркировку трафика в mangle ?


h1g04
Сообщения: 13
Зарегистрирован: 15 фев 2018, 11:03

Теперь дошёл до QoS.

Сначала я маркирую подключения, потом маркирую пакеты. И по маркировке пакетов уже выставляю и приоритет:

Код: Выделить всё

/ip firewall mangle

add action=mark-connection chain=prerouting comment="Mark To Server" dst-address-list=SERVERS dst-port=1541,1560-1590,3389,9100,139,445,22 new-connection-mark=servers_1C passthrough=yes protocol=tcp src-address=192.168.33.0/24 tcp-flags=""
add action=mark-connection chain=prerouting dst-address-list=SERVERS dst-port=1541,1560-1590 new-connection-mark=servers_1C passthrough=yes protocol=udp src-address=192.168.33.0/24
add action=mark-packet chain=prerouting connection-mark=servers_1C new-packet-mark=servers_1C_pck passthrough=yes

/queue simple
add max-limit=10M/10M name=PARENT target=192.168.33.0/24
add name=Mark_Servers_1C packet-marks=servers_1C_pck parent=PARENT priority=2/2 target=192.168.33.0/2
add dst=192.168.10.0/24 limit-at=5M/5M max-limit=10M/10M name=to_servers parent=PARENT target=192.168.33.0/24
add max-limit=7M/7M name=to_all parent=PARENT queue=pcq-burst-upload/pcq-burst-download target=192.168.33.0/24
Но при этом в графе Traffic в свойствах очереди Mark_Servers_1C нет ни одного пакета.

Что я делаю не так?)


Аватара пользователя
algerka
Сообщения: 407
Зарегистрирован: 14 дек 2011, 12:31

Задача не простая, и в двух правилах её не сделаешь.
Вам бы советовал не использовать simple, а использовать Tree.


Александр
h1g04
Сообщения: 13
Зарегистрирован: 15 фев 2018, 11:03

algerka писал(а): 06 мар 2019, 18:06 Задача не простая, и в двух правилах её не сделаешь.
Вам бы советовал не использовать simple, а использовать Tree.
Благодарю, да, я в итоге пришёл к маркировке пакетов в Mangle и использованию tree.

Но я столкнулся со следующей проблемой:

Например в mangle я маркирую исходящий трафик на 80 и 443 порт:

Код: Выделить всё

add action=mark-connection chain=prerouting comment="Mark Web browser" dst-port=80,443 new-connection-mark=outside_web passthrough=yes protocol=tcp tcp-flags=""
add action=mark-connection chain=prerouting dst-port=80,443 new-connection-mark=outside_web passthrough=yes protocol=udp tcp-flags=""
add action=mark-connection chain=forward dst-port=80,443 new-connection-mark=outside_web passthrough=yes protocol=tcp tcp-flags=""
add action=mark-connection chain=forward dst-port=80,443 new-connection-mark=outside_web passthrough=yes protocol=udp tcp-flags=""
add action=mark-packet chain=prerouting connection-mark=outside_web new-packet-mark=outside_web_pck passthrough=no
При этом я решил отловить трафик, который никак не промаркирован:

Код: Выделить всё

add action=mark-packet chain=forward comment="All other"  log=yes log-prefix=UNMARKED new-packet-mark=no_mark out-interface=ether1 packet-mark=no-mark passthrough=no src-address=192.168.33.0/24
В tree я создал родителя и два правила для трафика 80,443 и unmarked:

Код: Выделить всё

/queue tree
add max-limit=10M name="Total - rx" parent=global
add name="Browser - rx" packet-mark=outside_web_pck parent="Total - rx"
add name="Umarked - rx" packet-mark=no-mark parent="Total - rx"
Но при этом я вижу в логе что пакеты на 443 порт не промаркированы:

Код: Выделить всё

11:01:00 firewall,info UNMARKED forward: in:bridge out:ether1, src-mac ac:9e:17:2f:83:18, proto TCP (ACK,FIN), 192.168.33.45:63200->78.46.57.120:443, len 40 
11:01:00 firewall,info UNMARKED forward: in:bridge out:ether1, src-mac ac:9e:17:2f:83:18, proto TCP (ACK,RST), 192.168.33.45:63200->78.46.57.120:443, len 40 
11:01:01 firewall,info UNMARKED forward: in:bridge out:ether1, src-mac 3c:2c:30:9e:e8:49, proto TCP (ACK,RST), 192.168.33.30:51957->138.201.36.251:80, len 40 
11:01:01 firewall,info UNMARKED forward: in:bridge out:ether1, src-mac 3c:2c:30:9e:e8:49, proto TCP (ACK,RST), 192.168.33.30:51968->82.202.213.163:80, len 40 
Подскажите, почему?


h1g04
Сообщения: 13
Зарегистрирован: 15 фев 2018, 11:03

Обратил внимание, что пакеты TCP SYN маркируются а пакеты TCP ACK, FIN не маркируются


Ответить