Mengatur Bandwidth di Linux

Belakangan ini banyak ISP yang memberikan layanan broadband Internet dengan bandwidth yang sangat besar mulai dari 512Kbps hingga 2Mbps. Umumnya layanan ini digunakan oleh Warung Internet dan perusahaan-perusahaan yang bergerak dibidang Internet. Sekarang tinggal bagaimana mengatur bandwidth sebesar itu agar dapat dimanfaatkan bersama secara “adil”. Artikel ini akan membahas mengenai pembuatan sebuah bandwidth manager yang secara transparan dapat diletakkan pada jaringan yang telah ada.

1. Pengenalan QoS

Mungkin Anda semua sudah mengetahuinya, QoS adalah singkatan dari Quality of Service. Tetapi apa artinya? Apa yang bisa Anda lakukan untuk mengimplementasikannya?

QoS artinya network yang telah memenuhi kriteria-kriteria tertentu yang dibuat oleh manager-manager network tersebut. Kriteria tersebut termasuk:

  1. Availability, yaitu persentase hidupnya sistem atau layanan yang diberikan. Idealnya, availability harus mencapai 100% atau setidaknya 99,9999% (ada 6 buah angka sembilan), yang menunjukkan tingkat kerusakan sebesar 2,6 detik per bulan.
  2. Bandwidth Usages, yaitu masing-masing user akan diberikan bandwidth sesuai kebutuhan mereka. Selain berdasarkan user, pemakaian bandwidth juga dapat dibagi berdasarkan jenis traffic atau jenis protocol. Misalnya, untuk traffic HTTP dialokasikan bandwidth sebesar 40%, untuk voice 25%, sisanya untuk ftp dan lain-lain. Yang terakhir ini sering disebut dengan “traffic shaper”.
  3. Throughput, yaitu kecepatan (rate) transfer data efektif, yang diukur dalam bps (bit per second). Penggunaan sebuah saluran secara bersama-sama akan mengurangi nilai ini.
  4. Latency, adalah waktu yang dibutuhkan data untuk menempuh jarak dari asal ke tujuan. Tundaan (delay) ini dapat dipengaruhi oleh jarak (misalnya akibat penggunaan wireless LAN), atau kongesti (yang memperpanjang antrian), atau bisa juga akibat waktu olah yang lama (misalnya proses baca-tulis pada sebuah proxy server).
  5. Packet Loss, yaitu jumlah paket yang hilang. Umumnya perangkat network memiliki buffer untuk menampung data yang diterima. Jika terjadi kongesti yang cukup lama, buffer akan penuh, dan data baru tidak dapat diterima. Paket yang hilang ini harus diretransmisi, yang akan membutuhkan waktu tambahan.

Ada banyak kriteria-kriteria lain yang dapat ditentukan oleh seorang manager network disebuah perusahaan Lebih lengkap mengenai QoS dapat dilihat di http://www.qosforum.com/tech_resources.htm

Pada kasus tertentu, sebuah perusahaan bahkan memilih ISP yang telah memiliki service-level agreements, atau

SLA. Dengan adanya perjanjian ini, perusahaan tersebut dijamin akan mendapatkan layanan sesuai yang diiklankan oleh ISPnya atau akan mendapat kompensasi apabila layanan tersebut tidak sesuai yang diharapkan.

Artikel ini secara khusus akan membahas bagaimana sebuah akses Internet berkecepatan tinggi (broadband Internet access) dapat dimanfaatkan bersamaan oleh beberapa karyawan di sebuah perusahaan. Dengan menggunakan sebuah fasilitas bandwidth manager, masing-masing karyawan akan dialokasikan dengan bandwidth sesuai kebutuhan mereka.

2.

Linux Ethernet Bridge

Kita akan menganggap perusahaan ini memiliki jaringan komputer yang telah berjalan baik, termasuk akses ke Internetnya. Perusahaan ini telah lama memanfaatkan Linux sebagai Gateway ke Internet menggunakan IP-Masquerade. Karena penggunaan bandwidth yang tidak teratur, maka salah seorang karyawan yang men-download sebuah file MP3 berukuran besar akan mengganggu karyawan lain yang hanya menggunakan Internet untuk email dan browsing.

