Вообщем такая ситуация.
имеется локальная сеть с сервером на ubuntu 10.04, который раздает интернет пользователям в сети и двумя интерфейсами eth0 - локалка, eth1 - внешний (приблизительно 8Мбит)
интернет приходит на сервер по dhcp, затем раздает пользователся, айпишники у которых прописаны вручную
вот код интерфейса
/eth/network/interfacesauto lo
iface lo inet loopback
auto eth1
iface eth1 inet dhcp
auto eth0
iface eth0 inet static
address 10.0.19.9
netmask 255.255.255.0
broadcast 10.0.19.255
pre-up iptables-restore < /etc/iptables.up.rules
up route add -net 10.0.19.0 netmask 255.255.255.0 dev eth0
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth1
форвардинг включен, добавлено правило для ната
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
вообщем раздача интернета работает, все чудно
затем настроен скрипт htb.init
созданы файлы в
/etc/sysconfig/htbeth0, eth1DEFAULT=30
R2Q=20
eth0-2.root, eth1-2.rootRATE=100Mbit
CEIL=100Mbit
eth0-2:30.defaultRATE=300Kbit
CEIL=300Kbit
LEAF=sfq
RULE=10.0.19.0/24
eth1-2:30.defaultRATE=300Kbit
CEIL=300Kbit
LEAF=sfq
MARK=104
добавлено правило для промаркированных пакетов
iptables —t mangle —A PREROUTING —s 10.0.19.0 —j MARK —set-mark 104
iptables —t mangle —A PREROUTING —s 10.0.19.0 —j RETURN
Т.е. насколько я понял, класс 30 файлов eth1-2:30.default и eth0-2:30.default описывает скорость трафика, который не попадает под другие правила
и созданы еще два файла
eth0-2:05.user1BURST=50Kb
RATE=2Mbit
CEIL=3Mbit
PRIO=1
RULE=10.0.19.77/24
eth1-2:05.user1BURST=50Kb
RATE=2Mbit
CEIL=3Mbit
PRIO=1
MARK=102
правила маркировки
iptables —t mangle —A PREROUTING —s 10.0.19.77 —j MARK —set-mark 102
iptables —t mangle —A PREROUTING —s 10.0.19.77 —j RETURN
вообщем суть этого всего состоит в том, чтобы этот
user1 (в дальнейшем таким же образом будут добавлены еще около 5 юзеров) имел заданную в настройках скорость, а все остальные юзеры данной сети, не указанные в правилах имели на всех скорость 300Kbit
на данный же момент при вот таких настройках
user1 имеет входящую и исходящую скорость указанную в файле. а вот все остальные, не указанные в правиле юзеры, которые по идее должны попадать под класс 30 и иметь 300Кбит на всех, в реальности имеют неограниченную скорость на скачивание, а вот исходящую скорость шейпер им режет.
собственно вопрос заключается в том, что я неправильно сделал, что шейпер режет только исходящую от юзеров скорость, а входящую не режет
на всякий случай вот iptables
# Generated by iptables-save v1.4.4 on Sat Dec 11 00:10:19 2010
*nat
:PREROUTING ACCEPT [5904:686359]
:POSTROUTING ACCEPT [4:389]
:OUTPUT ACCEPT [724:45757]
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Sat Dec 11 00:10:19 2010
# Generated by iptables-save v1.4.4 on Sat Dec 11 00:10:19 2010
*mangle
:PREROUTING ACCEPT [130782:89240345]
:INPUT ACCEPT [12195:4963605]
:FORWARD ACCEPT [116407:84129409]
:OUTPUT ACCEPT [3630:444112]
:POSTROUTING ACCEPT [120063:84579100]
-A PREROUTING -s 10.0.19.77/32 -j MARK --set-xmark 0x66/0xffffffff
-A PREROUTING -s 10.0.19.77/32 -j RETURN
-A PREROUTING -s 10.0.19.6/32 -j MARK --set-xmark 0x67/0xffffffff
-A PREROUTING -s 10.0.19.6/32 -j RETURN
-A PREROUTING -s 10.0.19.0/32 -j MARK --set-xmark 0x68/0xffffffff
-A PREROUTING -s 10.0.19.0/32 -j RETURN
COMMIT
# Completed on Sat Dec 11 00:10:19 2010
надеюсь на вашу помощь