INSTALASI HTB (Hierachical
Token Bucket) Dan CBQ
(Class-Based Queueing) Hanny Wijaya
(hanny@rsds.or.id) , irc.efnet.net #indolinux
12-11-2003
Alangkah baiknya siapkan satu pak rokok (A mild) dan makanan
ringan :). Distro yang digunakan adalah Redhat Linux 7.2. dan 7.3 .Tidak
ada copyright apapun dalam dukumen ini, anda bebas menyalin, mencetak,
maupun memodifikasi (dengan menyertakan nama penulis asli). Semoga
bermanfaat dan memajukan opensource software di Indonesia.
Pastikan login pada server anda adalah sebagai
root
1. Instalasi Kernel
2.4.22 Untuk instalasi kernel, anda bisa membaca artikel mas
asfik dengan judul kompilasi
kernel 2.4.x di linux dan tambahankan bagian QOS and/or fair
queueing CONFIG_NET_SCHED=y CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_HTB=m CONFIG_NET_SCH_CSZ=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_INGRESS=m CONFIG_NET_QOS=y CONFIG_NET_ESTIMATOR=y CONFIG_NET_CLS=y CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_POLICE=y
1.1
Atau install kernel cara saya (semoga anda
beruntung!!)
[root@probiotik hanny]#cd
/usr/src [root@probiotik src]#wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.22.tar.gz [root@probiotik
src]#tar -xzvf linux-2.4.22.tar.gz [root@probiotik src]#ln -s
linux-2.4.22 linux [root@probiotik src]#cd linux [root@probiotik
linux]#make mrproper
Anda bisa copy salinan dari config kernel
saya [root@probiotik linux]#wget http://www.rsds.or.id/linux/configure/config-kernel.2.4.22.hanny [root@probiotik
linux]#mv config-kernel.2.4.22.hanny .config
Tambahkan atau
Kurangi hadware pendukung yang anda punya, seperti
: Processor type and features ---> SCSI support
---> Network device support ---> Amateur Radio support
---> IrDA (infrared) support ---> Sound ---> USB support
---> Bluetooth support --->
[root@probiotik
linux]#make menuconfig [root@probiotik linux]#make modules; make
modules_install [root@probiotik linux]#make bzImage [root@probiotik
linux]#cp System.map /boot/System.map-2.4.22 [root@probiotik linux]#cp
arch/i386/boot/bzImage /boot/vmlinuz-2.4.22
1.2 Tambahkan
kernel baru anda pada lilo.conf [root@probiotik linux]#vi
/etc/lilo.conf
#--------Isi
lilo.conf------------ prompt boot=/dev/hda timeout=50 message=/boot/message install=/boot/boot.b root=/dev/hda2 default=2.4.22 linear
#kernel
lama image=/boot/vmlinuz-2.4.7-10 label=2.4.7-10 root=/dev/hda2 read-only initrd=/boot/initrd-2.4.7-10.img
#kernel
baru image=/boot/vmlinuz-2.4.22 label=2.4.22 root=/dev/hda2 read-only #--------------------------------
1.3
Lalu restart linux anda [root@probiotik linux]#reboot
1.4
Cek kernel anda [root@probiotik hanny]#uname -a Linux probiotik 2.4.22 #2 Wed
Nov 12 12:55:20 WIT 2003 i686 unknown
2.
Upgrade Iptables Untuk menghindari agar iptables linux
anda masih tetap berjalan dan tidak ada troble karena kernel, sebaiknya
anda upgrade iptables
2.1 Instalasi
iptables-1.2.9 [root@probiotik hanny]#wget http://www.netfilter.org/files/iptables-1.2.9.tar.bz2 [root@probiotik
hanny]#tar -xjvf iptables-1.2.9.tar.bz2 [root@probiotik hanny]#cd
iptables-1.2.9 [root@probiotik iptables-1.2.9]#make
KERNEL_DIR=/usr/src/linux [root@probiotik iptables-1.2.9]#make install
KERNEL_DIR=/usr/src/linux [root@probiotik iptables-1.2.9]#make
install-devel
2.2 Backup iptables lama
anda [root@probiotik iptables-1.2.9]#mv /sbin/ip6tables
/sbin/ip6tables.old [root@probiotik iptables-1.2.9]#mv /sbin/iptables /sbin/iptables.old [root@probiotik iptables-1.2.9]#mv
/sbin/iptables-restore /sbin/iptables-restore.old [root@probiotik
iptables-1.2.9]#mv /sbin/iptables-save
/sbin/iptables-save.old
2.2 Menggunakan iptables
baru [root@probiotik iptables-1.2.9]#ln -s
/usr/local/sbin/ip6tables /sbin/ [root@probiotik iptables-1.2.9]#ln -s
/usr/local/sbin/iptables /sbin/ [root@probiotik iptables-1.2.9]#ln -s
/usr/local/sbin/iptables-restore /sbin/ [root@probiotik
iptables-1.2.9]#ln -s /usr/local/sbin/iptables-save /sbin/
2.3
Coba jalankan iptables baru [root@probiotik
iptables-1.2.9]#iptables iptables v1.2.9: no command specified Try
`iptables -h' or 'iptables --help' for more information.
3. INSTALASI HTB (Hierachical Token
Bucket) Ada banyak cara untuk membuat
shapper htb, anda bisa membuat secara manual dengan command tc atau
anda bisa mengunakan htb.init. Kebetulan saya menggunakan htb.init :)
Dalam percobaan yang saya lakukan, ada 3 buah komputer dengan total
bandwith ISP 128 Kbps komputer 1 bernama hanny dengan ip 192.168.1.2,
akan di beri jatah 64 Kbps komputer 2 bernama dedy dengan ip
192.168.1.3, akan di beri jatah 32 Kbps komputer 3 bernama amek dengan
ip 192.168.1.4, akan di beri jatah 32 Kbps Bila ada salah satu komputer
idle maka bandwith akan bisa kita pakai
3.1 Persiapan untuk
config htb.init Download htb.init [root@probiotik
iptables-1.2.9]#wget http://keihanna.dl.sourceforge.net/sourceforge/htbinit/htb.init-v0.8.4 [root@probiotik
iptables-1.2.9]#mv htb.init-v0.8.4 /sbin/ [root@probiotik
iptables-1.2.9]#chmod 755 htb.init-v0.8.4
3.2 Membuat config
pada sysconfig [root@probiotik iptables-1.2.9]#mkdir
/etc/sysconfig/htb [root@probiotik iptables-1.2.9]#touch
/etc/sysconfig/htb/eth0 [root@probiotik iptables-1.2.9]#touch
/etc/sysconfig/htb/eth0-10.root [root@probiotik iptables-1.2.9]#touch
/etc/sysconfig/htb/eth0-10:10.hanny [root@probiotik
iptables-1.2.9]#touch
/etc/sysconfig/htb/eth0-10:20.dedy [root@probiotik
iptables-1.2.9]#touch /etc/sysconfig/htb/eth0-10:30.amek
Isi dari
masing-masing config htb adalah sebagai berikut:
eth0 |
eth0-10.root |
eth0-10:10.hanny |
eth0-10:20.dedy |
eth0-10:30.amek |
DEFAULT=30 R2Q=1
|
RATE=128Kbit QUANTUM=1500 |
RATE=64Kbit QUANTUM=1500 CEIL=128Kbit LEAF=sfq
RULE=192.168.1.2/32 RULE=192.168.1.2/32, |
RATE=32Kbit QUANTUM=1500 CEIL=128Kbit LEAF=sfq
RULE=192.168.1.3/32 RULE=192.168.1.3/32, |
RATE=32Kbit QUANTUM=1500 CEIL=128Kbit LEAF=sfq
RULE=192.168.1.4/32 RULE=192.168.1.4/32, |
Bila masih bertanya tanya apa yang dimaksud dgn
RATE,QUANTUM,CEIL,LEAF,RULE,dll anda dapat membaca pada
file htb.init [root@probiotik iptables-1.2.9]#vi /sbin/htb.init-v0.8.4
atau lihat http://www.docum.org/stef.coene/qos/faq/cache/29.html
3.3
Jalankan htb.init [root@probiotik
iptables-1.2.9]#/sbin/htb.init-v0.8.4 Usage: htb.init-v0.8.4
{start|compile|stop|restart|timecheck|list|stats}
[root@probiotik
iptables-1.2.9]#/sbin/htb.init-v0.8.4 compile [root@probiotik
iptables-1.2.9]#/sbin/htb.init-v0.8.4 start
3.4 Cek pada list
module linux anda [root@probiotik
iptables-1.2.9]#lsmod cls_route 4176 0 (unused) cls_u32 4752
3 cls_fw 2496 0 (unused) sch_sfq 3760 0 (unused) sch_htb 18768
1
Bila anda sudah bosan dengan htb :) [root@probiotik
iptables-1.2.9]#/sbin/htb.init-v0.8.4 stop
3.5 Agar bisa autorun
saat restart, tambahkan script pada rc.local [root@probiotik
iptables-1.2.9]#echo /sbin/htb.init-v0.8.4 >>
/etc/rc.local
4. INSTALASI CBQ (Class-Based
Queueing) Ada banyak cara untuk membuat
shapper CBQ, anda bisa membuat secara cbq.init Dalam percobaan yang
saya lakukan, ada 3 buah komputer dengan total bandwith ISP 128
Kbps komputer 1 bernama hanny dengan ip 192.168.1.2, akan di beri jatah
64 Kbps komputer 2 bernama dedy dengan ip 192.168.1.3, akan di beri
jatah 32 Kbps komputer 3 bernama amek dengan ip 192.168.1.4, akan di
beri jatah 32 Kbps (CBQ dalam pengambilan bandwith dari teman, tidak
bisa murni penuh, hanya sekitar 1Kbit-2Kbit)
4.1
Persiapan untuk config CBQ.init Download CBQ.init
[root@probiotik iptables-1.2.9]#wget http://heanet.dl.sourceforge.net/sourceforge/cbqinit/cbq.init-v0.7.1 [root@probiotik
iptables-1.2.9]#mv cbq.init-v0.7.1 /sbin/ [root@probiotik
iptables-1.2.9]#chmod 755 cbq.init-v0.7.1
4.2 Membuat config
pada sysconfig Bila dalam kernel lama sudah terdapat direktori
/etc/sysconfig/cbq , maka anda cukup membuat file-file
cbq-xxx.xxx. Jika terdapat file example-cbq dalam direktori
/etc/sysconfig/cbq, hapus dan buat file-file cbq-xxx.xxx yang baru
:)
[root@probiotik iptables-1.2.9]#rm
/etc/sysconfig/cbq/* [root@probiotik iptables-1.2.9]#mkdir
/etc/sysconfig/cbq [root@probiotik iptables-1.2.9]#touch
/etc/sysconfig/cbq/cbq-1001.hanny [root@probiotik iptables-1.2.9]#touch
/etc/sysconfig/cbq/cbq-1002.dedy [root@probiotik iptables-1.2.9]#touch
/etc/sysconfig/cbq/cbq-1003.amek
Isi dari masing-masing config CBQ
adalah sebagai berikut:
cbq-1001.hanny |
cbq-1002.dedy |
cbq-1003.amek |
DEVICE=eth0,10Mbit,1Mbit RATE=64Kbit WEIGHT=6.4Kbit LEAF=sfq RULE=192.168.1.2/32 RULE=192.168.1.2/32,
|
DEVICE=eth0,10Mbit,1Mbit RATE=32Kbit WEIGHT=3.2Kbit LEAF=sfq RULE=192.168.1.3/32 RULE=192.168.1.3/32, |
DEVICE=eth0,10Mbit,1Mbit RATE=32Kbit WEIGHT=3.2Kbit LEAF=sfq RULE=192.168.1.4/32 RULE=192.168.1.4/32, |
Bila masih bertanya tanya apa yang dimaksud dgn
DEVICE,RATE,WEIGHT,LEAF,RULE,dll anda dapat membaca pada
file CBQ.init [root@probiotik iptables-1.2.9]#vi
/sbin/cbq.init-v0.7.1 atau lihat http://www.docum.org/stef.coene/qos/faq/cache/3.html
4.3
Jalankan CBQ.init [root@probiotik
iptables-1.2.9]#/sbin/cbq.init-v0.7.1 Usage: cbq.init-v0.7.1
{start|compile|stop|restart|timecheck|list|stats}
[root@probiotik
iptables-1.2.9]#/sbin/cbq.init-v0.7.1 compile [root@probiotik
iptables-1.2.9]#/sbin/cbq.init-v0.7.1 start
4.4 Cek pada list
module linux anda [root@probiotik
iptables-1.2.9]#lsmod cls_route 4336 0 (unused) cls_u32 5072
1 cls_fw 2720 0 (unused) sch_sfq 3856 3 sch_tbf 2672 1 sch_cbq
11728 1
Bila anda sudah bosan dengan CBQ :) [root@probiotik
iptables-1.2.9]#/sbin/cbq.init-v0.7.1 stop
4.5 Agar bisa autorun
saat restart, tambahkan script pada rc.local [root@probiotik
iptables-1.2.9]#echo /sbin/cbq.init-v0.7.1 >>
/etc/rc.local
5. Tools untuk melihat limit
bandwith - MRTG http://people.ee.ethz.ch/~oetiker/webtools/mrtg/ -
Iptraf http://www.linuxhelp.net/guides/iptraf/
Thank's
to ------------------------------------------- http://luxik.cdi.cz/~devik/qos/htb/ http://www.docum.org/stef.coene/qos/faq/cache/ |