Kekurangan dari modul DUMMYNET di IPFW adalah tidak dapat dilakukannya link sharing, dimana misalnya suatu “pipa” tidak digunakan, maka link pada “pipa” tsb tidak dapat digunakan oleh yg lain. Untuk dapat melakukan ini, dapat digunakan Bandwidth Management System seperti ALTQ.
Untuk mengaktifkan ALTQ, kernel harus di-kompilasi ulang dengan cara :
# cd /usr/src/sys/i386/conf/
# cp GENERIC NEW_KERNEL
Selanjutnya edit file “NEW_KERNEL” dan tambahkan 7 baris berikut :
# cat NEW_KERNEL | grep ALTQ
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_CDNR
options ALTQ_PRIQ
# cd /usr/src
# make buildkernel KERNCONF=NEW_KERNEL
……<tunggu sampai selesai>……
# make installkernel KERNCONF=NEW_KERNEL
……<tunggu sampai selesai>……
“NEW_KERNEL” dapat diganti dgn nama lain, sesuai fungsi dari kernel yg baru. Aplikasi untuk mengatur ALTQ adalah PF (Paket Filter) yaitu interface firewall seperti IPFW namun dikembangkan di OpenBSD dan saat ini dapat digunakan di FreeBSD. Untuk mengaktifkan PF, tambahkan baris berikut di /etc/rc.conf
# cat /etc/rc.conf | grep pf
pf_enable=”YES”
Untuk dapat bekerja, PF membutuhkan file konfigurasi /etc/pf.conf
# cat /etc/pf.conf
ext_if = “rl0”
altq on $ext_if cbq bandwidth 10Mb queue { deflt, bms }
queue deflt bandwidth 10% cbq(default)
queue bms bandwidth 90% cbq(borrow red) { pimpinan , biasa }
queue pimpinan bandwidth 10% priority 1 cbq(borrow red)
queue biasa bandwidth 80% cbq(borrow red) { staf, mahasiswa }
queue staf bandwidth 40% priority 2 cbq(borrow red)
queue mahasiswa bandwidth 60% priority 3 cbq(borrow red)
block return in on $ext_if inet all queue rsets
pass in on $ext_if inet proto tcp from 10.14.1.0/24 to any port 8080 keep state queue pimpinan
pass in on $ext_if inet proto tcp from 10.14.2.0/24 to any port 8080 keep state queue staf
pass in on $ext_if inet proto tcp from 10.14.3.0/24 to any port 8080 keep state queue mahasiswa
pass out on $ext_if inet all keep state