Topologi jaringan dan desain htb
Kriteria dalam pembuatan traffic control ini
- Traffic control hanya untuk trafik eggress dari device eth0 (lan)
- Trafik dari local area network (lan) ke router dan sebaliknya tidak melalui traffic control.
- Trafik dari lan ke internet atau upstream tidak melalui traffic control.
- Trafik dari internet ke lan atau downstream akan melalui traffic control, kecuali trafik dari port 80 (www) yang mempunyai tanda TOS 0×30 atau DSCP 12 (cache hit).
Catatan: trafik ke internet port 80 akan melalui server proxy remote secara transparent.
Source Code
15 | IPTABLES= "/usr/sbin/iptables" |
38 | $IPTABLES -A PREROUTING -t mangle -i $WAN -p tcp -m dscp --dscp 12 -j MARK -- set -mark 0x212 |
39 | $IPTABLES -A PREROUTING -t mangle -i $WAN -p tcp -m dscp --dscp 12 -j RETURN |
42 | $IPTABLES -A PREROUTING -t mangle -i $WAN -j MARK -- set -mark 6 |
49 | $TC qdisc del dev $LAN root |
50 | $TC qdisc add dev $LAN root handle 1:0 htb |
53 | $TC class add dev $LAN parent 1:0 classid 1:2 htb rate ${RATE}kbit ceil ${CEIL}kbit quantum 1500 prio 8 |
56 | $TC qdisc add dev $LAN parent 1:2 handle 2: sfq perturb 10 |
59 | $TC filter add dev eth0 protocol ip parent 1:0 prio 1 handle 6 fw flowid 1:2 |
Penjelasan:
- Baris 38: menandai trafik cache hit (dscp 12) yang masuk ke device wan dengan packet mark 212.
- Baris 39: -j RETURN agar trafik cache hit tidak akan masuk ke rule lain dibawahnya.
- Baris 42: menandai semua trafik yang masuk ke device wan dengan packet mark 6.
- Baris 59: filter semua trafik dengan packet mark 6 ke class handler 1:2
Untuk analisa paket mangle dan traffic control gunakan perintah:
- iptables -L PREROUTING -t mangle -nv
Chain PREROUTING (policy ACCEPT 2580K packets, 606M bytes)
pkts bytes target prot opt in out source destination
20 22316 MARK tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 DSCP match 0x0c MARK set 0x212
20 22316 RETURN tcp -- eth1 * 0.0.0.0/0 0.0.0.0/0 DSCP match 0x0c
20391 1247K MARK all -- eth1 * 0.0.0.0/0 0.0.0.0/0 MARK set 0x6
- tc -s -d qdisc show dev eth0
qdisc htb 1: r2q 10 default 0 direct_packets_stat 0 ver 3.17
Sent 7500 bytes 52 pkts (dropped 0, overlimits 0)
qdisc sfq 2: parent 1:2 limit 128p quantum 1514b flows 128/1024 perturb 10sec
Sent 7500 bytes 52 pkts (dropped 0, overlimits 0)
- tc -s -d class show dev eth0
class htb 1:2 root leaf 2: prio 7 quantum 1500 rate 384000bit ceil 384000bit burst 2079b/8 mpu 0b overhead 0b cburst 2079b/8 mpu 0b overhead 0b level 0
Sent 168952 bytes 1120 pkts (dropped 0, overlimits 0)
rate 4104bit 3pps
lended: 1120 borrowed: 0 giants: 0
tokens: 16933 ctokens: 16933
- tc -s -d filter show dev eth0
filter parent 1: protocol ip pref 1 fw
filter parent 1: protocol ip pref 1 fw handle 0x6 classid 1:2
Referensi
- Linux Advanced Routing & Traffic Control HOWTO
- Manual iptables
- Referensi berbahasa indonesia mengenai traffic control di Penjelasan Traffic Shaping
source : http://awarmanf.wordpress.com/2009/12/29/linuxtc1/
Tidak ada komentar:
Posting Komentar