Home > LiNuX (based on debian), Networking, Proxy Server > Bandwidth management menggunakan squid

Bandwidth management menggunakan squid

Ketika kita berbicara mengenai bandwidth management, maka banyak sekali yang bisa kita lakukan yaitu dengan cara network-based ataupun application-based.
Network based bandwidth management adalah mengatur penggunaan bandwidth berbasiskan IP Address, dengan menggunakan queueing baik dengan teknik HTB maupun CBQ.
Sedangkan Application based bandwidth management yang menggunakan layer application (CMIIW) utk melakukan bandwidth management, bisa dengan menggunakan squid dengan mengatur opsi delay_pools

NETWORK BASED BANDWIDTH MANAGEMENT (delay_class type 2) [21 Juni 2009]

  1. Mendefinisikan Subnet yang akan di manage bandwidth-nya :
  2. Bagian  IT : 192.168.7.0/28
    Bagian Designer : 192.168.7.16/28
    Bagian Finance : 192.168.7.32/28
    Bagian Tamu : 192.168.7.48/28

    root@constantine:~# vim /etc/squid3/squid.conf
    acl IT src 192.168.7.0/28
    http_access allow IT

    acl designer src 192.168.7.16/28
    http_access allow designer

    acl finance src 192.168.7.32/28
    http_access allow finance

    acl tamu src 192.168.7.48/28
    http_access allow tamu

  3. Membagi bandwidth berdasarkan kebijakan yang ada
  4. misal :
    Bandwidth total adalah :  2 Mbps = 2048 Kbps -> 256 KBps
    Bagian IT mendapat alokasi sebesar : 600 Kbps = 75 KBps
    Bagian Designer mendapat alokasi sebesar : 800 Kbps = 100 KBps
    Bagian Finance mendapat alokasi sebesar : 400 Kbps = 50 KBps
    Sisanya diberikan pada bagian Tamu : 200 Kbps = 25 KBps

    !!!!!!!!!!!!!!!!!!!! INGAT !!!!!!!!!!!!!!!!!!!!!
    1 byte = 8 bit
    KBps = Kilo Bytes per second
    Kbps = Kilo bits per second
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    aturan pembagian bandwidth diatas baru diterapkan apabila client melakukan akses / download file diatas 1024000Bytes (1024KB = 1MB).

    root@constantine:~# vim /etc/squid3/squid.conf

    delay_pools 4

    delay_class 1 2
    delay_parameters 1 –1/-1 75000/1024000
    delay_access 1 allow IT
    delay_access 1 deny all

    delay_class 2 2
    delay_parameters 2 -1/-1 100000/1024000
    delay_access 2 allow designer
    delay_access 2 deny all

    delay_class 3 2
    delay_parameters 3 -1/-1 50000/1024000
    delay_access 3 allow finance
    delay_access 3 deny all

    delay_class 4 2
    delay_parameters 4 -1/-1 25000/1024000
    delay_access 4 allow tamu
    delay_access 4 deny all

  5. Testing / benchmark-lah masing2 bagian dengan melakukan download secara gila-gilaan dengan download manager (mis : IDM, FlashGet, dll) file yang besar sekali dari masing-masing subnet dan perhatikan apakah pembagian bandwidth yang anda lakukan sudah benar

BANDWIDTH MANAGEMENT  BERDASARKAN TYPE AKSES USER (delay_class type 1) [15 Mei 2010]

Tipe akses user yang saya maksud disini ada 2, yaitu antara BROWSING dan DOWNLOAD. Untuk membedakan kedua tipe akses tersebut, saya asumsikan bisa dilihat dari tipe file-nya (extensi file), misalnya apabila tipe filenya .htm, .html, .php, .jsp, maka itu adalah tipe akses BROWSING, sedangkan apabila tipe filenya .exe, .avi, .zip, maka itu adalah tipe akses DOWNLOAD.

Misalnya kita mempunyai koneksi internet dg b/w 2 Mbps, kita ingin membaginya sbb :
DOWNLOAD = 1,5 Mbps = 1500 Kbps = 187 KBytes/s = 187000 Bytes/s
BROWSING = 0,5 Mbps = 500 Kbps = 62 KBytes/s = 62000 Bytes/s

