r1sh Posted March 5, 2019 · Report post Добрый день. Есть офис, канал 10мб\с, работает 15 человек, в офисе стоит микротик RB2011UIAS-2HND-IN Есть сервер в цоде с RouterOS в виртуалке , канал 100мб\с Между ними ipsec site-to-site В офисе понятное дело, сотрудники что-то качают из интернетов, периодически забивают канал, видимо нынче 10мб\с - это архаизм, но так живём, что поделать. Подскажите, можно ли выделить для трафика ipsec гарантированную скорость 3-4мб\с и приоритет по трафику, а всему остальному трафику "во вне" сделать ограничение в 6-7мб\с ? Заранее благодарен. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 5, 2019 · Report post Решил начать с QoS, я так понимаю сначала нужно маркировать трафик в mangle потом в queue задать приоритет для маркированного трафика Нашёл несколько статей: https://wiki.mikrotik.com/wiki/Traffic_Priortization,_RouterOS_QoS_Implemetation https://habr.com/ru/post/330362/ Только в wiki пакеты маркируются в форварде а на хабре в прероутинге, я так понимаю логичнее это делать в пре-роутинге Потом задам для dst.ip определенную ширину канала Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
maxkst Posted March 5, 2019 · Report post 51 минуту назад, r1sh сказал: Только в wiki пакеты маркируются в форварде а на хабре в прероутинге, я так понимаю логичнее это делать в пре-роутинге А вы и так и так попробуйте, для интереса. Я думаю, это правило одинаково сработает в обоих случаях. Можете поставить одно за другим, если первое будет пропускать дальше, на второе, то второе выловит тот же трафик, и счетчики будут тикать синхронно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 6, 2019 (edited) · Report post 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 March 6, 2019 by r1sh Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 6, 2019 (edited) · Report post У меня эт оне заработало, весь трафик шёл через 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 March 6, 2019 by r1sh Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 6, 2019 · Report post В итоге сделал с родителем: 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 6, 2019 · Report post Теперь дошёл до 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 нет ни одного пакета. Что я делаю не так?) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 6, 2019 · Report post а, всё разобрался) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
maxkst Posted March 6, 2019 · Report post @r1sh остался последний штрих: надо было так: aaaaaaaa сделал все так: bbbbbbbb, и все работает как часы, забирайте кому надо :-) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 7, 2019 (edited) · Report post 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 March 7, 2019 by r1sh Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 7, 2019 (edited) · Report post Обратил внимание, что пакеты TCP SYN маркируются а пакеты TCP с двумя флагами: ACK и FIN или ACK и RST. Edited March 7, 2019 by r1sh Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
McSea Posted March 7, 2019 · Report post А если в логирующее правило добавить "connection-state=!invalid", будут пакеты попадать под него ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 7, 2019 (edited) · Report post 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Гб за сегодняшний день. Edited March 7, 2019 by r1sh Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
McSea Posted March 7, 2019 · Report post @r1sh А fasttrack у вас включен ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 11, 2019 (edited) · Report post В 07.03.2019 в 17:28, McSea сказал: @r1sh А fasttrack у вас включен ? вот это первое, что я проверил - нет, выключен Edited March 11, 2019 by r1sh Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted March 11, 2019 · Report post Если вы хотите ограничить интернет для абонентов на 6-7, так сделайте одно правило тип PCQ с большим буфером, и укажите общее ограничение 6-7. Тогда остальные 4-3 от канала останутся на туннель. Вот и все дела. Пользователи внутри своего ограничения сами равномерно распределят трафик. Но нужно понимать, что есть у вас входящий канал 10М, то потребление 6 + 4 это будет уже больше чем 10М, и тогда нужно делать ограничение для пользователей в виде 5М, если туннель потребляет 4М, что бы со стороны провайдера не попасть под его шейпер. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 11, 2019 · Report post 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мб\с По этому прежде чем расширять канал я решил собрать инфу о том какой тип трафика сколько потребляет от общей полосы и исходя из этого уже действовать дальше Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted March 11, 2019 · Report post Если PCQ действительно настроен и работает, при этом максимальная скорость установлена ниже максимальной входящей (допустим у вас тариф 10М, если все пользователи включат свои закачки и сайты, то у оператора на вашем порту окажется 11-12, а временами и 13 мегабит трафика, при этом лишнее он обрежет, и у ваших потребителей пойдут дропы и переповторы, что еще более ограничит реальную входящую скорость), тогда работать приоритеты будут так: 1. Вася качает торрент на скорости 10М. 2. Петя открывает сайт, нажав на ссылку, при этом загрузка сайта потребует 3М скорости. Вася как качал, так и качает на 10М, а Пети выделяется поток внутри общего ограничения и в его сторону начинают идти данные. Через 5 секунд Вася будет качать торренты уже на скорости 7М, а Петя загружать сайт на скорости 3М. То есть любое действие при ограничении PCQ будет требовать 1-2-3 секунды на раскачку, пока потоки данных не устаканятся. А приоритеты по портам и протоколам сейчас не очень работают, т.к. все уже в курсе про приоритеты и их приложения лезут там, где больше скорость. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 11, 2019 · Report post 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 поработать, у него забита его полоса - он начнёт жаловаться мол так и так не могу работать, плохой интернет, такое может быть? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
McSea Posted March 11, 2019 (edited) · Report post @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 March 11, 2019 by McSea Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Saab95 Posted March 12, 2019 · Report post А у рдп или телефонии нет некого внешнего IP, на который соединения устанавливаются? Тогда можно не порты и типы вылавливать, а соединения по этому направлению. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 13, 2019 · Report post В 12.03.2019 в 10:13, Saab95 сказал: А у рдп или телефонии нет некого внешнего IP, на который соединения устанавливаются? Тогда можно не порты и типы вылавливать, а соединения по этому направлению. у рдп есть локальный IP, между офисами ipsec туннели телефонию телефонисты тоже завернули через ipsec хотя сервак смотрит наружу с белым IP x_X Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
r1sh Posted March 25, 2019 · Report post всем спасибо!) с проблемой разобрался) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...