Traffic Control “tc” with iptables marking

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 lebih 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.

0 comments:

Post a Comment

Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]
close
iklan 120 x 600 kanan
close