ALTQ dengan metoda CBQ Management bandwidth menggunakan ALTQ dengan metoda CBQ pada FreeBSD release dan stable kernel alternate queueing (ALTQ) merupakan suatu system kerja management komponen QOS pada system operasi (UNIX) *BSD family. disini saya hanya menjelaskan implementasi ALTQ menggunakan CBQ (karena paling umum) pada mesin FreeBSD4.6 release dan stable kernel. perlu di ketahui ALTQ belum di porting secara resmi oleh FreeBSD.ORG. Kenjiro Cho membuat suatu modulasi untuk altq dan cbq salah satunya pada source kernel FreeBSD dengan mempatching kernel release. dan dimodifikasi untuk stable kernel oleh Adrian Penisoara. 1. Pertama-tama identifikasi dahulu mesin FreeBSD anda apakah stable atau release kernel, lalu siapkan kopi kental 2 cangkir, roko marlboro 2 bungkus, popmie 2 cup, dan coca-cola 1,5 liter tidak lupa combro gehu dan teman temannya Rp.2000 2. Masuk pada direktori source /usr/src #cd /usr/src 3. Download paket altq dan patch nya a. untuk mesin release # fetch ftp://ftp.csl.sony.co.jp/pub/kjc/altq-3.1.tar.gz # fetch ftp://ftp.csl.sony.co.jp/pub/kjc/altq-3.1-sys-altq-freebsd-4.6.patch B. untuk mesin stable FreeBSD4.6 Stable # fetch ftp://ftp.csl.sony.co.jp/pub/kjc/altq-3.1.tar.gz # fetch http://www.rofug.ro/projects/freebsd-altq/sys-altq-freebsd-4.6-STABLE-24Aug2002.diff.gz 4. Buka paket download source untuk stable dan release # tar -zxvf altq-3.1.tar.gz a. untuk kernel stable karena source patch nya berupa .gz buka paketnya # gunzip sys-altq-freebsd-4.6-STABLE-24Aug2002.diff.gz 5. copy file patch ke dalam direktory /usr/src/altq-3.1/sys-altq/ a. untuk kernel release # cp /usr/src/altq-3.1-sys-altq-freebsd-4.6.patch /usr/src/altq-3.1/sys-altq/ b. untuk kernel stable # cp /usr/src/sys-altq-freebsd-4.6-STABLE-24Aug2002.diff /usr/src/altq-3.1/sys-altq/ 6. Buat direktory untuk source altq # mkdir sys-altq 7. Masuk kedalam direktory /usr/src/sys # cd sys 8. Buat direktory /usr/src/sys-altq dan ambil source dari /usr/src/sys # tar cvf - . | (cd ../sys-altq; tar xf -) 9. masuk kedalam direktory /usr/src/sys-altq # cd /usr/src/sys-altq 10. patch system kernel anda a. untuk kernel release # patch -p0 < /usr/src/altq-3.1/sys-altq/altq-3.1-sys-altq-freebsd-4.6.patch b. untuk kernel stable # patch -p0 < /usr/src/altq-3.1/sys-altq/sys-altq-freebsd-4.6-STABLE-24Aug2002.diff 11. buat direktory altq # mkdir altq 12. copy altq file kedalam sys-altq/altq # cp /usr/src/altq-3.1/sys-altq/altq/* altq/ 13. masuk kedalam source kernel konfigurasi altq # cd i386/conf 14. copy file ALTQ menjadi backup-ALTQ #cp ALTQ backup-ALTQ 15. edit KERNEL ALTQ anda dengan menambah beberapa options -------------------------------------------------------------------------------------- options HZ=1000 # bermaksud operasi kernel akan dijalankan pada 1ms options ALTQ # alternate queueing options ALTQ_CBQ # required options ALTQ_RED # required options ALTQ_RIO # required options ALTQ_HFSC # required options ALTQ_PRIQ # required options ALTQ_CDNR # required options ALTQ_BLUE # required options ALTQ_WFQ # required options ALTQ_FIFOQ # required options ALTQ_JOBS # required --------------------------------------------------------------------------------------- 16. compile kernel # config ALTQ # cd ../../compile/ALTQ # make depend # make clean # make # make install 17. reboot # shutdown -r now 18. masuk kedalam direktory /usr/src/altq-3.1 # cd /usr/src/altq-3.1 19. konfigur device altq # sh MAKEDEV.altq all 20. Installing userland tools # make # make install 21. tentukan metoda CBQ pada altq.conf disini saya berasumsi yaitu membatasi bandwidth pada enthernet NIC ed0 10MBPS saya hanya memberikan rule CBQ berdasarakan ip address dengan bandwidth yang dimiliki dari isp yaitu 512Kbps dan mengalokasi kan ke beberapa ip, antara lain karena di timbang orang banyak memanajemen QOS berdasarakan ip addressnya. 1. urutan class parent dan class child bandwidth saya buat 5 tingkat mulai ethernet hingga ke client/client2. 2. pbandwidth pembagian % yang di ambil dari parent class. 3. borrow exactbandwidth yaitu nilai bandwidth yang di pinjam dari parent class yaitu pbandwidth. 4. maxpacketsize saya menggunakan default nya dari NIC yaitu mtu 1500. 5. RED mengatur rata rata drop antrian secara random dan porposional. rencana saya: bandwidth 256Kbps network 202.110.330.110/29 ip 202.110.330.102 ip 202.110.330.103 bandwidth 128Kbps ip 202.110.330.104 ip 202.110.330.105 ip 202.110.330.106 jadi untuk subnet 202.110.220.110/29 share bandwidth dengan ip 202.110.220.102 dan 202.110.220.103 sebesar 256Kbps dan untuk 202.110.330.104 202.110.330.105 220.110.330.106 share bandwidth 128Kbps sisanya ip 202.110.330.107 202.110.330.108 mempunyai sisa dari bandwidth yaitu 128Kbps block ip saya yaitu 202.110.220.101/28 di bagi menjadi 2 subnet network ;) menuju switch melalui interface ed0 ISP---rl1--|ALTQ(FreeBSD)|--ed0--switch---VLAN lame the rules !! 22. # edit /etc/altq.conf ------------------------------------------------------------------------------------------ interface ed0 bandwidth 10M cbq class cbq ed0 root_class NULL pbandwidth 100 class cbq ed0 default_class root_class pbandwidth 50 class cbq ed0 client_class default_class exactbandwidth 512Kbps default class cbq ed0 client1 client_class priority 6 borrow exactbandwidth 256000 red filter ed0 client1 202.110.330.110 netmask 0xfffffff9 0 0 0 0 filter ed0 client1 0 0 202.110.330.110 netmask 0xfffffff9 0 0 filter ed0 client1 202.110.330.102 0 0 0 0 filter ed0 client1 0 0 0 0 202.110.330.102 filter ed0 client1 202.110.330.103 0 0 0 0 filter ed0 client1 0 0 0 0 202.110.330.103 class cbq ed0 client2 client_class priority 1 borrow exactbandwidth 128000 red filter ed0 client2 202.110.330.104 0 0 0 0 filter ed0 client2 0 0 0 0 202.110.330.104 filter ed0 client2 202.110.330.105 0 0 0 0 filter ed0 client2 0 0 0 0 202.110.330.105 filter ed0 client2 202.110.330.106 0 0 0 0 filter ed0 client2 0 0 0 0 202.110.330.106 ---------------------------------------------------------------------------------------------- 23. jalankan daemon altq # altqd -f /etc/altq.conf 24. untuk menentukan configurasi altq.conf # man altq.conf atau ada beberapa contoh di direktory /usr/src/altq-3.1/altqd/altq.conf.samples 25. perhatikan command dan keterangan dengan seksama. contributed by cikapundung team special thanks sony *garut is fine city :) & babeh also tested by IVANX a.k.a ontalaut thx buat teman-teman di #freebesdmania@dalnet