Mengatur Bandwidth Dengan Delay Pools

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 -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
------------------------------------------------------------------------------------

1 comment:

Related Posts with Thumbnails