Jump to content
Калькуляторы

Динамический шейпер на микротик Помогите настроить шейпер

День добрый всем!!! Уважаемые спецы прошу помощи в следующей задаче.

 

На 433G routerboarde на борде поднят шейпер реализованный на HTB очередях. Очередя вроде бы работают нормально, но вот QoS не работает.

 

 

Реализовано все по схеме весь трафик прогоняем Mangle в адрес листе прописаны IP адреса которым присваивается класс трафика в PCQ класам присвоена скорость после все загоняеться в Queue Tree в котором вро де бы как должен выполняться QOS и отдаваться клиентам.

 

/ip firewall mangle

add action=mark-connection chain=forward comment=320K_Minimal_Down disabled=\

no dst-address-list=Minimal_class new-connection-mark=minimal_conn_down \

passthrough=yes

add action=mark-packet chain=forward comment="" connection-mark=\

minimal_conn_down disabled=no new-packet-mark=minimal_trafic_down \

passthrough=no

add action=mark-connection chain=forward comment=320K_Minimal_Up disabled=no \

new-connection-mark=minimal_conn_up passthrough=yes src-address-list=\

Minimal_class

add action=mark-packet chain=forward comment="" connection-mark=\

minimal_conn_up disabled=no new-packet-mark=minimal_trafic_up \

passthrough=no

add action=mark-connection chain=forward comment=512K_Standart_Down disabled=\

no dst-address-list=Standart_class new-connection-mark=standart_conn_down \

passthrough=yes

add action=mark-packet chain=forward comment="" connection-mark=\

standart_conn_down disabled=no new-packet-mark=standart_trafic_down \

passthrough=no

add action=mark-connection chain=forward comment=512K_Standart_Up disabled=no \

new-connection-mark=standart_conn_up passthrough=yes src-address-list=\

Standart_class

add action=mark-packet chain=forward comment="" connection-mark=\

standart_conn_up disabled=no new-packet-mark=standart_trafic_up \

passthrough=no

add action=mark-connection chain=forward comment=1M_Buisnas_Down disabled=no \

dst-address-list=Buisnes_class new-connection-mark=buisnes_conn_down \

passthrough=yes

add action=mark-packet chain=forward comment="" connection-mark=\

buisnes_conn_down disabled=no new-packet-mark=buisnes_trafic_down \

passthrough=no

add action=mark-connection chain=forward comment=1M_Buisnas_Up disabled=no \

new-connection-mark=buisnes_conn_up passthrough=yes src-address-list=\

Buisnes_class

add action=mark-packet chain=forward comment="" connection-mark=\

buisnes_conn_up disabled=no new-packet-mark=buisnes_trafic_up \

passthrough=no

add action=mark-connection chain=forward comment=2M_Super_Down disabled=no \

dst-address-list=Super_class new-connection-mark=super_conn_down \

passthrough=yes

add action=mark-packet chain=forward comment="" connection-mark=\

super_conn_down disabled=no new-packet-mark=super_trafic_down \

passthrough=no

add action=mark-connection chain=forward comment=2M_Super_Up disabled=no \

new-connection-mark=super_conn_up passthrough=yes src-address-list=\

Super_class

add action=mark-packet chain=forward comment="" connection-mark=super_conn_up \

disabled=no new-packet-mark=super_trafic_up passthrough=no

add action=mark-packet chain=prerouting comment=DNS################# \

disabled=no dst-port=53,123 new-packet-mark=QoS_1_Up passthrough=no \

protocol=udp

add action=mark-packet chain=prerouting comment=ICPM disabled=no \

new-packet-mark=QoS_1_Up passthrough=yes protocol=icmp

add action=mark-packet chain=prerouting comment=CS disabled=no dst-port=\

27014-27026 new-packet-mark=QoS_1_Up passthrough=no protocol=udp

add action=mark-packet chain=prerouting comment=WINBOX disabled=no dst-port=\

