Jump to content

Recommended Posts

Posted

Добрый день.

 

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

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

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

 

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

 

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

 

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

Posted

Решил начать с QoS, я так понимаю сначала нужно маркировать трафик в mangle

потом в queue задать приоритет для маркированного трафика

 

Нашёл несколько статей:

https://wiki.mikrotik.com/wiki/Traffic_Priortization,_RouterOS_QoS_Implemetation

https://habr.com/ru/post/330362/

 

Только в wiki пакеты маркируются в форварде а на хабре в прероутинге, я так понимаю логичнее это делать в пре-роутинге

 

Потом задам для dst.ip определенную ширину канала

Posted
51 минуту назад, r1sh сказал:

Только в wiki пакеты маркируются в форварде а на хабре в прероутинге, я так понимаю логичнее это делать в пре-роутинге

А вы и так и так попробуйте, для интереса. Я думаю, это правило одинаково сработает в обоих случаях.

Можете поставить одно за другим, если первое будет пропускать дальше, на второе, то второе выловит тот же трафик, и счетчики будут тикать синхронно.

Posted (edited)
16 часов назад, maxkst сказал:

А вы и так и так попробуйте, для интереса. Я думаю, это правило одинаково сработает в обоих случаях.

Можете поставить одно за другим, если первое будет пропускать дальше, на второе, то второе выловит тот же трафик, и счетчики будут тикать синхронно.

благодарю за ответ) еще пока не понимаю как гарантированно зарезервировать пропускную способность для трафика по VPN.

 

Нашёл статью https://wiki.mikrotik.com/wiki/Tips_and_Tricks_for_Beginners_and_Experienced_Users_of_RouterOS

 

Можно ли это сделать таким способом?

 

/queue simple
add max-limit=20M/20M name=GLOBAL target=192.168.88.0/24
add dst=192.168.10.0/24 max-limit=10M/10M name=child1 parent=GLOBAL target=192.168.88.0/24
add name=child2 parent=GLOBAL target=192.168.88.0/24

 

Я так понимаю, сначала задаётся общий канал

потом задаётся канал только для трафика от 192.168.88.0/24 до 192.168.10.0/24

потом задаётся "остальной" канал для 192.168.88.0/24

Edited by r1sh
Posted (edited)

У меня эт оне заработало, весь трафик шёл через child1, через child2 ничего не шло, что странно.

 

Сработало вот это, пока смотрю насколько корректно:

 

/queue simple

add dst=192.168.10.0/24 limit-at=5M/5M max-limit=20M/20M name=SERVER target=192.168.88.0/24
add max-limit=20M/20M name=TOTAL target=192.168.88.0/24

 

Я правильно понимаю, что limit-at - означает гарантированную минимальную скорость трафика несмотря на занятость канала? а max-limit - верхний порг
 

Edited by r1sh
Posted

В итоге сделал с родителем:

 

add max-limit=20M/20M name=PARENT target=192.168.88.0/24
add dst=192.168.10.0/24 limit-at=10M/10M max-limit=20M/20M name=to_servers parent=PARENT target=192.168.88.0/24
add max-limit=20M/20M name=to_all parent=PARENT queue=pcq-burst-upload/pcq-burst-download target=192.168.88.0/24

 

Posted

Теперь дошёл до 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 нет ни одного пакета.

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

Posted (edited)
14 часов назад, maxkst сказал:

@r1sh остался последний штрих:

 

надо было так: aaaaaaaa сделал все так: bbbbbbbb, и все работает как часы, забирайте кому надо :-)

Разобраться-разобрался но есть проблема))

 

 

Я в итоге пришёл к маркировке пакетов в 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 


 

 

Подскажите, почему?

Edited by r1sh
Posted (edited)
2 часа назад, McSea сказал:

А если в логирующее правило добавить "connection-state=!invalid", будут пакеты попадать под него ?

О, спасибо за поправку, теперь пакеты не попадают под него:)

 

Вернее как, в ветке forward не попадают а в ветке prerouting попадают:

 

