Portál AbcLinuxu, 5. května 2025 08:07

Dotaz: Nefunkcni HTB shaper.

7.3.2008 15:34 TheVenom
Nefunkcni HTB shaper.
Přečteno: 338×
Odpovědět | Admin
Ahoj, snazim se rozchodit traffic shaping pomoci HTB, ale stale se mi nedari.

Mam linku o rychlosti 2Mbit a chci na ni uprednostnovat vybrany provoz. Rozdelil sem proto pasmo na dve tridy. Prvni tridu pro prioritni provoz a druhou pro ostatni provoz. V prvni tride jsem jeste vytvoril ctyri pasma pro prioritizaci v ramci teto tridy.

Moje konfigurace pro tc:
#!/bin/bash
ORATE=2000
OFACE=ppp0
IFACE=eth1
IRATE=3000
BANDS=4

tc qdisc del dev $OFACE root
tc qdisc add dev $OFACE root handle 1:0 htb
    tc class add dev $OFACE parent 1:0 classid 1:1 htb rate ${ORATE}kbit
        tc class add dev $OFACE parent 1:1 classid 1:11 htb rate 1024kbit ceil 2000kbit
            tc qdisc add dev $OFACE parent 1:11 handle 11:0 prio bands $BANDS
                tc qdisc add dev $OFACE parent 11:1 handle 111:0 sfq perturb 5
                tc qdisc add dev $OFACE parent 11:2 handle 112:0 sfq perturb 5
                tc qdisc add dev $OFACE parent 11:3 handle 113:0 sfq perturb 5
                tc qdisc add dev $OFACE parent 11:4 handle 114:0 sfq perturb 5
                tc filter add dev $OFACE parent 1:11 protocol ip handle 11 fw flowid 111:0
                tc filter add dev $OFACE parent 1:11 protocol ip handle 12 fw flowid 112:0
                tc filter add dev $OFACE parent 1:11 protocol ip handle 13 fw flowid 113:0
                tc filter add dev $OFACE parent 1:11 protocol ip handle 14 fw flowid 114:0

        tc class add dev $OFACE parent 1:1 classid 1:12 htb rate 950kbit ceil 2000kbit
            tc qdisc add dev $OFACE parent 1:12 handle 115:0 sfq perturb 5

tc filter add dev $OFACE parent 1:0 protocol ip handle 11 fw flowid 1:11
tc filter add dev $OFACE parent 1:0 protocol ip handle 12 fw flowid 1:11
tc filter add dev $OFACE parent 1:0 protocol ip handle 13 fw flowid 1:11
tc filter add dev $OFACE parent 1:0 protocol ip handle 14 fw flowid 1:11
tc filter add dev $OFACE parent 1:0 protocol ip handle 15 fw flowid 1:12

tc qdisc del dev $IFACE root
tc qdisc add dev $IFACE root handle 1:0 htb
    tc class add dev $IFACE parent 1:0 classid 1:1 htb rate ${IRATE}kbit
        tc class add dev $IFACE parent 1:1 classid 1:11 htb rate 2024kbit ceil 3000kbit
            tc qdisc add dev $IFACE parent 1:11 handle 11:0 prio bands $BANDS
                tc qdisc add dev $IFACE parent 11:1 handle 111:0 sfq perturb 5
                tc qdisc add dev $IFACE parent 11:2 handle 112:0 sfq perturb 5
                tc qdisc add dev $IFACE parent 11:3 handle 113:0 sfq perturb 5
                tc qdisc add dev $IFACE parent 11:4 handle 114:0 sfq perturb 5
                tc filter add dev $IFACE parent 1:11 protocol ip handle 11 fw flowid 111:0
                tc filter add dev $IFACE parent 1:11 protocol ip handle 12 fw flowid 112:0
                tc filter add dev $IFACE parent 1:11 protocol ip handle 13 fw flowid 113:0
                tc filter add dev $IFACE parent 1:11 protocol ip handle 14 fw flowid 114:0

        tc class add dev $IFACE parent 1:1 classid 1:12 htb rate 950kbit ceil 3000kbit
            tc qdisc add dev $IFACE parent 1:12 handle 115:0 sfq perturb 5