8291 new-packet-mark=QoS_1_Up passthrough=no protocol=tcp

add action=mark-packet chain=prerouting comment=DUDE disabled=no dst-port=\

2210 new-packet-mark=QoS_1_Up passthrough=no protocol=tcp

add action=mark-packet chain=prerouting comment=TEAMWIVER disabled=no \

dst-port=5938 new-packet-mark=QoS_1_Up passthrough=no protocol=tcp

add action=mark-packet chain=prerouting comment=CARD_SHARING disabled=no \

dst-port=10003 new-packet-mark=QoS_2_Up passthrough=no protocol=udp

add action=mark-packet chain=prerouting comment=HTTP disabled=no \

dst-address-list=web0 dst-port=80,443 new-packet-mark=QoS_3_Up \

passthrough=no protocol=tcp

add action=mark-packet chain=prerouting comment="" disabled=no dst-port=\

80,443 new-packet-mark=QoS_3_Up packet-size=0-666 passthrough=no \

protocol=tcp tcp-flags=syn

add action=mark-packet chain=prerouting comment="" disabled=no dst-port=\

80,443 new-packet-mark=QoS_3_Up packet-size=0-123 passthrough=no \

protocol=tcp tcp-flags=ack

add action=mark-packet chain=prerouting comment=HTTP_DOWNLOAD \

connection-bytes=500000-0 disabled=no dst-port=80,443 new-packet-mark=\

QoS_6_Up passthrough=no protocol=tcp

add action=mark-packet chain=prerouting comment="" connection-bytes=0-500000 \

disabled=no dst-port=80,443 new-packet-mark=QoS_6_Up passthrough=no \

protocol=tcp

add action=mark-packet chain=prerouting comment=P2P disabled=no \

new-packet-mark=QoS_8_Up p2p=all-p2p passthrough=no

add action=mark-packet chain=prerouting comment="" disabled=no \

layer7-protocol=bittorrent new-packet-mark=QoS_8_Up passthrough=no

add action=mark-packet chain=prerouting comment=ALL_PACKET disabled=no \

new-packet-mark=QoS_8_Up passthrough=no

add action=log chain=forward comment="" disabled=no log-prefix=""

 

/queue type

set default kind=pfifo name=default pfifo-limit=50

set ethernet-default kind=pfifo name=ethernet-default pfifo-limit=50

set wireless-default kind=sfq name=wireless-default sfq-allot=1514 \

sfq-perturb=5

set synchronous-default kind=red name=synchronous-default red-avg-packet=1000 \

red-burst=20 red-limit=60 red-max-threshold=50 red-min-threshold=10

set hotspot-default kind=sfq name=hotspot-default sfq-allot=1514 sfq-perturb=\

5

add kind=pcq name=PCQ_down_320k pcq-classifier=dst-address pcq-limit=50 \

pcq-rate=320000 pcq-total-limit=2000

add kind=pcq name=PCQ_up_320k pcq-classifier=src-address pcq-limit=50 \

pcq-rate=320000 pcq-total-limit=2000

add kind=pcq name=PCQ_down_521k pcq-classifier=dst-address pcq-limit=50 \

pcq-rate=512000 pcq-total-limit=2000

add kind=pcq name=PCQ_up_512k pcq-classifier=src-address pcq-limit=50 \

pcq-rate=512000 pcq-total-limit=2000

add kind=pcq name=PCQ_down_1M pcq-classifier=dst-address pcq-limit=50 \

pcq-rate=1000000 pcq-total-limit=2000

add kind=pcq name=PCQ_up_1M pcq-classifier=src-address pcq-limit=50 pcq-rate=\

1000000 pcq-total-limit=2000

add kind=pcq name=PCQ_down_2M pcq-classifier=dst-address pcq-limit=50 \

pcq-rate=2000000 pcq-total-limit=2000

add kind=pcq name=PCQ_up_2M pcq-classifier=src-address pcq-limit=50 pcq-rate=\