16:25:49 firewall,info UNMARKED prerouting: in:bridge out:(unknown 0), src-mac e0:d5:5e:4c:70:5e, proto TCP (ACK), 192.168.33.39:60923->151.236.74.7:443, NAT (192.168.33.39:60923->213.33.252.110:60923)->151.236.74.7:443, len 40 
16:25:49 firewall,info UNMARKED prerouting: in:bridge out:(unknown 0), src-mac e0:d5:5e:4c:70:5e, proto TCP (ACK), 192.168.33.39:60923->151.236.74.7:443, NAT (192.168.33.39:60923->213.33.252.110:60923)->151.236.74.7:443, len 40 

 

Я собственно почему начал исследовать это правило: я создал дерево, ограничил ширину канала для unmarked трафика до 1мб\с и мне начали жаловаться, что интернет тормозит, браузер сайты не открывает и тд и тп.  При этом обьём данных, прошедший по маркировке Browsing - 2.3Гб, а по unmarked - 2.6Гб за сегодняшний день.

 

 

 

 

2019-03-07_15-58-44.png

Edited by r1sh
Posted

Если вы хотите ограничить интернет для абонентов на 6-7, так сделайте одно правило тип PCQ с большим буфером, и укажите общее ограничение 6-7. Тогда остальные 4-3 от канала останутся на туннель. Вот и все дела. Пользователи внутри своего ограничения сами равномерно распределят трафик. Но нужно понимать, что есть у вас входящий канал 10М, то потребление 6 + 4 это будет уже больше чем 10М, и тогда нужно делать ограничение для пользователей в виде 5М, если туннель потребляет 4М, что бы со стороны провайдера не попасть под его шейпер.

Posted
20 минут назад, Saab95 сказал:

Если вы хотите ограничить интернет для абонентов на 6-7, так сделайте одно правило тип PCQ с большим буфером, и укажите общее ограничение 6-7. Тогда остальные 4-3 от канала останутся на туннель. Вот и все дела. Пользователи внутри своего ограничения сами равномерно распределят трафик. Но нужно понимать, что есть у вас входящий канал 10М, то потребление 6 + 4 это будет уже больше чем 10М, и тогда нужно делать ограничение для пользователей в виде 5М, если туннель потребляет 4М, что бы со стороны провайдера не попасть под его шейпер.

пользователей 20шт, в дальнейшем будет 30-35, понятное дело под 30-35 юзеров будем расширять канал, но проблема всё равно останется.

 

PCQ я изначально делал, но это не работает, потому что когда два пользователя, например один пользователь занял 5-6мб\с, при этом кто-то звонит по IP телефонии и кто=то другой работает в 1С, еще директор запустил программу просмотра Видеонаблюдения с камер кто-то начал скачивать документацию под 200-300 метров с сервера по vpn туннелю и у пользователей начинаются "подтормаживания" как они выражаются. Я предположил что это связано с приоритетом обработки трафика. Чтобы торренты и браузеры обрабатывались в последнюю очередь а звук и rdp трафик в первую, после рабочего трафика типа icmp, snmp и winbox с ssh.

 

Канал давно бы расширили, но в БЦ провайдер-монополист с конскими ценами на опту - 15к за 10мб\с

 

По этому прежде чем расширять канал я решил собрать инфу о том какой тип трафика сколько потребляет от общей полосы и исходя из этого уже действовать дальше

 

Posted

Если PCQ действительно настроен и работает, при этом максимальная скорость установлена ниже максимальной входящей (допустим у вас тариф 10М, если все пользователи включат свои закачки и сайты, то у оператора на вашем порту окажется 11-12, а временами и 13 мегабит трафика, при этом лишнее он обрежет, и у ваших потребителей пойдут дропы и переповторы, что еще более ограничит реальную входящую скорость), тогда работать приоритеты будут так:

 

1. Вася качает торрент на скорости 10М.

2. Петя открывает сайт, нажав на ссылку, при этом загрузка сайта потребует 3М скорости.

 

