Ivan Rostovikov Posted October 12, 2009 Posted October 12, 2009 (edited) Такой вопрос: Ведь 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 Но не уверен. и не совсем понимаю как оно работает. Edited October 12, 2009 by Ivan Rostovikov Вставить ник Quote
photon Posted October 12, 2009 Posted October 12, 2009 (edited) Вы так говорите, как будто HTB не подходит для шейпинга и не является совокупностью тех же token bucket. Кроме того, пример некорректен. Во-первых, к prio нельзя присоединять краевые дисциплины. TBF можно повесить только на parent queue. Во-вторых, u32 не использует для классификации метки iptables и в данном случае засаживает весь трафик в parent queue, т.е. никакого per user шейпинга не будет. Edited October 12, 2009 by photon Вставить ник Quote
DemYaN Posted October 12, 2009 Posted October 12, 2009 те как-это нельзя вешать дисциплины ? prio такой же classful как и htb Вставить ник Quote
Ivan Rostovikov Posted October 12, 2009 Author Posted October 12, 2009 Ну... да этот: >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 ? - он меньше грузит процессор и точнее. Т.к. нет проблем с квантум при сильном разбросе скоростей. Вставить ник Quote
photon Posted October 12, 2009 Posted October 12, 2009 Действительно классовая, но не думаю, что она даст какой-то выигрыш по сравнению с htb. Правило с tc filter, тем не менее, неправильное. Вставить ник Quote
photon Posted October 12, 2009 Posted October 12, 2009 (edited) Суть - не в нем дело, а в том можно ли как таковые 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 Edited October 12, 2009 by photon Вставить ник Quote
КузярБ Posted October 12, 2009 Posted October 12, 2009 Действительно классовая, но не думаю, что она даст какой-то выигрыш по сравнению с htb. Правило с tc filter, тем не менее, неправильное. Классовая то она классовая, да вот только разблюдовка по классам в ней осуществляется по TOS полю и никак иначе. Вставить ник Quote
DemYaN Posted October 12, 2009 Posted October 12, 2009 Действительно классовая, но не думаю, что она даст какой-то выигрыш по сравнению с 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 Вставить ник Quote
photon Posted October 13, 2009 Posted October 13, 2009 (edited) Но я все равно не вижу причин устраивать в Linux некий аналог dummynet при наличии классовой дисциплины HTB. Хотя сравнить эти конфигурации под нагрузкой было бы интересно. Edited October 13, 2009 by photon Вставить ник Quote
КузярБ Posted October 13, 2009 Posted October 13, 2009 Действительно классовая, но не думаю, что она даст какой-то выигрыш по сравнению с 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, в т.ч. туда же в первый класс. Вставить ник Quote
Ivan Rostovikov Posted October 13, 2009 Author Posted October 13, 2009 (edited) Боюсь меня не совсем верно поняли, и пример был неудачный. А суть такова: Ведь 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 1tc 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 Edited October 13, 2009 by Ivan Rostovikov Вставить ник Quote
DemYaN Posted October 13, 2009 Posted October 13, 2009 ну, как минимум нужно две очереди, иначе куда прикажете деваться трафику который не с меткой 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 Вставить ник Quote
Ivan Rostovikov Posted October 14, 2009 Author Posted October 14, 2009 Понял Вас. Но почему Вы для остального трафика предложили bfifo, а нет pfifo_fast ? Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.