2000000 pcq-total-limit=2000

set default-small kind=pfifo name=default-small pfifo-limit=10

 

/queue tree

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=QoS_In parent=global-in priority=8

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=PRIO8_In packet-mark=QoS_8_Up parent=QoS_In priority=8 \

queue=default

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=PRIO1_In packet-mark=QoS_1_Up parent=QoS_In priority=1 \

queue=default

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=PRIO6_In packet-mark=QoS_6_Up parent=QoS_In priority=6 \

queue=default

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=PRIO3_In packet-mark=QoS_3_Up parent=QoS_In priority=3 \

queue=default

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=PRIO2_In packet-mark=QoS_2_Up parent=QoS_In priority=2 \

queue=default

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=Total_Download parent=global-out priority=8

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=Total_Upload parent=global-out priority=8

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=standart_download packet-mark=standart_trafic_down \

parent=Total_Download priority=5 queue=PCQ_up_512k

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=buisnas_download packet-mark=buisnes_trafic_down parent=\

Total_Download priority=8 queue=PCQ_down_1M

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=buisnas_upload packet-mark=buisnes_trafic_up parent=\

Total_Upload priority=8 queue=PCQ_up_1M

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=standart_upload packet-mark=standart_trafic_up parent=\

Total_Upload priority=5 queue=PCQ_up_512k

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=supert_upload packet-mark=super_trafic_up parent=\

Total_Upload priority=1 queue=PCQ_up_2M

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=super_download packet-mark=super_trafic_down parent=\

Total_Download priority=1 queue=PCQ_down_2M

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=minimal_download packet-mark=minimal_trafic_down parent=\

Total_Download priority=3 queue=PCQ_up_320k

add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

max-limit=0 name=minimal_upload packet-mark=minimal_trafic_up parent=\

Total_Upload priority=3 queue=PCQ_up_320k

Share this post


Link to post
Share on other sites

А в чем проблема? в квайери трии трафик затягивает?

В даунлоад/аплоад затягивает?

 

В квайеки три включите отображение колонки "pcq queues".

Там числа сравнимы с числом реально активных клиентов?

Share this post


Link to post
Share on other sites

Проблема была в том что скорость не контролировалась, клиенты могли качать с неограниченной скоростью. клиентов 20 а число 72!!!

Share this post


Link to post
Share on other sites

дальше даже не стал смотреть конфиг:

add action=mark-packet chain=prerouting comment=DNS################# \
disabled=no dst-port=53,123 new-packet-mark=QoS_1_Up passthrough=no \
protocol=udp
add action=mark-packet chain=prerouting comment=ICPM disabled=no \
new-packet-mark=QoS_1_Up passthrough=yes protocol=icmp

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

далее у вас во втором правиле стоит passthrough=yes вы что дальше хотите делать с эти пакетом в прероутенге?

и дальше пакеты для разного трафика вы метите одной меткой QoS_1_Up вы как дальше в Queue Tree собираетесь различать эти метки?

У вас NAT?

IMXO лучше метить пакеты чем соединения.

пока все.

Share this post


Link to post
Share on other sites

Все разобрался правила работают. Была ошибка в queue tree. Метятся одной меткой для выбора приоритета в queue tree все видно. Все работает идеально!!!!

Share this post


Link to post
Share on other sites

Кто подскажет эта Basic traffic shaping based on layer-7 protocols схема приоритета трафика работает на версии 5.12?

У меня торрент затягивало в правила скайпа. БФ2 вытягивало правильно. Больше не тестировал, отключил все нафик.

Share this post


Link to post
Share on other sites

Кто подскажет эта Basic traffic shaping based on layer-7 protocols схема приоритета трафика работает на версии 5.12?

Зачем так извращаться!!! Выше изложен уже проверенный и простой способ реализации правила шейпера. Вот если бы заставить его изменятся во времени суток...

Share this post


Link to post
Share on other sites