Вася как качал, так и качает на 10М, а Пети выделяется поток внутри общего ограничения и в его сторону начинают идти данные. Через 5 секунд Вася будет качать торренты уже на скорости 7М, а Петя загружать сайт на скорости 3М.

 

То есть любое действие при ограничении PCQ будет требовать 1-2-3 секунды на раскачку, пока потоки данных не устаканятся. А приоритеты по портам и протоколам сейчас не очень работают, т.к. все уже в курсе про приоритеты и их приложения лезут там, где больше скорость.

Posted
1 час назад, Saab95 сказал:

Если PCQ действительно настроен и работает, при этом максимальная скорость установлена ниже максимальной входящей (допустим у вас тариф 10М, если все пользователи включат свои закачки и сайты, то у оператора на вашем порту окажется 11-12, а временами и 13 мегабит трафика, при этом лишнее он обрежет, и у ваших потребителей пойдут дропы и переповторы, что еще более ограничит реальную входящую скорость), тогда работать приоритеты будут так:

 

1. Вася качает торрент на скорости 10М.

2. Петя открывает сайт, нажав на ссылку, при этом загрузка сайта потребует 3М скорости.

 

Вася как качал, так и качает на 10М, а Пети выделяется поток внутри общего ограничения и в его сторону начинают идти данные. Через 5 секунд Вася будет качать торренты уже на скорости 7М, а Петя загружать сайт на скорости 3М.

 

То есть любое действие при ограничении PCQ будет требовать 1-2-3 секунды на раскачку, пока потоки данных не устаканятся. А приоритеты по портам и протоколам сейчас не очень работают, т.к. все уже в курсе про приоритеты и их приложения лезут там, где больше скорость.

 

Звучит здраво, подскажите где можно почитать про грамотную реализацию PCQ?

 

А если например 10 пользователей работают по Rdp и качают какие-то легкие Excel файлы на шару, допустим им нужно на всех вместе 4-5мб\с, плюс полоса под voip, допустим 0.5Мб\с , стабильно 1мб\с смотрит директор видеорегистратор а все остальное можно делить между торрентами и браузерами сотрудников.

 

Т.е. важно не то чтобы у каждого была своя полоса, а чтобы она была в первую очередь на rdp и voip, а потом на всё остальное. А то сотрудник поставит качаться файл с яндекс-диска, попробует по rdp поработать, у него забита его полоса - он начнёт жаловаться мол так и так не могу работать, плохой интернет, такое может быть?

Posted (edited)

@r1sh 

 

Вы в правиле отлова немаркированных пакетов опять маркировку делаете, зачем ? Есть action=log для этого.

Сделал такие три правила у себя, все пакеты маркируются, лог пустой.

 

add action=mark-connection chain=forward connection-mark=no-mark dst-port=80,8080,443 new-connection-mark=out_web out-interface=pppoe passthrough=no protocol=tcp
add action=mark-packet chain=forward connection-mark=out_web new-packet-mark=out_web out-interface=pppoe passthrough=yes
add action=log chain=forward connection-state=!invalid dst-port=80,8080,443 log=yes log-prefix=OUT_WEB_UN out-interface=pppoe packet-mark=no-mark protocol=tcp

Без условия !invalid будут попадать пакеты, которые не относятся ни к какому connection, что логично, т.к. маркировка пакетов идет по connection, таких пакетов не должно быть много.

Edited by McSea
Posted

А у рдп или телефонии нет некого внешнего IP, на который соединения устанавливаются? Тогда можно не порты и типы вылавливать, а соединения по этому направлению.

Posted
В 12.03.2019 в 10:13, Saab95 сказал:

А у рдп или телефонии нет некого внешнего IP, на который соединения устанавливаются? Тогда можно не порты и типы вылавливать, а соединения по этому направлению.

у рдп есть локальный IP, между офисами ipsec туннели

 

телефонию телефонисты тоже завернули через ipsec хотя сервак смотрит наружу с белым IP x_X

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.