Maka skenario yg bisa diterapkan adalah dengan mendefinisikan tipe-file yang kita anggap DOWNLOAD, kemudian kita batasi aksesnya, dan membiarkan (tidak membatasi) tipe-file lainnya karena kita asumsikan selain DOWNLOAD adalah BROWSING. Caranya adalah :

  1. Definisikan seluruh tipe-file yg kita anggap akses DOWNLOAD dalah sebuah file. (dibawah ini hanya sebuah contoh, anda bebas menyesuaikan sendiri)
  2. root@constantine:/etc/squid3# touch /etc/squid3/file_download
    root@
    constantine:/etc/squid3# vim /etc/squid3/file_download

    \.3gp$
    \.7-zip$
    \.7z$
    \.ac3$
    \.ace$
    \.aif$
    \.aifc$
    \.aiff$
    \.arc$
    \.arj$
    \.asf$
    \.asx$
    \.au$
    \.avi$
    \.bin$
    \.bzip2$
    \.cab$
    \.cdw$
    \.chm$
    \.cr2$
    \.crw$
    \.dat$
    \.dcr$
    \.div$
    \.divx$
    \.djvu$
    \.doc$
    \.dts$
    \.dvi$
    \.dvr-ms$
    \.emf$
    \.eps$
    \.exe$
    \.flv$
    \.fpx$
    \.gz$
    \.gzip$
    \.ha$
    \.hdf$
    \.icl$
    \.icn$
    \.iff$
    \.iso$
    \.jar$
    \.jad$
    \.jp2$
    \.jpc$
    \.jpeg$
    \.jpg$
    \.lha$
    \.lzh$
    \.lzw$
    \.m1v$
    \.m2v$
    \.mid$
    \.midi$
    \.mim$
    \.mp2$
    \.mp2v$
    \.mp3$
    \.mpa$
    \.mpe$
    \.mpeg$
    \.mpg$
    \.mpv2$
    \.mrw$
    \.msi$
    \.nef$
    \.ogg$
    \.orf$
    \.pak$
    \.pbm$
    \.pcd$
    \.pcx$
    \.pef$
    \.pgm$
    \.pic$
    \.pict$
    \.plp$
    \.png$
    \.ppm$
    \.pps$
    \.ppt$
    \.ps$
    \.psd$
    \.psp$
    \.qt$
    \.raf$
    \.ram$
    \.rar$
    \.ras$
    \.raw$
    \.rfx$
    \.rm$
    \.rmi$
    \.rmvb$
    \.rpm$
    \.rs$
    \.rtf$
    \.run$
    \.sef$
    \.sgi$
    \.snd$
    \.srf$
    \.swf$
    \.tar$
    \.tar.bz$
    \.tar.gz$
    \.tbz$
    \.tga$
    \.tgz$
    \.tif$
    \.tiff$
    \.ttf$
    \.uue$
    \.vob$
    \.vqf$
    \.vro$
    \.wav$
    \.wbmp$
    \.wma$
    \.wmf$
    \.wmv$
    \.wri$
    \.x3f$
    \.xbm$
    \.xls$
    \.xlw$
    \.xpm$
    \.zip$

  3. Edit konfigurasi squid, dan batasi akses apabila file yang di download besarnya diatas 1 MBytes (1024 Kbytes = 1024000 Bytes)
  4. root@constantine:/etc/squid3# vim /etc/squid3/squid.conf

    acl tipe-akses-download url_regex -i “/etc/squid3/file_download”
    delay_pools 1

    delay_class 1 1
    delay_parameters 1 187000/1024000
    delay_access 1 allow tipe-akses-download
    delay_access 1 deny all

  5. check apakah ada error, kalau tidak ada error, baru restart service squid
  6. root@constantine:/etc/squid3# squid3 -k check
    root@
    constantine:/etc/squid3# /etc/init.d/squid3 restart

  7. Testing download dengan download manager yg anda sukai (IDM, FlashGet, GetRight, DownThemAll) dan perhatikan download rate-nya apakah sudah sesuai dengan setting yg diterapkan. Pada saat yang sama silahkan browsing2 website lain, untuk meyakinkan bahwa alokasi b/w untuk BROWSING sebesar 62000 Bytes/s (62 KBps) masih bisa digunakan.

