Bandwidth Limiting dengan iptables

Selama ini kita menggunakan HTb dan CBQ untuk membatasi trafik transfer data dalam sebuah komputer dengan sistem operasi Linux. Untuk sistem operasi Free BSD dapat menggunakan ip_dummynet yang penggunaannya lebih fleksibel, selain support dengan pembatasan traffic per IP, juga support dengan pembatasan traffic berdasar perbedaan port. Iptables versi baru, ternyata mengadopsi fungsi fleksibel dari ip-dummynet tersebut, dan telah dilengkapi juga dengan proses pembatasan traffic. Pembatasan ini dilakukan dengan melakukan accept chain yang policy nya adalah DROP, dengan syarat batas kecepatan, dilengkapi pula dengan port dan ip address atau network address.




#Syntax iptables untuk pembatasan traffic pada iptables adalah sebagai berikut:

iptables -P [chain] DROP
iptables -I/-A [chain] -s xxx.xxx.xxx.xxx -d xxx.xxx.xxx.xxx -m limit -p tcp --dport xx --limit x/s --limit-burst x/s -j ACCEPT
#Keterangan:

* chain bisa diisi dengan chain yang dituju, misal FORWARD, INPUT, OUTPUT. Dapat pula dikombinasikan dengan fungsi-fungsi NAT, dengan menambahkan fungsi tabel -t nat
* -s adalah address asal paket tersebut berasal (jika kosong, dianggap dari semua lokasi jaringan)
* -d adalah address tujuan paket tersebut berasal (jika kosong, dianggap dari semua lokasi jaringan)
* -m adalah multiport
* --dport adalah port tujuan (jika kosong maka dianggap dari semua port)
* --limit adalah fungsi pembatasan traffic. Nilai x adalah dalam kb
* --limit-burst adalah fungsi pembatasan antrian nilainya adalah dalam kb
* -j ACCEPT adalah target dari chain tersebut diterima

#contoh:
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

#contoh pembatasan traffic ssh dari 192.168.1.107 ke 10.32.100.254 dengan kecepatan maksimal 10 kbps pada chain input
iptables -A INPUT -s 192.168.1.107 -d 10.32.100.254 -m limit -p tcp --dport 22 --limit 10/s --limit-burst 20/s -j ACCEPT

#contoh pembatasan traffic dari network 192.168.1.0 dengan kecepatan maksimal 10 kbps pada chain forward
iptables - A FORWARD -s 192.168.1.0/24 -d 0/0 -m limit -p tcp --limit 10/s -j ACCEPT


Selamat mencoba :)

1 komentar:

Anonim mengatakan...

wah ada yg lebih ringkas seperti ini yah mas..

kalo gitu saya gak perlu repot2 pake Delay_pools yah ^_^


nice share... :)