RSS

Traffic Control “tc” with iptables marking

23 Mar

sumber: http://mahardianto.wordpress.com

Rabu 14 Januari 2009. Sambil jaga ujian aku iseng-iseng menulis, habisnya dah lama banget ga nulis. Mungkin sudah banyak artikel yang membahas tc dan iptables di linux, jadi disini saya hanya akan melakukan sedikit review, Sebelumnya apa itu tc ? tc adalah aplikasi yang berfungsi sebagai traffic control atau bandwidth management pada sebuah PC router untuk mengatur bandwidth yang keluar masuk lewat PC router tersebut, tc sendiri dikonfigurasi dengan berbagai macam tipe seperti sfq, tbf, htb dan lain-lain sesuai dengan kebutuhan. Sebagai catatan, tc dan iptables telah terinstall secara default setelah anda menginstalasi linux box anda. Tc dapat dikombinasikan dengan berbagai aplikasi seperti iptables. Iptables itu apa? iptables adalah sebuah aplikasi yang umumnya digunakan sebagai firewall, iptables memiliki 3 tabel (filter, nat, mangle) yang tiap tabelnya berbeda fungsi. Disini iptables di table mangle digunakan sebagai penanda paket yang lewat  yang kemudian akan diproses oleh tc sesuai dengan tandanya. Nha ini contoh penggunaanya …

Dimisalkan PC router menggunakan eth0 untuk menuju ke internet dan eth1 untuk ke jaringan lokal

internet — [eth0]PC Router[eth1] —- Local Network

Pertama kita bikin aturannya dengan tc:

#Delete konfigurasi sebelumnya
/sbin/tc qdisc del dev eth1 root

#Bikin aturan antrian dengan HTB pada pusat cabang
/sbin/tc qdisc add dev eth1 root handle 1:0 htb

#Bikin parent class untuk antrian dengan total bandwidth 512 kilobit
/sbin/tc class add dev eth1 parent 1:0 classid 1:1 htb rate 512Kbit ceil 512Kbit

#Bikin anak kelas dengan pemakaian dijamin mendapat bandwidth 128Kbit dan dapat meminjam maksimum bandwidth yang tak terpakai sampai 512Kbit
/sbin/tc class add dev eth1 parent 1:1 classid 1:2 htb rate 128Kbit ceil 512Kbit

#Bikin anak kelas dengan pemakaian dijamin mendapat bandwidth 256Kbit dan dapat meminjam maksimum bandwidth yang tak terpakai sampai 512Kbit
/sbin/tc class add dev eth1 parent 1:1 classid 1:3 htb rate 256Kbit ceil 512Kbit

#Bikin filternya untuk menggunakan anak kelas 1:2 untuk paket yang ditandai dengan tanda 2 di iptables
/sbin/tc filter add dev eth1 parent 1:0 protocol ip handle 2 fw flowid 1:2

#Bikin filternya untuk menggunakan anak kelas 1:3 untuk paket yang ditandai dengan tanda 3 di iptables
/sbin/tc filter add dev eth1 parent 1:0 protocol ip handle 3 fw flowid 1:3

Sekarang kita pilih paket mana yang akan ditandai di iptables, misal:

#Kita tandai untuk network 192.168.0.0/24 yang sekedar surfing web  dengan tanda 2 agar mengikuti aturan tc di anak antrian 1:2
/sbin/iptables -t mangle -A POSTROUTING -o eth1 -p tcp -d 192.168.0.0/24 – -sport 80  -j MARK  – -set-mark 2

#Kita tandai untuk network 192.168.0.0/24 untuk mengakses email via email klien dengan tanda 3 agar mengikuti aturan tc di anak antrian 1:3
/sbin/iptables -t mangle -A POSTROUTING -o eth1 -p tcp -d 192.168.0.0/16 – -sport 25  -j MARK  – -set-mark 3

Dengan bantuan iptables kita bisa ebih menspesifikan aturan menjadi sangat detil dari yang kita bayangkan … seperti penggunaan MAC Address,  port-port yang digunakan dan lain lain.

Selamat Mencoba dan Semoga berhasil

 
Leave a comment

Posted by on March 23, 2011 in Ubuntu

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: