Перейти к содержимому
Калькуляторы

TBF + iptables -j MARK

Такой вопрос:

Ведь TBF "безклассовая"... но точная и простая.

Можно ли заставить TBF шейпить только то, что хочется с помощь iptables -j MARK ?

Нашел в сети пример:

tc qdisc add dev eth0 root handle 1: prio

tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 40kbit buffer 1600 limit 3000

tc qdisc add dev eth0 parent 1:2 handle 20: tbf rate 80kbit buffer 1600 limit 3000

tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip src 192.168.100.3/24 flowid 1:1

 

Но не уверен. и не совсем понимаю как оно работает.

Изменено пользователем Ivan Rostovikov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы так говорите, как будто HTB не подходит для шейпинга и не является совокупностью тех же token bucket. Кроме того, пример некорректен. Во-первых, к prio нельзя присоединять краевые дисциплины. TBF можно повесить только на parent queue. Во-вторых, u32 не использует для классификации метки iptables и в данном случае засаживает весь трафик в parent queue, т.е. никакого per user шейпинга не будет.

Изменено пользователем photon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

те как-это нельзя вешать дисциплины ? prio такой же classful как и htb

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну... да этот:

>tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip src 192.168.100.3/24 flowid 1:1

пример с фильтром не совсем корректен. Тут нет марков.

Суть - не в нем дело, а в том можно ли как таковые TC фильтры (по марку например) применять для TBF.

Почему TBF ? - он меньше грузит процессор и точнее. Т.к. нет проблем с квантум при сильном разбросе скоростей.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Действительно классовая, но не думаю, что она даст какой-то выигрыш по сравнению с htb. Правило с tc filter, тем не менее, неправильное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Суть - не в нем дело, а в том можно ли как таковые TC фильтры (по марку например) применять для TBF.

Почему TBF ? - он меньше грузит процессор и точнее. Т.к. нет проблем с квантум при сильном разбросе скоростей.

Проблемы с quantum решаются установкой quantum 1500 для всех классов и скоростей. Для классификации лучше вместо marks использовать flow filter: tc filter add dev eth0 flow map key src addend -192.168.0.0 divisor 256
Изменено пользователем photon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Действительно классовая, но не думаю, что она даст какой-то выигрыш по сравнению с htb. Правило с tc filter, тем не менее, неправильное.

Классовая то она классовая, да вот только разблюдовка по классам в ней осуществляется по TOS полю и никак иначе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Действительно классовая, но не думаю, что она даст какой-то выигрыш по сравнению с htb. Правило с tc filter, тем не менее, неправильное.
Классовая то она классовая, да вот только разблюдовка по классам в ней осуществляется по TOS полю и никак иначе.

WTF?

 

priomap

"If you do not provide tc filters to classify traffic", the PRIO qdisc looks at the TC_PRIO

priority to decide how to enqueue traffic. The kernel assigns each packet a TC_PRIO priority,

based on TOS flags or socket options passed by the application.

The TC_PRIO is decided based on the TOS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Но я все равно не вижу причин устраивать в Linux некий аналог dummynet при наличии классовой дисциплины HTB. Хотя сравнить эти конфигурации под нагрузкой было бы интересно.

Изменено пользователем photon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Действительно классовая, но не думаю, что она даст какой-то выигрыш по сравнению с htb. Правило с tc filter, тем не менее, неправильное.
Классовая то она классовая, да вот только разблюдовка по классам в ней осуществляется по TOS полю и никак иначе.

WTF?

 

priomap

"If you do not provide tc filters to classify traffic", the PRIO qdisc looks at the TC_PRIO

priority to decide how to enqueue traffic. The kernel assigns each packet a TC_PRIO priority,

based on TOS flags or socket options passed by the application.

The TC_PRIO is decided based on the TOS

Да, проглядел, фильтры можно использовать. Вот только в исходном примере нескладно получится - из сетки 192.168.100.3/24 оно пойдет в первый класс, а все остальное будет раскидано в соответствии с TOS, в т.ч. туда же в первый класс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Боюсь меня не совсем верно поняли, и пример был неудачный.

А суть такова: Ведь TBF работает на весь интерфейс сразу. А мне нужно пропускать через нее только маркированый трафик.

Вот я и спрашиваю можно ли повесить TBF на единственый листок prio ? Лиш для того, что бы использовать фильтр по маркеру...

 

tc qdisc add dev ppp0 root handle 1: prio bands 1 priomap 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

tc qdisc add dev ppp0 parent 1:1 handle 10: tbf rate 40kbit buffer 1600 limit 3000

tc filter add dev ppp0 parent 1: protocol ip prio 1 handle 1 fw classid 1:1

 

iptables -t mangle -A FORWARD -s 10.0.0.0/8 -j MARK --set-mark 1

Изменено пользователем Ivan Rostovikov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну, как минимум нужно две очереди, иначе куда прикажете деваться трафику который не с меткой 1?

нужно пробовать, что-то вроде такого:

 

tc qdisc add dev ppp0 root handle 1: prio bands 2 priomap 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

tc qdisc add dev ppp0 parent 1:1 handle 10: tbf rate 40kbit buffer 1600 limit 3000

tc qdisc add dev ppp0 parent 1:2 handle 11: bfifo

tc filter add dev ppp0 parent 1: protocol ip prio 1 handle 1 fw classid 1:1

tc filter add dev ppp0 parent 1: protocol ip u32 match u32 0 0 classid 1:2

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Понял Вас.

Но почему Вы для остального трафика предложили bfifo, а нет pfifo_fast ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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