Anda sebagai seorang staff Network-nya diberi tugas oleh atasan untuk mengimplementasikan bandwidth manager tanpa merubah topologi logik jaringan yang telah ada. Artinya, Anda diharapkan untuk dapat mengimplementasikannya tanpa harus mengutak-ngatik konfigurasi yang telah ada pada komputer client. Selain itu, Anda juga dianjurkan oleh atasan untuk tidak merubah konfigurasi pada server.

Solusinya adalah dengan menjalankan CBQ pada sebuah

Linux Bridge. Keterangan mengenai CBQ akan dijelaskan di poin berikutnya pada artikel yang sama.

Membuat Bridge

Ada beberapa syarat yang harus dipenuhi pada sebuah bridge:
  • Sebuah port hanya dapat menjadi anggota dari satu bridge
  • Sebuah bridge tidak perlu mengetahui rute yang akan dilaluinya
  • Sebuah bridge tidak mengetahui protocol yang lebih tinggi dari ARP. Itulah sebabnya ia dapat membawa berbagai macam protocol yang dilalui ethernet pada bridge tersebut.
  • Berapa pun banyaknya port yang akan menjadi anggota sebuah bridge, ia akan dianggap satu interface logik.

Bila Anda pernah mencoba untuk nge-ping sebuah unmanaged switch, tentunya Anda tahu bahwa itu tidak akan berhasil karena switch tersebut tidak memiliki IP address.

Tetapi bila Anda ingin melakukan perubahan konfigurasi pada bridge, Anda dapat menggunakan SNMP, telnet, rlogin, atau ssh. Dianjurkan untuk menggunakan SSH. Source code bridge yang baru memungkinkan Anda untuk mengalokasikan IP terhadap interface virtualnya.

Catatan: Bridge berfungsi sama seperti sebuah switch.

Berikutnya, download program bridge-utils dari http://bridge.sourceforge.net/bridge-utils.html. Pada saat penulisan artikel ini, penulis menggunakan versi 0.9.3. Untuk mendownload source codenya gunakan link ini: http://bridge.sourceforge.net/bridge-utils/bridge-utils-0.9.5.tar.gz sedangkan untuk binary i386: http://bridge.sourceforge.net/bridge-utils/bridge-utils-0.9.5-1.i386.rpm.

Setelah sebuah file binary /sbin/brctl telah terinstall. Ketik brctl untuk melihat beberapa opsi program tersebut.

Setup Bridge

Perlu diperhatikan bahwa pada komputer yang akan dijadikan bridge ini memiliki dua network card (eth0 dan eth1). Kedua-duanya yang akan dijadikan anggota sebuah bridge.

  • Membuat bridge dengan nama ‘jembatan’:

[root@kepet /root]# brctl addbr jembatan

Untuk mematikannya gunakan: brctl delbr jembatan

  • Menambah interface pada bridge:

[root@kepet /root]# ifconfig eth0 0.0.0.0

[root@kepet /root]# ifconfig eth1 0.0.0.0

[root@kepet /root]# ifconfig eth0 promisc up

[root@kepet /root]# ifconfig eth1 promisc up

[root@kepet /root]# brctl addif jembatan eth0

[root@kepet /root]# brctl addif jembatan eth1

Perhatikan bahwa interface-interface tersebut dalam keadaan ‘promisc’ dan tanpa IP. Sekarang aktifkan bridge ‘jembatan’ dengan perintah:

[root@kepet /root]# ifconfig jembatan up

Bila ingin menambahkan IP pada bridge untuk kemudahaan manajemen nantinya, gunakan:

[root@kepet /root]# ifconfig jembatan 192.168.1.254 up

Dengan demikian anda dapat login ke PC bridge ini dengan telnet atau ssh dengan menggunakan IP 192.168.1.254.

Setelah selesai, masukkan perintah-perintah di atas di dalam script /etc/rc.d/rc.local agar dapat dijalankan setiap saat komputer di boot.

Anda juga dapat mendownload antarmuka grafis (GUI) untuk mengkonfigurasi bridge dari: http://home.planet.nl/~kristian/gbrctl.html