Happy Managing U’r Bandwidth.
Thx to :
squid3 dan dokumentasinya yg lengkap
http://www.squid-cache.org/
http://bayuart.wordpress.com/2006/09/30/contoh-squid-delay-pool/
MySelf yg sdh mau susah2 nulis ini 😀

Advertisements
  1. newbie proxy
    3 September 2008 at 7:10 pm

    bisa diteruskan gak?

  2. Abdullah HQm A
    4 September 2008 at 7:28 am

    aku bingung akh…

  3. amang
    27 September 2008 at 12:00 pm

    ayo diteruskan, tak tunggu Om..

  4. munawir
    27 August 2009 at 5:28 am

    thanks beh..!!

    Jawab :
    ok jeh…

  5. 4 July 2011 at 10:16 pm

    wah yg ennih bagus….. n yg jelas murah…. alias ga bayar (he3x), makasih ya mas Luqman tulisannya. aqu pake nih resepnya untuk router di sekolah… thx bgt deh 🙂 🙂

  6. Dwi Ayu
    30 August 2012 at 4:17 am

    please tutorial nya managemen bandwith berdasarkan extension file donk,,

  7. 30 August 2012 at 11:59 am

    @avatarosi : sip sama2 mas, senang bisa membantu anda.
    @Dwi Ayu : pada dasarnya tulisan diatas, bagian “BANDWIDTH MANAGEMENT BERDASARKAN TYPE AKSES USER (delay_class type 1) [15 Mei 2010]” adalah berdasarkan extension file, tinggal dipahami baik2 lagi sebelum anda melakukan modifikasi sesuai kebutuhan.

  8. jey
    13 September 2012 at 3:57 am

    Beri Penjelasan tentang cache proxynya gan

  9. 13 September 2012 at 8:12 am

    penjelasan apa? buanyak skali penjelasan yg bisa dicari d internet.
    Tulisan ini hanya notes & tips saja 😀

  10. johny
    23 September 2012 at 5:59 pm

    Maknyoss, keep posting bro.

  11. ical
    26 September 2012 at 1:59 am

    numpang tanya bro…klo bagi bandwitch per ip gimana ya?

  12. 9 October 2012 at 4:14 am

    @johny : siap gan !!!
    @ical : kalo mau bagi bandwidth per IP caranya seperti pada penjelasan diatas bagian NETWORK BASED BANDWIDTH MANAGEMENT hanya saja dimanipulasi alamat networknya menjadi alamat host (yaitu per IP address). Gampang khan bro? 🙂

  13. dash7
    5 June 2013 at 4:01 am

    mas bro, gimana cara prioritaskan bandwidth untuk domain tertentu?

  14. 12 June 2013 at 11:59 am

    Selama “domain tertentu” itu bisa di terjemahkan dalam ACL nya squid, maka bisa contek penjelasan diatas yg bagian NETWORK BASED BANDWIDTH MANAGEMENT.

  15. irfan
    31 October 2013 at 11:09 am

    cakep.. boleh nih jadi referensi..
    dan gw baru nyadar kalo selama ini 1byte = 8 bit (gak kebalik?)

    tenkyu buat infonya..

  16. iwan
    25 August 2014 at 1:51 pm

    mas, mau tanya.. kalau membagi BANDWIDTH untuk range user tertentu gmana ya? sakumpam untuk range ip 1-10 trus untuk range ip 20-30… gmn mas?

  17. 26 August 2014 at 10:36 pm

    @iwan: gampang itu wan, buat aja acl yg berbeda2 untuk range ip tersebut, misal utk range ip 1-10 nama acl-nya SIJI, utk range ip 20-30 nama acl-nya LORO, dst.
    Dari ACL tersebut lalu kita definisikan kecepatan bandwidth nya, contohmu ini mirip dengan yg NETWORK BASED BANDWIDTH MANAGEMENT.

  1. 7 March 2012 at 12:59 pm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: