« -: Dec 09, 2004, 16:11 »
Значи имам eth0, който е свързан към LAN доставчика ми.
eth1, който е свързан към вътрешната ми локална мрежа.
ppp0 се явява VPN през който ползвам internet от LAN доставчика.
Направил съм NAT за ppp0 i eth0, но искам и да разпределя скоростта равномерно(почти:)),
между всички от вътрешната мрежа. HTB i MARK, съм ги компилирал статично в кернела,
защото иначе има проблем с зареждането на MARK. Правя следното:
Маркирам пакетите идващи от VPN-a, като за всяко dest IP давам различен mark.
iptables -t mangle -A FORWARD -i ppp0 -o eth1 -d 192.168.0.1 -j MARK --set-mark 0x1
iptables -t mangle -A FORWARD -i ppp0 -o eth1 -d 192.168.0.2 -j MARK --set-mark 0x2
iptables -t mangle -A FORWARD -i ppp0 -o eth1 -d 192.168.0.3 -j MARK --set-mark 0x3
iptables -t mangle -A FORWARD -i ppp0 -o eth1 -d 192.168.0.5 -j MARK --set-mark 0x5
Правя си родителски клас за скорост от 5kpbs. Толкова ми е скоростта на VPN-а.
tc qdisc add dev eth1 root handle 1: htb default 60
tc class add dev eth1 parent 1: classid 1:1 htb rate 5kbps ceil 6kbps
Добавям, подкласове за всеки един потребител, и съответната скорост.
tc class add dev eth1 parent 1:1 classid 1:10 htb prio 0 rate 1kbps ceil 6kbps
tc class add dev eth1 parent 1:1 classid 1:20 htb prio 1 rate 1kbps ceil 6kbps
tc class add dev eth1 parent 1:1 classid 1:30 htb prio 2 rate 1kbps ceil 5kbps
tc class add dev eth1 parent 1:1 classid 1:50 htb prio 4 rate 1kbps ceil 5kbps
tc class add dev eth1 parent 1:1 classid 1:60 htb prio 10 rate 0kbps ceil 6kbps
Насочвам маркираните пакети да минават през дадените по горе класове.
tc filter add dev eth1 parent 1:0 prio 0 protocol ip handle 1 fw flowid 1:10
tc filter add dev eth1 parent 1:0 prio 1 protocol ip handle 2 fw flowid 1:20
tc filter add dev eth1 parent 1:0 prio 2 protocol ip handle 3 fw flowid 1:30
tc filter add dev eth1 parent 1:0 prio 4 protocol ip handle 5 fw flowid 1:50
Според мен тове нещо по горе трябва да работи. Проблема е че не работи. Все едно
че въобще не съм го слагал. Някой ако има идея, или повече опит от мен в HTB, да
удари едно рамо. Ще съм много благодарен на всяка идея.
Edit: Използвам SlackWare 9.1 с ядро 2.4.20. tc инструмента съм го изтеглил от нета с подръжка на HTB. Като ваведа горните редове и ништо не става. Няма разпределение на трафика. Всеки от мрежата дърпа с колкото може.