eth0 eth1

PC ———- PC LINUX BRIGE ——– PC

Gambar 1.

Test Bridge

Test bridge ini dengan cara menghubungkan kedua interface eth0 dan eth1 dengan kabel cross, masing-masing ke sebuah PC. Coba ping dari satu PC ke PC lain dan sebaliknya. Bila berhasil, maka sebuah ethernet bridge telah siap digunakan.

3. CBQ

Berikutnya adalah mengaktifkan CBQ untuk mengatur jumlah bandwidth masing-masing PC yang terhubung melalui bridge kita. Perhatikan rencana pemasangan CBQ pada Gambar 2.

gateway ——– linux cbq bridge ——— hub ———|_____ pc bagus 48 Kbps

|____ pc yudo 128 Kbps

|____ pc dani 48 Kbps

|____ pc nisa 128 Kbps

|____ pc gita 64 Kbps

|____ pc stefanny 64 Kbps

Gambar 2.

Rencana Pemasangan CBQ

Sekali lagi, penulis menggunakan Linux RedHat 7.1 yang juga telah dilengkapi dengan program CBQ. Tetapi penulis tetap berkeras untuk menggunakan rilis terbaru CBQ yaitu versi 0.6.2 yang dapat di download dari: ftp://ftp.equinox.gu.net/pub/linux/cbq/cbq.init

Setelah di download letakkan di dalam direktori /sbin:

[root@kepet download]# wget “ftp://ftp.equinox.gu.net/pub/linux/cbq/cbq.init”

[root@kepet download]# chmod 755 cbq.init

[root@kepet download]# cp cbq.init /sbin/cbq

cp: overwrite ‘/sbin/cbq’? y

Semua konfigurasi CBQ akan diletakkan di dalam direktori /etc/sysconfig/cbq.

Sedikit tentang CBQ. CBQ adalah kependekan dari class based queueing, yaitu sebuah ethernet shaper yang dapat dijalankan di Linux. CBQ hanya dapat menggunakan interface Ethernet untuk Linux (eth0, eth1, eth2, …) dan ARCNET. Untuk ARCNET, tukar parameter bandwidth menjadi 2Mbit dan bukannya 10Mbit seperti pada ethernet.

Untuk menjalankan CBQ diperlukan utilitas iproute2 yang dibuat oleh Alexey Kuznetsov dan dapat di download dari: ftp://ftp.inr.ac.ru/ip-routing. Tetapi pada distro yang penulis gunakan, iproute2 telah terinstall dengan baik.

Bagaimana CBQ bekerja? Baiklah. Setiap shaper akan ditulis pada sebuah file konfigurasi yang secara default terletak di dalam direktori /etc/sysconfig/cbq. Satu file per satu shaper / class.

Penamaan file konfigurasinya harus seperti: cbq-. dimana adalah dua byte heksadesimal dalam kisaran <0002-ffff> yang merupakan class ID CBQ. Sedangkan adalah nama dari shaper itu sendiri. Anda dapat menentukannya sesuka hati. Misalnya sesuai dengan Gambar 2, kita akan menamakan sebuah file konfigurasi CBQ dengan: cbq-1280.nisayudo

File konfigurasi CBQ akan dibagi kedalam beberapa paramater. Berikut adalah beberapa paramater yang akan kita gunakan pada artikel ini.

Parameter Divais

DEVICE=,,

Contoh: DEVICE=eth0,10Mbit,1Mbit

adalah nama interface yang akan diatur. Misalnya eth0. adalah bandwidth fisik dari divais tersebut, misalnya 10Mbit atau 100Mbit untuk ethernet atau 2Mbit untuk arcnet. Sedangkan adalah parameter yang dapat ditentukan dengan rumus: = / 10

Bila terdapat lebih dari satu class pada satu divais, Anda cukup mengisi dan sekali saja. Sedangkan pada file-file lainnya hanya isikan: DEVICE=.

Parameter Class

RATE=

Contoh: RATE=128Kbit

Adalah bandwidth yang dialokasikan pada class tersebut. Dengan cara ini kita dapat membatasi (limit) kecepatan dari shaper. Anda dapat menggunakan akhiran Kbit, Mbit, bps, Kbps, atau Mbps.

WEIGHT=

Contoh: WEIGHT=12Kbit

Dapat ditentukan dengan cara: WEIGHT = RATE / 10

PRIO=<1-8>

Contoh: PRIO=5

Prioritas trafik dari class bersangkutan. Semakin tinggi angkanya, semakin kecil prioritasnya. Umumnya digunakan prioritas 5.

Parameter Filter

RULE=[[saddr[/prefix]][:port],][daddr[/prefix]][:port]

Contoh: RULE=192.168.1.4

Anda dapat menggunakan lebih dari satu RULE per satu file konfigurasi. RULE digunakan untuk mem-filter trafik apa yang akan diatur. Contoh lainnya:

RULE=192.168.1.4:80

Memfilter trafik yang ditujukan kepada port 80 pada IP 192.168.1.4

RULE=192.168.1.0/24

Filter seluruh trafik yang terdapat di network 192.168.1.0

Keterangan tambahan mengenai parameter-parameter CBQ dapat Anda lihat di dalam file cbq.init itu sendiri.

Dari Gambar 2, kita akan membuat CBQ untuk mengatur bandwidth terhadap IP-IP tertentu. Perlu diperhatikan bahwa interface eth1 adalah yang menghubungi antara

CBQ Bridge dengan network 192.168.1.0/24 (HUB). Buatlah file-file berikut di dalam direktori /etc/sysconfig/cbq:

== cbq-64.gitastefanny

DEVICE=eth1,10Mbit,1Mbit

RATE=64Kbit

WEIGHT=6Kbit

PRIO=5

RULE=192.168.1.5

RULE=192.168.1.6

== cbq-48.bagusdanny

DEVICE=eth1

RATE=48Kbit

WEIGHT=4Kbit

PRIO=5

RULE=192.168.1.1

RULE=192.168.1.3

== cbq-128.yudonisa

DEVICE=eth1

RATE=128Kbit

WEIGHT=12Kbit

PRIO=5

RULE=192.168.1.2

RULE=192.168.1.4

Setelah semua file konfigurasi dibuat, jalankan CBQ dengan cara:

[root@kepet /root]# /sbin/cbq start

Untuk melihat statistik CBQ jalankan:

[root@kepet /root]# /sbin/cbq stats

Sedangkan untuk mematikan CBQ:

[root@kepet /root]# /sbin/cbq stop

Dengan dijalankannya CBQ pada bridge tersebut, komputer-komputer pada Gambar 2 telah dialokasikan bandwidth sesuai aturan yang telah dibuat. Anda dapat mencoba dari masing-masing komputer dengan cara mendownload sebuah file yang terdapat di server Linux Gateway, misalnya. Atau dengan mengaktifkan SNMP agent di masing-masing PC dan memonitor trafik masing-masing komputer menggunakan MRTG (http://www.ee.ethz.ch/~oetiker/webtools/mrtg/).

4. Penutup

Perintah-perintah bridge dan CBQ di atas dapat diletakkan di dalam file /etc/rc.d/rc.local agar selalu diaktifkan pada saat komputer di boot. Pada artikel ini hanya dibahas bagaimana CBQ dapat digunakan untuk membatasi penggunaan bandwidth per alamat IP tertentu. Sedangkan CBQ sebenarnya lebih dari sekedar pembatas bandwidth per IP. Ia juga dapat digunakan untuk membatasi trafik Internet seperti trafik HTTP (web), mail, ftp, dan lain-lain. Selain itu CBQ juga memiliki fitur untuk mengatur bandwidth pada jam-jam tertentu. Dengan memanfaatkan fasilitas-fasilitas pada CBQ, Anda dapat membuat sebuah bandwidth manager murah yang hanya memanfaatkan PC.

Bahan bacaan:

 

About Me

My photo
Presiden Director of : Monopoly Cell Groups, Monopoly Games and Internet Lounge, Monopoly Computer : Hardware, Maintenance and Supply Computer Product, Internet Networking Company, All in Depok City ,--------------------------, Send me Email : Radarmerauke@telkom.net

My Blog Stat :