Gambar 2.7 Diagram HTB paket A mengirimDevera, 2002
2.4. TC tools
Pada paket iproute2, tc adalah satu-satunya yang dapat digunakan untuk traffic control. Karena tc secara langsung berinteraksi dengan kernel untuk pembuatan,
penghapusan dan modifikasi terhadap struktur traffic control. TC tool menampilkan semua konfigurasi terhadap struktur kernel untuk mendukung traffic control. Utilitas ini
menggunakan argument awal salah satu dari tiga komponen linux traffic control yaitu : qdisc, class dan filter Hubert, 2004.
Syntax dasar penggunaan TC :
Penggunaan : tc [ OPTIONS ] OBJECT { COMMAND | help } where OBJECT := { qdisc | class | filter }
OPTIONS := { −s[tatistics] | −d[etails] | −r[aw] }
2.4.1. tc qdisc
Gambar 2.8 tc qdisc Hubert, 2004
Keterangan : 1.
Menambahkan queueing discipline. Dapat dirubah menjadi del untuk menghapus qdisc.
2. Device yang akan ditambahkan qdisc.
3. Berarti egress atau output pada interface. Kata root wajib digunakan,
meskipun pada qdisc lain yang memiliki fungsi terbatas dapat menambahkan qdisc pada ingress di device yang sama.
4. Handle angka spesifik dari user dengan bentuk major:minor. Angka minor
untuk yang memiliki qdisc akan selalu nol0. Biasa disingkat dengan syntax “1:”, angka minor akan otomatis nol0.
5. Queueing yang dipakai, pada contoh ini adalah HTB. Setelah ini adalah
parameter khusus dari qdisc yang dipakai. Contoh ini tidak menyertakan itu.
2.4.2. tc class
Gambar 2.9 tc class Hubert, 2004
Keterangan : 1.
Menambahkan class. Bisa diubah menjadi del untuk menghapus class. 2.
Device yang ingin ditambahkan class baru. 3.
Spesifikasi dari handle indukbiasanya qdisc yang ingin kita tambahkan class baru.
4. Ini adalah handle unik dengan pola major:minor untuk identifikasi class.
Angka minor harus tidak boleh nol0. 5.
qdisc yang akan digunakan pada class ini. 6.
nilai rate yang nantinya dapat di pinjam oleh classqdisc turunan. 7.
nilai ceiltepi yang dipakai sebagai batasan rate yang dapat dipinjam.
2.4.3. tc filter
Gambar 2.10 tc filter Hubert, 2004
Keterangan : 1.
Menambahkan filter, dapat juga diganti dengan del untuk membuang filter. 2.
device yang ingin ditambahkan filter. 3.
parent handle yang ingin kita tambahkan filter. 4.
filter berdasarkan protocol tertentu. Contoh ini dalah ip. 5.
parameter prio untuk filter didahulukan dibanding yang lain. 6.
classifier yang digunakan TC untuk filter. 7.
parameter untuk classifier. Pada kasus ini paket dengan port 22 akan dipilih. 8.
sama dengan baris 7, mencocokan dengan protocol tertentu. 9.
paket data yang terpilih nantinya akan dikirim ke class pada parameter ini. 10.
policer dan opsional untuk tc. 11.
policer akan melakukan satu aksi ketika melampaui kecepatan ini dan parameter aksi berada pada baris setelah ini.
12. sama seperti konsep burst pada HTB.
13. minimum policed unit. Untul menghitung semua paket yang masuk gunakan mpu
0. 14.
Aksi yang dilakukan oleh policer.
2.4.4. TC untuk penggunaan RED
Asumsikan kondisi jaringan dengan bandwidth 128kbps dan latency 500msec. Berikut perhitungannya :
Bandwidth = 128kbps = 16000 Byte sec Latency = 500msec = 0.5 sec
Max = Bandwidth Latency = 16000 0.5
= 8000 Min = Max 2
= 4000 Limit = 8 max
= 8 8000 = 64000
Burst = 2 min + max 3 avpkt = 2 4000 + 8000 3 1000
= 5.33
tc qdisc add dev eth0 root red limit 64000 min 4000 max 8000 burst 5.33 avpkt 1000 probability 0.02 bandwidth 128
2.4.5. TC untuk penggunaan HTB
Misal kita ingin membatasi penggunaan bandwidth klien. Asumsikan kita memiliki bandwidth 2Mbit dan klien A dengan 128Kbit dan klien B dengan 512Kbit.
Dan untuk klasifikasi port SSH = 64Kbit, TELNET = 4Kbit, POP3 = 32Kbit, SMTP = 32Kbit.
Gambar 2.11 contoh HTB tree Hubert, 2004
tc qdisc add dev eth0 root handle 1:0 htb tc class add dev eth0 parent 1:0 classid 1:1 htb rate 2Mbit ceil 2Mbit
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 128Kbit ceil 128Kbit tc class add dev eth0 parent 1:1 classid 1:3 htb rate 512Kbit ceil 512Kbit
tc class add dev eth0 parent 1:2 classid 1:21 htb rate 64Kbit ceil 64Kbit tc class add dev eth0 parent 1:2 classid 1:22 htb rate 4Kbit ceil 128Kbit
tc class add dev eth0 parent 1:3 classid 1:31 htb rate 32Kbit ceil 32Kbit tc class add dev eth0 parent 1:3 classid 1:32 htb rate 32Kbit ceil 32Kbit
tc qdisc add dev eth0 parent 1:21 handle 210: pfifo limit 10 tc qdisc add dev eth0 parent 1:22 handle 220: pfifo limit 10
tc qdisc add dev eth0 parent 1:31 handle 310: pfifo limit 10 tc qdisc add dev eth0 parent 1:32 handle 320: pfifo limit 10
tc filter add dev eth0 parent 1:0 protocol ip u32 match ip dst 192.168.124 match ip sport 22 0xff flowid 1:21
tc filter add dev eth0 parent 1:0 protocol ip u32 match ip dst 192.168.124 match ip sport 23 0xff flowid 1:22
tc filter add dev eth0 parent 1:0 protocol ip u32 match ip dst 192.168.224 match ip sport 25 0xff flowid 1:31
tc filter add dev eth0 parent 1:0 protocol ip u32 match ip dst 192.168.224 match ip sport 110 0xff flowid 1:32
2.5. Python