advert

BANDWIDTH LIMITER dengan HTB TOOLS FOR LINUX


Kita   mungkin   sudah   banyak   mengenal   banyak   cara   untuk   melakukan   shaper   htb  spt menggunakan  tc   sendiri  atau  bantuan  scripts  htb.init,   cbq.init,  mastershaper,  dan  banyak  lagi utility untuk melakukan  pengaturan bandwidth. tapi  kali ini  saya  coba  bahas  salah satu  utility untuk mempermudah kita dalam pengaturan bandwidth yaitu htb-tools [http://htb-tools.arny.ro]. menurut saya tool ini sangat sederhana terutama dalam hal konfigurasinya dan cukup efektif.



Instalasi HTB-Tools & bahan-bahan yang diperlukan :


Htb-tools akan di install didalam gateway selain untuk routing juga untuk limiter, Anda bisa juga menggunakan bandwidth manager tersendiri yang di bridging diantara gateway dan isp, tapi dalam hal ini saya tidak bahas dlm bagian ini.
* OS Linux (pastinya :D), kernel yg mendukung QOS seharusnya distro-distro sekarang yg memakai kernel >= 2.6 sudah mendukung module tsb. dalam hal ini sistem yang saya gunakan adalah debian


darkstar:/boot# cat /etc/debian_version 4.0


darkstar:/boot# uname -a

Linux darkstar 2.6.18-4-686 #1 SMP Mon Mar 26 17:17:36 UTC 2007 i686

GNU/Linux


lakukan pengecekan module


"darkstar:/boot# cat /boot/config-2.6.18-4-686 |grep SCH "

CONFIG_IOSCHED_NOOP=y

CONFIG_IOSCHED_AS=y

CONFIG_IOSCHED_DEADLINE=y

CONFIG_IOSCHED_CFQ=y

CONFIG_DEFAULT_IOSCHED="cfq"

CONFIG_SCHED_SMT=y

CONFIG_SCHED_MC=y

CONFIG_NET_SCHED=y

CONFIG_NET_SCH_CLK_JIFFIES=y

# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set

# CONFIG_NET_SCH_CLK_CPU is not set

CONFIG_NET_SCH_CBQ=m

CONFIG_NET_SCH_HTB=m

CONFIG_NET_SCH_HFSC=m

CONFIG_NET_SCH_ATM=m

CONFIG_NET_SCH_PRIO=m

CONFIG_NET_SCH_RED=m

CONFIG_NET_SCH_SFQ=m

CONFIG_NET_SCH_TEQL=m

CONFIG_NET_SCH_TBF=m

CONFIG_NET_SCH_GRED=m

CONFIG_NET_SCH_DSMARK=m

CONFIG_NET_SCH_NETEM=m

CONFIG_NET_SCH_INGRESS=m

CONFIG_CHR_DEV_SCH=m

CONFIG_SENSORS_FSCHER=m

# CONFIG_USB_EHCI_TT_NEWSCHED is not set



    * Paket htb-tools (http://htb-tools.arny.ro/download.php), versi yang saya gunakan htb_tools-0.2.6
    * Paket iproute2 >=  iproute2-2.6.10-ss050124 http://developer.osdl.rg/dev/iproute2/download
    * Paket flex kalau belum ada ("http://flex.sourceforge.net/")




Saya tidak akan membahas cara-cara instalasi paket yg diperlukan oleh htb-tools, silahkan baca manual/referensi dari masing-masing distro yg digunakan



Instalasi:

download htb-tools di http://htb-tools.arny.ro/download.php), versi yang saya gunakan

htb_tools-0.2.6, taruh di /tmp


darkstar:/tmp# cd /tmp/

darkstar:/tmp# cd /tmp/

darkstar:/tmp# tar -xvzf htb_tools-0.2.6.tar.gz

darkstar:/tmp# make

darkstar:/tmp# make install



konfigurasi


Sebelum melakukan konfigurasi lebih lanjut, sebaiknya ada beberapa hal yang perlu kita ketahui mengenai format konfigurasi htb-tools, sbb:

- format konfigurasi htb-tools mirip seperti format konfigurasi bind

- bandwidth masing-masing user di bagi menjadi class - class

- masing-masing class tidak dapat membagi/meminjam bandwidth dari kelas lain

- anggota dari sebuah class (client) dapat saling berbagi bandwidth sesuai dengan yang telah di definisikan sebelumnya

- sebuah class bisa terdiri dari 1 atau lebih client

- transfer rate dalam kbit

- baris yang memiliki # di karakter pertama suatu baris akan diabaikan / dianggap komentar

- field src dan dst hanya dapat didefinisikan di dalam client BUKAN di class



sntax class


- bandwidth 192 : minimum bandwidth yang di guarantee dari suatu class; merepresentasikan jumlah toal bandwidth yang di guarantee untuk client dari suatu class


- limit 256 : maksimum transfer rate dari suatu class


- burst 2 : maksimum jumlah kbits yang di kirim sekali waktu oleh suatu class


Note: jika di set dengan nilai yang tidak benar, limit mungkin t idak akan berkerja dengan benar.

contoh: untuk limit 10000kbit maka gunakan burst 12kbit


- burst 0 : HANYA di HTB-tools 0.3.0 - jika di set 0 maka htb tools akan menghitung jumlah burst nya.


- priority 1 : priority class (priority 0 - 7) secara ascending (dari kecil ke besar). prioritas paling kecil akan di prioritaskan


- que sfq : menspesifikasikan qdisc (queue discipline) untuk class, jika tidak di spesifikasikan

defaultnya adalah pfifo limit 5 (atau esfq) (http://fatooh.org/esfq-2.6/)


Untuk menerapkan htb-tools saya coba membuat sebuah contoh konfigurasi sederhana dengan 3

buah client dan 1 router, dan andaikan kita mempunyai bandwidth 256kbps (download dan

upload) dari ISP akan dibagikan ke 3 client, berikut skemanya







Router

eth1 (local/internal interface) : 192.168.1.1/32

eth0 (public/external interface) : 124.xxx.xxx.xxx/32


pc1: 192.168.1.2/32

pc2: 192.168.1.3/32

pc3: 192.168.1.4/32



kita menginginkan pc1 dialokasikan download dan upload (128kbps), pc2 dan pc3 dialokasikan (64kbps) dan jika salah satu client tidak menggunakan bandwidth maka client lain dapat meminjam dari client tsb.


darkstar:/tmp# cd /etc/htb


konfigurasi untuk download (dalam kasus ini kita limit di interface internal eth0)


darkstar:/etc/htb# vi eth0-qos.cfg




# DOWNLOAD

class LAN_1 {

 bandwidth 256;# garansi bandwidth yg dialokasikan untuk LAN

 limit 256; # maksimal bandwidth yang bisa dicapai untuk LAN

 burst 2;

 priority 1;

 que sfq;

 client pc1 {

     bandwidth 128;# garansi bandwidth yang di alokasikan untuk pc1

     limit 192;# bandwidth maksimal yg bisa di capai untuk pc1

     burst 2;

     priority 1;

     dst {

         192.168.1.2/32;

     };

 };

 client pc2 {

     bandwidth 64;

     limit 96;

     burst 2;

     priority 1;

     dst {

         192.168.1.2/32;

     };

 };

 client pc3 {

     bandwidth 64;

     limit 96;

     burst 2;

     priority 1;

     dst {

         192.168.1.2/32;

     };

 };

};





Konfigurasi upload


darkstar:/etc/htb# vi eth1-qos.cfg

# UPLOAD

class LAN_1 {

 bandwidth 256;

 limit 256;

 burst 2;

 priority 1;

 que sfq;

 client pc1 {

     bandwidth 128;

     limit 192;

     burst 2;

     priority 1;

     src {

         192.168.1.2/32;

     };

 };

 client pc2 {

     bandwidth 64;

     limit 96;

     burst 2;

     priority 1;

     src {

         192.168.1.2/32;

     };

 };

 client pc3 {

     bandwidth 64;

     limit 96;

     burst 2;

     priority 1;

     src {

         192.168.1.2/32;

     };

 };

};



Test config dan jalankan shapper


darkstar:/etc/htb# htb eth0 start


Applying traffic rules for device eth0

Checking the config file....OK

Checking kernel support for HTB: present.

Delete previous root qdisc

Add root qdisc

Add root class


Add default class

"rate" is required.

RTNETLINK answers: Invalid argument


Add class LAN_1, que sfq

Add client pc3


darkstar:/etc/htb# htb eth1 start


Applying traffic rules for device eth1

Checking the config file....OK

Checking kernel support for HTB: present.

Delete previous root qdisc

Add root qdisc

Add root class

Add default class

"rate" is required.

RTNETLINK answers: Invalid argument



Add class LAN_1, que sfq

Add client pc3



Untuk melihat/monitoring status htb jalankan :


darkstar:/etc/htb# htb eth0 stats

darkstar:/etc/htb# htb eth1 stats



lakukan percobaan download/upload dari pc1, pc2 dan pc3.


htb-tools bisa menjadi solusi murah untuk memanage bandwidth bagi sebuah organisasi,

perusahaan, kantor dll.



sebenarnya di versi htb-tools 0.3.0 sudah disediakan tools untuk konfigurasi htb-tool melalui

web dan monitoringnya jg, silahkan di coba.





Komunitas eLearning IlmuKomputer.Com



MONITORING PROXY SERVER Secara REALTIME

Memonitor access proxy server sangat diperlukan bagi para admin jaringan, begitu pula anda yang saat ini menjadi administrator jaringan di sebuah warnet, instansi pemerintah,institusi pendidikan maupun di sebuah RTRWNET. Jika anda mempercayakan squid sebagai proxy server anda, maka anda perlu menginstall program khusus untuk memonitor access pada proxy server anda.

Berikut saya ada sedikit pengalaman mengenai software monitoring squid tersebut.
Asumsi bahwa anda sudah memiliki proxy server yangg sudah berjalan dengan baik &
webserver yang juga sudah berjalan dengan baik. Software monitoring access squid
secara realtime ini bernama sqstat.

Langkah-langkah menginstall dan mengkonfigurasi sqstat adalah sebagai berikut :

1.Download paket sqstat :
[root@sipiyuku ~]# wget http://samm.kiev.ua/sqstat/sqstat-1.20.tar.gz

2.Extract paket sqstat yg sudah kita download tadi :
[root@sipiyuku ~]# tar -zxvf sqstat-1.20.tar.gz

3.Pindahkan directory hasil extract tadi ke dalam path directory webserver anda:
[root@sipiyuku ~]# mv sqstat-1.20 /var/www/html/sqstat

4.Konfig file config.inc.php di dalam directory sqstat

[root@sipiyuku ~]# cd /var/www/html/sqstat/

[root@sipiyuku sqstat]# mv config.inc.php.defaults config.inc.php

[root@sipiyuku sqstat]# vi config.inc.php

ganti baris berikut DEFINE("SQSTAT_SHOWLEN",60); menjadi

DEFINE("SQSTAT_SHOWLEN",100);

lalu simpan konfignya.

5.Edit Konfigurasi squid anda
[root@sipiyuku ~]# vi /usr/local/squid/etc/squid.conf
tambahkan baris berikut pada konfig squid anda:
acl manager proto cache_object
acl webserver src 192.68.1.1/255.255.255.240 ##Sesuaikan dengan ip webserver anda
http_access allow manager webserver
http_access deny manager

lalu simpan konfig anda.

6.Nah anda sudah selesai menginstall sqstat, sekarang tinggal di coba saja, buka
browser anda lalu akses http://ipproxyanda/sqstat/sqstat.php

Goodluck, Selamat mencoba.


 



Copyright © 2003-2009 IlmuKomputer.Com