Вот если бы заставить его изменятся во времени суток...

В расписание ставишь например:

queue type set pcq-download pcq-rate=18M

queue tree set download max-limit=27M

ну, время и цифры по желанию.

Share this post


Link to post
Share on other sites

Вот если бы заставить его изменятся во времени суток...

В расписание ставишь например:

queue type set pcq-download pcq-rate=18M

queue tree set download max-limit=27M

ну, время и цифры по желанию.

Как сделать расписание? Никогда не сталкивался с ним

Share this post


Link to post
Share on other sites

Вот я красным обвел место где время задается. Правило работает только в то время, которое указано.

 

Если надо днем иметь одну скорость, а вечером больше. Нужно создать 2 одинаковых правила, только в первом скорость низкая и в разделе времени указано например 8:00-0:00 время, а в другом скорость высокая и указано 0:00-7:59.

 

Queue_time.png

Share this post


Link to post
Share on other sites

Вот я красным обвел место где время задается. Правило работает только в то время, которое указано.

 

Если надо днем иметь одну скорость, а вечером больше. Нужно создать 2 одинаковых правила, только в первом скорость низкая и в разделе времени указано например 8:00-0:00 время, а в другом скорость высокая и указано 0:00-7:59.

 

post-60991-019740200 1331745485_thumb.png

Так не получится у меня ограничения идут по PCQ и в queue simple нет ни одного правила

Share this post


Link to post
Share on other sites

Такой же параметр Time есть и в правилах Mangle, только в этом случае вам надо днем добавлять пакеты в дневное правило, а ночью в ночное, в дереве правил тогда создадите по 2 копии каждого правила с разными ограничениями скорости.

 

 

Share this post


Link to post
Share on other sites

Такой же параметр Time есть и в правилах Mangle, только в этом случае вам надо днем добавлять пакеты в дневное правило, а ночью в ночное, в дереве правил тогда создадите по 2 копии каждого правила с разными ограничениями скорости.

А ротерборт не будет глюкать от большого количесва правил? Я слышал что не стоит много создавать правил!

Share this post


Link to post
Share on other sites

Так же вы можете в планировщике написать команды для смены правил в Queueu Tree. В 8 часов поставите запуск дневного ограничения, а в 0 часов запуск ночного.

 

В версии ПО 5.14 напишите в терминале Export compact и он выдаст все правила текстовыми командами, найдите там правила деревьев шейпера, скопируйте их в блокнот, поправьте параметры и закиньте в планировщик.

Share this post


Link to post
Share on other sites

Так же вы можете в планировщике написать команды для смены правил в Queueu Tree. В 8 часов поставите запуск дневного ограничения, а в 0 часов запуск ночного.

 

В версии ПО 5.14 напишите в терминале Export compact и он выдаст все правила текстовыми командами, найдите там правила деревьев шейпера, скопируйте их в блокнот, поправьте параметры и закиньте в планировщик.

В терминале выдает следующую ошибку > Export compact

expected command name (line 1 column 1)

Версия ПО 5.14

Share this post


Link to post
Share on other sites

Так же вы можете в планировщике написать команды для смены правил в Queueu Tree. В 8 часов поставите запуск дневного ограничения, а в 0 часов запуск ночного.

 

В версии ПО 5.14 напишите в терминале Export compact и он выдаст все правила текстовыми командами, найдите там правила деревьев шейпера, скопируйте их в блокнот, поправьте параметры и закиньте в планировщик.

В терминале выдает следующую ошибку > Export compact

expected command name (line 1 column 1)

Версия ПО 5.14

Не получается ничего. Вычитал скрипт, отправляю в планировщик и ничего, прописал в терминале то пишет такое имя уже существует

Share this post


Link to post
Share on other sites

Так же вы можете в планировщике написать команды для смены правил в Queueu Tree. В 8 часов поставите запуск дневного ограничения, а в 0 часов запуск ночного.

 

