Есть linux шлюз, adsl модем 512/128, висящий на eth0 интерфейсе linux шлюза и eth1 интерфейс linux шлюза смотрит в локалку. Раздача инета происходит с помощью pptp сервера poptop.
Настройки iptables:
/sbin/iptables -A FORWARD -i eth0 -o ppp+ -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Раньше было если один клиент активно качает, то съедет весь канал и у остальных клиентов инет еле работает. Сейчас поставил шейпер: при запуске /etc/ppp/ip-{up,down}.local для всех ppp* выполняется:
tc qdisc delete dev $IFACE root
tc qdisc add dev $IFACE root handle 1: htb default 1
tc class add dev $IFACE parent 1: classid 1:1 htb rate $RATE
tc qdisc add dev $IFACE parent 1:1 sfq
Где RATE = (512/число_ppp_интерфейсов + гарантированая_полоса_пропускания).
Но осталась проблемма связанная с следующим: есть клиенты которые активно качают, а есть клиенты которые подключены, но особо ничего не качают - соответсвенно канал используется не полностью. В принципе можно подобрать параметр гарантированая_полоса_пропускания - но всё равно получается не очень хорошо.
Как я понял мне лучше исползовать IMQ, перенаправлять всё с ppp* интерфейсов на imq0 и соответсвенно поднимать шейпер на imq0.
И соответственно как я понимаю следует использовать следующие настройки:
iptables:
/sbin/iptables -t mangle -A PREROUTING -i ppp+ -j IMQ --todev 0
/sbin/iptables -A FORWARD -i eth0 -o ppp+ -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Шейпер:
tc qdisc add dev imq0 handle 1: root htb
tc class add dev imq0 parent 1: classid 1:1 htb rate 512kbit
tc class add dev imq0 parent 1:1 classid 1:$[10+0] htb rate $[512/число_ppp_интерфейсов]kbit ceil 512kbit
..........................
tc class add dev imq0 parent 1:1 classid 1:$[10+число_ppp_интерфейсов] htb rate $[512/число_ppp_интерфейсов]kbit ceil 512kbit
tc qdisc add dev imq0 parent 1:10 sfq
..........................
tc qdisc add dev imq0 parent 1:$[10+число_ppp_интерфейсов] sfq
tc filter add dev imq0 parent 1:0 protocol ip prio 0 u32 match ip src a.b.c.d/32 flowid 1:$[10+0]
..........................
tc filter add dev imq0 parent 1:0 protocol ip prio 0 u32 match ip src e.f.g.h/32 flowid 1:$[10+число_ppp_интерфейсов]
Где a.b.c.d/32, e.f.g.h/32 и т. д. - ip клиентов на разных ppp интерфейсах.
Тогда вопросы следующие:
1. Имеет ли смысл использовать imq в моём случае? Или есть решение попроще?
2. Правильны ли вышеприведённы настройки для шейпера используя imq?
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от fagot
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум опять IMQ + TC (2007)
- Форум htb vs esfq + вопросы по htb (2006)
- Форум проблема шейпера (2008)
- Форум Шейпинг трафика Vlan (2014)
- Форум Linux шейпер (2011)
- Форум Проблема с ограничением пропускной способности (htb.init и tc) (2006)
- Форум Реализация HTB (2006)
- Форум смысл команд (2006)
- Форум Работа с шейпером в linux (2009)
- Форум tc htb sfq деление канала (2006)