Portál AbcLinuxu, 5. května 2025 14:58
mam NAT router, eth0 jde do netu a eth1 do vnitrni site. Upload se mi dari upravovat jak potrebuju ale download ne. Myslenka je ze kdyz je volna lajna tak download muze jet celejch 6Mbit/s ale jakmile prijde priorizovanej traffic(v mym pripade http nebo ssh) tak dostane 5Mbit/s a ostatni traffic pujde na 1Mbit/s ovsem ted mi to funguje tak ze se to rozdeli na pul takze jak http tak treba ftp dostanou oba po 3Mbit/s. Tady je moje nastaveni. Ma nekdo napad?
# traffic in (download)
tc qdisc del dev eth1 root
tc qdisc add dev eth1 root handle 1:0 htb
# prirazeni sirky pasma k root tride
tc class add dev eth1 parent 1:0 classid 1:1 htb rate 6mbit ceil 6mbit
# rozdeleni pasma podle priority paketu, prio 1 ma garanci 5mbit a strop 6mbit
tc class add dev eth1 parent 1:1 classid 1:10 htb rate 5mbit ceil 6mbit prio 1
tc class add dev eth1 parent 1:1 classid 1:11 htb rate 1mbit ceil 6mbit prio 2
# na tridy nahodime SFQ
tc qdisc add dev eth1 parent 1:10 handle 10:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:11 handle 11:0 sfq perturb 10
# zaradime omarkovane pakety do spravne tridy
tc filter add dev eth1 parent 1:0 protocol ip handle 1 fw flowid 1:10
tc filter add dev eth1 parent 1:0 protocol ip handle 2 fw flowid 1:11
# traffic out (upload)
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1:0 htb
# prirazeni sirky pasma k root tride
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 384kbit ceil 384kbit
# rozdeleni pasma podle priority paketu, prio 1 ma garanci 256kbit a strop 384kbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 256kbit ceil 384kbit prio 1
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 128kbit ceil 384kbit prio 2
# na tridy nahodime SFQ
tc qdisc add dev eth0 parent 1:10 handle 10:0 sfq perturb 5
tc qdisc add dev eth0 parent 1:11 handle 11:0 sfq perturb 5
# zaradime omarkovane pakety do spravne tridy
tc filter add dev eth0 parent 1:0 protocol ip handle 1 fw flowid 1:10
tc filter add dev eth0 parent 1:0 protocol ip handle 2 fw flowid 1:11
# znackujeme prichozi pakety (download), prioritu maji sluzby na portech 80(www), 22(ssh) a ICMP
iptables -t mangle -A FORWARD -i eth1 -p tcp -j MARK --set-mark 2
iptables -t mangle -A FORWARD -i eth1 -p tcp --dport 80 -j MARK --set-mark 1
iptables -t mangle -A FORWARD -i eth1 -p tcp --dport 22 -j MARK --set-mark 1
iptables -t mangle -A FORWARD -i eth1 -p icmp -j MARK --set-mark 1
# znackujeme odchozi pakety (upload), stejna politika jako download
iptables -t mangle -A FORWARD -i eth0 -p tcp -j MARK --set-mark 2
iptables -t mangle -A FORWARD -i eth0 -p tcp --dport 22 -j MARK --set-mark 1
iptables -t mangle -A FORWARD -i eth0 -p tcp --dport 80 -j MARK --set-mark 1
iptables -t mangle -A FORWARD -i eth0 -p icmp -j MARK --set-mark 1
Myslím, že je to celé dobře, kromě jediného - značkování paketů.
Napsal bych to takto:
iptables -t mangle -A FORWARD -o eth1 -p tcp --sport 80 -j MARK --set-mark 1
a pak analogicky
iptables -t mangle -A FORWARD -o eth0 -p tcp --dport 80 -j MARK --set-mark 1
Shapuje se vždy směrem ven ze síťovky (proto -o ethX) a pak pozor na dport a sport
Paradoxně kvůli špatně použitému dport pro download vám to správně značkuje upload
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.