В версии ПО 5.14 напишите в терминале Export compact и он выдаст все правила текстовыми командами, найдите там правила деревьев шейпера, скопируйте их в блокнот, поправьте параметры и закиньте в планировщик.

В терминале выдает следующую ошибку > Export compact

expected command name (line 1 column 1)

Версия ПО 5.14

Не получается ничего. Вычитал скрипт, отправляю в планировщик и ничего, прописал в терминале то пишет такое имя уже существует

Удалите правила, и перезапустите роутер.

Share this post


Link to post
Share on other sites

Так же вы можете в планировщике написать команды для смены правил в Queueu Tree. В 8 часов поставите запуск дневного ограничения, а в 0 часов запуск ночного.

 

В версии ПО 5.14 напишите в терминале Export compact и он выдаст все правила текстовыми командами, найдите там правила деревьев шейпера, скопируйте их в блокнот, поправьте параметры и закиньте в планировщик.

В терминале выдает следующую ошибку > Export compact

expected command name (line 1 column 1)

Версия ПО 5.14

Не получается ничего. Вычитал скрипт, отправляю в планировщик и ничего, прописал в терминале то пишет такое имя уже существует

Удалите правила, и перезапустите роутер.

Можно не удалять а создать два правила день и ночь но их надо поочередно отключать перед включением другого, но я не могу с терминала их определить и отключить!

Share this post


Link to post
Share on other sites

 

Так не получится у меня ограничения идут по PCQ и в queue simple нет ни одного правил

/system scheduler
add disabled=no interval=1d name="set hi limit" on-event="queue type set pcq-dow
   nload pcq-rate=0\r\
   \nqueue tree set global max-limit=27m\r\
   \n" policy=\
   ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
   start-date=oct/25/2011 start-time=21:00:00
add disabled=no interval=1d name="set lo limit" on-event="queue type set pcq-dow
   nload pcq-rate=18M\r\
   \nqueue tree set global max-limit=25M\r\
   \n" policy=\
   ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
   start-date=nov/25/2011 start-time=17:10:00
add disabled=no interval=1d name="set day limit" on-event="queue type set pcq-do
   wnload pcq-rate=18M\r\
   \nqueue tree set global max-limit=27M\r\
   \n" policy=\
   ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
   start-date=oct/26/2011 start-time=16:00:00
add disabled=no interval=0s name="set time" on-event="system ntp client set prim
   ary-ntp= [:resolve 0.pool.ntp.org]\r\
   \nsystem ntp client set secondary-ntp=[:resolve 1.pool.ntp.org]" policy=\
   ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
   start-time=startup

global - название родителя всего, подчинен global-out. dawnload-upload подчинены ему, там отдельные ограничения.

Вай-фай у нас полудуплексный, по этому ограничивать нужно сумму аплоад+даунлоад.

Edited by fhntv_smart

Share this post


Link to post
Share on other sites

В терминале выдает следующую ошибку > Export compact

expected command name (line 1 column 1)

Версия ПО 5.14

 

А у меня работает =)

 

export_compact.png

Share this post


Link to post
Share on other sites

Вот только заметил что не работают правила на ограничения исходящего трафика при торрентах. Спидтест показываем 1М на 1М а в торренте отдача и до 5 доходит. В чем может быть проблема?

Share this post


Link to post
Share on other sites

Ну, дык сами шукайте.

Проблему в том, что трафик торрента не затягивает в нужное правило...

Значит его затягивает куда-то еще...

запускайте torch, открывайте квайери три... мангалы...

и смотрите, ищите, куда-ж его затягивает то...

Share this post


Link to post
Share on other sites

Так все просто сказать!!! Но не могу ничего найти вот сижу уже второй день...

Share this post


Link to post
Share on other sites

Все разобрался правила работают. Была ошибка в queue tree. Метятся одной меткой для выбора приоритета в queue tree все видно. Все работает идеально!!!!

 

пожалуйста -подробней

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this