Blog tips dan trik kali ini akan berbagi tips trik dan cara mudah membatasi bandwidth dengan menggunakan squid.
Squid adalah sebuah daemon yang digunakan sebagai proxy server dan web cache. Squid memiliki banyak jenis penggunaan, mulai dari mempercepat server web dengan melakukan caching permintaan yang berulang-ulang, caching DNS, caching situs web, dan caching pencarian komputer di dalam jaringan untuk sekelompok komputer yang menggunakan sumber daya jaringan yang sama, hingga pada membantu keamanan dengan cara melakukan penyaringan (filter) lalu lintas.
Meskipun seringnya digunakan untuk protokol HTTP dan FTP, Squid juga menawarkan dukungan terbatas untuk beberapa protokol lainnya termasuk Transport Layer Security (TLS), Secure Socket Layer (SSL), Internet Gopher, dan HTTPS. Versi Squid 3.1 mencakup dukungan protokol IPv6 dan Internet Content Adaptation Protocol (ICAP).
Squid pada awalnya dikembangkan oleh Duane Wessels sebagai "Harvest object cache", yang merupakan bagian dari proyek Harvest yang dikembangkan di University of Colorado at Boulder. Pekerjaan selanjutnya dilakukan hingga selesai di University of California, San Diego dan didanai melalui National Science Foundation. Squid kini hampir secara eksklusif dikembangkan dengan cara usaha sukarela.
Squid umumnya didesain untuk berjalan di atas sistem operasi mirip UNIX, meski Squid juga bisa berjalan di atas sistem operasi Windows. Karena dirilis di bawah lisensi GNU General Public License, maka Squid merupakan perangkat lunak bebas. sumber http://id.wikipedia.org/wiki/Squid
Bandwidth merupakan barang yang mahal. Untuk saat ini kisaran 64 kps
dihargai sekitar 1 jt perbulan. Permasalahnnya bandwith 64 kbits itu
bukan nilai yang besar. Rata-rata yang didapat pelanggan adalah 64 1:2.
Artinya 1 jalur 64 kbits digunakan untuk 2 pelanggan sekaligus. Sudah
bandwidthnya dibatasi terkadang pula disisi user ada yang bertingkah
seenaknya. Merasa ada koneksi internet gratis, beberapa user mulai
menggunakannya untuk membuka situs-situs tertentu atau mengkoleksi
file-file tertentu. Tentu saja alokasi bandwidth yang tersedia semakin
menyusut. Yang merasakan adalah golongan user yang biasa-biasa saja
(bukan mania internet), mereka hanya bisa mengelus dada.
Untuk mengatasi hal diatas, agar setiap user mendapat bandwidth yang cukup, bisa digunakan aplikasi squid proxy server.
Ada beberapa tag konfigurasi untuk delay pools di squid.conf.
delay_pools [jumlah]
Menyatakan berapa banyak bagian/pool yang akan dibuat misal delay_pools 2
delay_class [bagian class="" tipe=""]
Menentukan tipe/class pembagian bandwith dari setiap pool. 1 pool hanya boleh memiliki 1 class, tidak lebih atau kurang. Bagian merupakan nomer urut dari jumlah pool didelay pool, jadi ada 1 s/d n bagian dimana n merupakan angka jumlah pada delay_pools tipe merupakan tipe class delay yang dipakai.
Secara umum tipe menyatakan bagaimana cara membagi bandwidth, ada 3 tipe:
Tipe/Class 1 : Semua bandwidth yang ada akan dibagi sama rata untuk semua user squid. Contoh: Ada bandwidth 128KBps dan semua bandwith dipakai untuk browsing.
Tipe/Class 2 : Membatasi pemakaian bandwith dari total bandwidth yang ada, dan bandwith yang diperuntukan squid akan dibagi semua user dengan sama rata.
Contoh: Ada bandwidth 128KBps dimana 28KBps dipakai untuk email dan sisanya (128-28) 100 kbit dipakai untuk browsing.
Tipe/Class 3 : Membatasi pemakaian bandwidth dari total bandwidth yang ada, setiap network class C akan mendapat bandwidth sama besar, setiap user pernetwork akan mendapat bandwidth yang sama besar dari total bandwidth per network.
Contoh: Bandwidth tersedia 512KBps, untuk browsing disediakan bandwidth 384KBps, sisanya untuk aktifitas lain. Di jaringan tersebut ada 3 departement dengan network yang berbeda misal lab (192.168.1.0/24), manajer(192.168.2.0/24), Sales(192.168.3.0/24). Misal oleh admin di set bahwa per-network mendapat jatah 128KBps/s. Maka user di sales akan mendapat pembagian bandwidth sama besar dari total 128KBps. Maka user di lab akan mendapat pembagian bandwidth sama besar dari total 128KBps. Maka user di manajer akan mendapat pembagian bandwidth sama besar dari total 128KBps.
delay_access [bagian acl] Memberi batasan siapa saja yang boleh mempergunakan delay pools ini.
Penting untuk diingat sebaiknya setelah menetukan batasan jangan lupa di akhiri dengan deny all. Contoh:
delay_access 1 allow manajer delay_access 1 deny all delay_access 2 allow sales delay_access 2 deny all
delay_parameters Ini adalah bagian terpenting dari delay pools memberikan aturan main setiap delay pools yang dibentuk. Delay parameter mempunyai format yang disesuaikan dengan tipe/class yang dipakai. Tapi disetiap tipe yang dipakai ada 1 format baku yaitu restore/max.
restore menunjukkan maksimum kecepatan data yang dapat dilewatkan bila harga max sudah terlampaui, dalam satuan bytes/second
max menunjukkan besar-nya file atau bucket yang dapat dilewatkan tanpa melalui proses delay. dalam satuan bytes.
SpesialCase: -1/-1 berarti unlimited atau tidak dibatasi pada nilai restore/max
Contoh: 1000/64000 ,harga restore sama dengan 1Kbytes/sec. Yang artinya user akan mendapat donlot brustable selama file yang akan dibuka lebih kecil dari 64 Kb, jadi kecepatan bisa diatas 1Kb/sec. Bila ternyata file yang dibuka melebihi 64 Kb, maka proses limitasi akan segera dimulai dengan membatasi kecepatan maksimal 1Kb/s.
class 1
delay_parameters [#pool individual]
Contoh: delay_parameters 1 10000/64000
Berarti semua network akan mendapat bandwidth yang sama di pool no 1.
Sebesar 10 Kb/s dengan burstable file 64 Kb.
class 2
delay_parameters [#pool agregate individual]
Contoh: delay_parameters 1 256000/256000 10000/64000
Berarti squid akan memakai bandwidth maksimum 256 Kb dari semua bandwidth.
Bila terdapat lebih dari 1 network class C, maka total yang dihabiskan tetap 256 Kb/sec dan tiap user akan mendapat bandwidth maksimum 10 Kb/sec , dengan burstable file 64 Kb.
class 3
delay_parameters [#pool agregate network individual]
Contoh: delay_parameters 1 256000/256000 32000/32000 10000/64000
Berarti squid akan memakai bandwidth maksimum 256 Kb dari semua bandwidth.
Bila terdapat lebih dari 1 network class C, maka setiap network akan dipaksa maksimum sebesar 32 Kb/sec dan tiap user pada satu network akan mendapat bandwidth maksimum 10 Kb/sec, dengan burstable file 64 Kb
Contoh Kasus 1:
Saya ingin membatasi user yang melakukan download, jika file tersebut kurang dari 5 MB maka tidak akan di limit alias full, tapi jika lebih dari 5 MB akan di limit sampai kecepatan 10 Kb/s
Buat dlu acl nya:
#nano /etc/squid/squid.conf
Tambahkan rule berikut:
———————————————————————————–
acl download url_regex -i \.avi$ \.mpg$ \.mpeg$ \.rm$ \.iso$ \.wav$ \.mov$ \.dat$ \.mpe$ \.mid$
acl download url_regex -i ftp \.exe$ \.mp3$ \.mp4$ \.tar.gz$ \.gz$ \.tar.bz2$ \.rpm$ \.zip$ \.rar$
acl download url_regex -i \.midi$ \.rmi$ \.wma$ \.wmv$ \.ogg$ \.ogm$ \.m1v$ \.mp2$ \.mpa$ \.wax$
acl download url_regex -i \.m3u$ \.asx$ \.wpl$ \.wmx$ \.dvr-ms$ \.snd$ \.au$ \.aif$ \.asf$ \.m2v$
acl download url_regex -i \.m2p$ \.ts$ \.tp$ \.trp$ \.div$ \.divx$ \.mod$ \.vob$ \.aob$ \.dts$
acl download url_regex -i \.ac3$ \.cda$ \.vro$ \.deb$ \.mkv$
delay_pools 1
delay class 1 1
delay_parameters 1 10000/5000000
delay_access 1 allow download
delay_access 1 deny all
————————————————————————————
Contoh Kasus 2:
Sama seperti kasus 1 cuma saya ingin group admin dan management tidak dibatasi dalam mendownload selain group tersebut tetep ter limit sampai 10Kb/s.
#nano /etc/squid/squid.conf
Tambahkan rule berikut:
Buat dlu acl nya:
————————————————————————————
acl admin src 192.168.1.1/32 192.168.1.10/32
acl management src 192.168.1.21-192.168.1.25/32
————————————————————————————
Ubah delay pools nya menjadi spt ini:
————————————————————————————
delay_pools 2
delay_class 1 1
delay_parameters 1 -1/-1
delay_access 1 allow admin
delay_access 1 allow admin management
delay_access 1 deny all
delay_class 2 1
delay_parameters 2 10000/5000000
delay_access 2 allow download
delay_access 2 deny all
————————————————————————————
Catatan: Penempatan delay pools admin dan management harus diatas delay pools download, karena jika dibalik tidak akan berfungsi.
Contoh Kasus 3: (tidak terkait kasus 1 dan 2)
Bagaimana caranya membuat delay pools untuk membatasi speed per user staff di siang hari dengan speed …KBps dan malam hari dengan speed …KBps. Jadi ketika malam bandwidth untuk user staff makin kecil, dan bukan malah di loss, selain staff tidak terikat aturan ini.
#nano /etc/squid/squid.conf
Tambahkan rule berikut:
————————————————————————————
acl staff src 192.168.1.30-192.168.1.60/32
acl JAM_KANTOR time 08:00-17:00
delay_pools 2
delay_class 1 2
delay_parameters 1 32000/64000 begin_of_the_skype_highlighting 1 32000/64000 end_of_the_skype_highlighting -1/-1
delay_access 1 allow staff JAM_KANTOR
delay_access 1 deny all
delay_class 2 2
delay_parameters 2 10000/10000 -1/-1
delay_access 2 allow staff !JAM_KANTOR
delay_access 2 deny all
Untuk mengatasi hal diatas, agar setiap user mendapat bandwidth yang cukup, bisa digunakan aplikasi squid proxy server.
Ada beberapa tag konfigurasi untuk delay pools di squid.conf.
delay_pools [jumlah]
Menyatakan berapa banyak bagian/pool yang akan dibuat misal delay_pools 2
delay_class [bagian class="" tipe=""]
Menentukan tipe/class pembagian bandwith dari setiap pool. 1 pool hanya boleh memiliki 1 class, tidak lebih atau kurang. Bagian merupakan nomer urut dari jumlah pool didelay pool, jadi ada 1 s/d n bagian dimana n merupakan angka jumlah pada delay_pools tipe merupakan tipe class delay yang dipakai.
Secara umum tipe menyatakan bagaimana cara membagi bandwidth, ada 3 tipe:
Tipe/Class 1 : Semua bandwidth yang ada akan dibagi sama rata untuk semua user squid. Contoh: Ada bandwidth 128KBps dan semua bandwith dipakai untuk browsing.
Tipe/Class 2 : Membatasi pemakaian bandwith dari total bandwidth yang ada, dan bandwith yang diperuntukan squid akan dibagi semua user dengan sama rata.
Contoh: Ada bandwidth 128KBps dimana 28KBps dipakai untuk email dan sisanya (128-28) 100 kbit dipakai untuk browsing.
Tipe/Class 3 : Membatasi pemakaian bandwidth dari total bandwidth yang ada, setiap network class C akan mendapat bandwidth sama besar, setiap user pernetwork akan mendapat bandwidth yang sama besar dari total bandwidth per network.
Contoh: Bandwidth tersedia 512KBps, untuk browsing disediakan bandwidth 384KBps, sisanya untuk aktifitas lain. Di jaringan tersebut ada 3 departement dengan network yang berbeda misal lab (192.168.1.0/24), manajer(192.168.2.0/24), Sales(192.168.3.0/24). Misal oleh admin di set bahwa per-network mendapat jatah 128KBps/s. Maka user di sales akan mendapat pembagian bandwidth sama besar dari total 128KBps. Maka user di lab akan mendapat pembagian bandwidth sama besar dari total 128KBps. Maka user di manajer akan mendapat pembagian bandwidth sama besar dari total 128KBps.
delay_access [bagian acl] Memberi batasan siapa saja yang boleh mempergunakan delay pools ini.
Penting untuk diingat sebaiknya setelah menetukan batasan jangan lupa di akhiri dengan deny all. Contoh:
delay_access 1 allow manajer delay_access 1 deny all delay_access 2 allow sales delay_access 2 deny all
delay_parameters Ini adalah bagian terpenting dari delay pools memberikan aturan main setiap delay pools yang dibentuk. Delay parameter mempunyai format yang disesuaikan dengan tipe/class yang dipakai. Tapi disetiap tipe yang dipakai ada 1 format baku yaitu restore/max.
restore menunjukkan maksimum kecepatan data yang dapat dilewatkan bila harga max sudah terlampaui, dalam satuan bytes/second
max menunjukkan besar-nya file atau bucket yang dapat dilewatkan tanpa melalui proses delay. dalam satuan bytes.
SpesialCase: -1/-1 berarti unlimited atau tidak dibatasi pada nilai restore/max
Contoh: 1000/64000 ,harga restore sama dengan 1Kbytes/sec. Yang artinya user akan mendapat donlot brustable selama file yang akan dibuka lebih kecil dari 64 Kb, jadi kecepatan bisa diatas 1Kb/sec. Bila ternyata file yang dibuka melebihi 64 Kb, maka proses limitasi akan segera dimulai dengan membatasi kecepatan maksimal 1Kb/s.
class 1
delay_parameters [#pool individual]
Contoh: delay_parameters 1 10000/64000
Berarti semua network akan mendapat bandwidth yang sama di pool no 1.
Sebesar 10 Kb/s dengan burstable file 64 Kb.
class 2
delay_parameters [#pool agregate individual]
Contoh: delay_parameters 1 256000/256000 10000/64000
Berarti squid akan memakai bandwidth maksimum 256 Kb dari semua bandwidth.
Bila terdapat lebih dari 1 network class C, maka total yang dihabiskan tetap 256 Kb/sec dan tiap user akan mendapat bandwidth maksimum 10 Kb/sec , dengan burstable file 64 Kb.
class 3
delay_parameters [#pool agregate network individual]
Contoh: delay_parameters 1 256000/256000 32000/32000 10000/64000
Berarti squid akan memakai bandwidth maksimum 256 Kb dari semua bandwidth.
Bila terdapat lebih dari 1 network class C, maka setiap network akan dipaksa maksimum sebesar 32 Kb/sec dan tiap user pada satu network akan mendapat bandwidth maksimum 10 Kb/sec, dengan burstable file 64 Kb
Contoh Kasus 1:
Saya ingin membatasi user yang melakukan download, jika file tersebut kurang dari 5 MB maka tidak akan di limit alias full, tapi jika lebih dari 5 MB akan di limit sampai kecepatan 10 Kb/s
Buat dlu acl nya:
#nano /etc/squid/squid.conf
Tambahkan rule berikut:
———————————————————————————–
acl download url_regex -i \.avi$ \.mpg$ \.mpeg$ \.rm$ \.iso$ \.wav$ \.mov$ \.dat$ \.mpe$ \.mid$
acl download url_regex -i ftp \.exe$ \.mp3$ \.mp4$ \.tar.gz$ \.gz$ \.tar.bz2$ \.rpm$ \.zip$ \.rar$
acl download url_regex -i \.midi$ \.rmi$ \.wma$ \.wmv$ \.ogg$ \.ogm$ \.m1v$ \.mp2$ \.mpa$ \.wax$
acl download url_regex -i \.m3u$ \.asx$ \.wpl$ \.wmx$ \.dvr-ms$ \.snd$ \.au$ \.aif$ \.asf$ \.m2v$
acl download url_regex -i \.m2p$ \.ts$ \.tp$ \.trp$ \.div$ \.divx$ \.mod$ \.vob$ \.aob$ \.dts$
acl download url_regex -i \.ac3$ \.cda$ \.vro$ \.deb$ \.mkv$
delay_pools 1
delay class 1 1
delay_parameters 1 10000/5000000
delay_access 1 allow download
delay_access 1 deny all
————————————————————————————
Contoh Kasus 2:
Sama seperti kasus 1 cuma saya ingin group admin dan management tidak dibatasi dalam mendownload selain group tersebut tetep ter limit sampai 10Kb/s.
#nano /etc/squid/squid.conf
Tambahkan rule berikut:
Buat dlu acl nya:
————————————————————————————
acl admin src 192.168.1.1/32 192.168.1.10/32
acl management src 192.168.1.21-192.168.1.25/32
————————————————————————————
Ubah delay pools nya menjadi spt ini:
————————————————————————————
delay_pools 2
delay_class 1 1
delay_parameters 1 -1/-1
delay_access 1 allow admin
delay_access 1 allow admin management
delay_access 1 deny all
delay_class 2 1
delay_parameters 2 10000/5000000
delay_access 2 allow download
delay_access 2 deny all
————————————————————————————
Catatan: Penempatan delay pools admin dan management harus diatas delay pools download, karena jika dibalik tidak akan berfungsi.
Contoh Kasus 3: (tidak terkait kasus 1 dan 2)
Bagaimana caranya membuat delay pools untuk membatasi speed per user staff di siang hari dengan speed …KBps dan malam hari dengan speed …KBps. Jadi ketika malam bandwidth untuk user staff makin kecil, dan bukan malah di loss, selain staff tidak terikat aturan ini.
#nano /etc/squid/squid.conf
Tambahkan rule berikut:
————————————————————————————
acl staff src 192.168.1.30-192.168.1.60/32
acl JAM_KANTOR time 08:00-17:00
delay_pools 2
delay_class 1 2
delay_parameters 1 32000/64000 begin_of_the_skype_highlighting 1 32000/64000 end_of_the_skype_highlighting -1/-1
delay_access 1 allow staff JAM_KANTOR
delay_access 1 deny all
delay_class 2 2
delay_parameters 2 10000/10000 -1/-1
delay_access 2 allow staff !JAM_KANTOR
delay_access 2 deny all
untuk mempermudah juragan memahami tutorial diatas saya akan kasih beberapa blog dan website yang membahas limit bandwidt dengan squid:
http://www.howtoforge.com/squid-delay-pools-bandwidth-management
https://sites.google.com/site/huyadesakai/linux/mengatur-bandwidth-di-squid-proxy
http://dyudho.wordpress.com/2007/06/20/bandwidht-limiter-dengan-squid/
http://s0t4.blogspot.com/2008/11/batasi-bandwidth-dengan-squid.html
http://www.sitepoint.com/forums/showthread.php?880373-how-to-set-bandwidth-quota-on-user-in-squid-server
Semoga bermanfaat untuk mendapatkan update tips dan trik terbaru juragan bisa like funpage facebook blog tips dan trik.