tc filter add dev $IFACE parent 1:0 protocol ip handle 11 fw flowid 1:11
tc filter add dev $IFACE parent 1:0 protocol ip handle 12 fw flowid 1:11
tc filter add dev $IFACE parent 1:0 protocol ip handle 13 fw flowid 1:11
tc filter add dev $IFACE parent 1:0 protocol ip handle 14 fw flowid 1:11
tc filter add dev $IFACE parent 1:0 protocol ip handle 15 fw flowid 1:12
Konfigurace iptables:
iptables -t mangle -A FORWARD -d 192.168.2.0/24 -o eth1 -j MARK --set-mark 15
iptables -t mangle -A FORWARD -d 192.168.2.0/24 -o eth1 -p icmp -j MARK --set-mark 11
iptables -t mangle -A FORWARD -d 192.168.2.0/24 -o eth1 -p tcp -m tcp --sport 22 -j MARK --set-mark 12
iptables -t mangle -A FORWARD -d 192.168.2.0/24 -o eth1 -p tcp -m tcp --dport 22 -j MARK --set-mark 12
iptables -t mangle -A FORWARD -d 192.168.2.0/24 -o eth1 -p tcp -m tcp --sport 3389 -j MARK --set-mark 13
iptables -t mangle -A FORWARD -d 192.168.2.0/24 -o eth1 -p tcp -m tcp --dport 3389 -j MARK --set-mark 13
iptables -t mangle -A FORWARD -d 192.168.2.0/24 -o eth1 -p tcp -m tcp --sport 1352 -j MARK --set-mark 14
iptables -t mangle -A FORWARD -d 192.168.2.0/24 -o eth1 -p tcp -m tcp --dport 1352 -j MARK --set-mark 14
iptables -t mangle -A FORWARD -s 192.168.2.0/24 -o ppp0 -j MARK --set-mark 15
iptables -t mangle -A FORWARD -s 192.168.2.0/24 -o ppp0 -p icmp -j MARK --set-mark 11
iptables -t mangle -A FORWARD -s 192.168.2.0/24 -o ppp0 -p tcp -m tcp --sport 22 -j MARK --set-mark 12
iptables -t mangle -A FORWARD -s 192.168.2.0/24 -o ppp0 -p tcp -m tcp --dport 22 -j MARK --set-mark 12
iptables -t mangle -A FORWARD -s 192.168.2.0/24 -o ppp0 -p tcp -m tcp --sport 3389 -j MARK --set-mark 13
iptables -t mangle -A FORWARD -s 192.168.2.0/24 -o ppp0 -p tcp -m tcp --dport 3389 -j MARK --set-mark 13
iptables -t mangle -A FORWARD -s 192.168.2.0/24 -o ppp0 -p tcp -m tcp --sport 1352 -j MARK --set-mark 14
iptables -t mangle -A FORWARD -s 192.168.2.0/24 -o ppp0 -p tcp -m tcp --dport 1352 -j MARK --set-mark 14
Problem je, ze pakety nepadaji do prislusnych qdiscu:
tc -s qdisc show|grep -A 2 ppp0
qdisc htb 1: dev ppp0 r2q 10 default 0 direct_packets_stat 1353
 Sent 2136774 bytes 13941 pkt (dropped 0, overlimits 139 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
qdisc prio 11: dev ppp0 parent 1:11 bands 4 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
 Sent 948854 bytes 5466 pkt (dropped 0, overlimits 0 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 111: dev ppp0 parent 11:1 limit 128p quantum 1492b perturb 5sec
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 112: dev ppp0 parent 11:2 limit 128p quantum 1492b perturb 5sec
 Sent 948854 bytes 5466 pkt (dropped 0, overlimits 0 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 113: dev ppp0 parent 11:3 limit 128p quantum 1492b perturb 5sec
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 114: dev ppp0 parent 11:4 limit 128p quantum 1492b perturb 5sec
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 115: dev ppp0 parent 1:12 limit 128p quantum 1492b perturb 5sec
 Sent 1016461 bytes 7122 pkt (dropped 0, overlimits 0 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
Z vypisu vyse je videt, ze pakety padaji pouze do qdiscu 1:, 11:, 112: a 115: a napr. qdisc 111:, kam by mel padat icmp provoz, zustava prazdny.

K prioritizaci timpadem nedochazi.

V cem by mohl byt problem?

Dekuji.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Na otázku zatím nikdo bohužel neodpověděl.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.