Manajemen bandwith dengan delay pool FreeBSD

Posted: Mei 24, 2009 in kuliah

Ternyata manajemen bandwith pada freeBSD bisa diatur lewat squid. Caranya cukup simple sebenernya bagi yang udah berpengalaman, :) ..

nah, di bawah ini adalah pengertian singkat tentang delay pool pada konfigurasi squid untuk mengatur bandwtih.

Tapi sebelumnya pastikan dulu kalo squid sudah terkompilasi delay pool,

# ./configure –enable-delay-pools

konfigurasi

File konfigurasi squid adalah squid.conf


ada beberapa tag konfigurasi untuk delay pools di squid.conf.

  1. delay_pools <jumlah>
    menyatakan berapa banyak bagian/pool yang akan dibuat
    misal delay_pools 2

delay_class <bagian tipe/class>
menentukan klas/tipe pembagian bandwith dari setiap pool. 1 pool hanya boleh memiliki 1 clas, 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

keterangan

1

semua bandwidth yang ada akan dibagi sama rata untuk semua user squid

ex ada bandwidth 128 dan semua bandwith dipakai untuk browsing

2

membatasi pemakaian bandwith dari total bandwidth yang ada, dan bandwith yang diperuntukan squid akan dibagi semua user dengan sama rata.

ex ada bandwidth 128 dimana 28 kbit dipakai untuk email dan sisanya (128-28) 100 kbit dipakai untuk browsing

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

ex: bandwidth tersedia 512 kb, untuk browsing disediakan bandwidth 384 kb, 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).
nah misah oleh admin di set bahwa pernetwork mendapat jatah 128 kb/s.
maka user� di sales akan mendapat pembagian bandwidth sama besar dari total 128 kb/s.
maka user� di lab akan mendapat pembagian bandwidth sama besar dari total 128 kb/s.
maka user� di manajer akan mendapat pembagian bandwidth sama besar dari total 128 kb/s.

misal:

delay_class 1 2 # pool 1 memakai clas tipe 2

delay_class 2 3 # pool 2 memakai clas tipe 3

  • 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.
    misal:

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.

Yang perlu diperhatikan dari satuan diatas adalah harga restore dimana kita sering menerima/menyewa/membeli bandwidth dari provider dalam satuan bits/second bukan bytes/second. Sedangkan satuan kecepatan yang ditunjukkan oleh Microsoft pada saat mendonlot file adalah bytes/sec.
Sedangkan satuan dari harga max sudah sesuai dengan kebiasaan sehari-hari, dimana kita memberi besaran bytes pada file-file.
1 byte = 8 bit.

SpesialCase: -1/-1 berarti unlimited atau tidak dibatasi pada nilai restore/max

ex: 1000/64000 harga restore sama dengan 8000 bits/sec atau 8 kbits/sec.
Yang artinya user akan mendapat donlot brustable selama file yang akan dibuka lebih kecil dari 64 kbytes, jadi kecepatan bisa diatas 8 kbit/sec.
Bila ternyata file yang dibuka melebihi 64 bytes, maka proses limitasi akan segera dimulai dengan membatasi kecepatan maksimal 8 kbits/s.

class 1

delay_parameters <#pool individual>
ex: delay_parameters 1 1000/64000
Berarti semua network akan mendapat bandwidth yang sama di pool no 1.
Sebesar 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb.

class 2

delay_parameters <#pool agregate individual>
ex: delay_parameters 1 32000/32000 1000/64000
Berarti squid akan memakai bandwidth maksimum (32000*8) 256kbits dari semua bandwidth.
Bila terdapat lebih dari 1 network class C, maka total yang dihabiskan tetap 256 kbit/sec
dan tiap user akan mendapat bandwidth maksimum 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb.

class 3

delay_parameters <#pool agregate network individual>
ex: delay_parameters 1 32000/32000 8000/8000 1000/64000
Berarti squid akan memakai bandwidth maksimum (32000*8) 256kbits dari semua bandwidth.
Bila terdapat lebih dari 1 network class C, maka setiap network akan dipaksa maksimum sebesar (8000*8) 64 kbits/sec
dan tiap user pada satu network akan mendapat bandwidth maksimum 1 kbytes/sec (8 kbits/sec), dengan burstable file 64 kb.

Contoh 1

dalam 1 network dengan penggunaan bandwidth total tidak dibatasi terdapat beberapa komputer dengan klasifikasi sebagai berikut

  • admin, server dengan bandwidth unlimited
  • staff dengan bandwidth 1,5 kbytes/sec, bila file yang diakses melebihi 64Kbte
  • umum dengan bandwidth 1 kbytes/sec, bila file yang diakses melebihi 32 Kbyte

acl all src 0.0.0.0/0.0.0.0

acl admin src 192.168.1.250/255.255.255.255

acl server src 192.168.1.251/255.255.255.255

acl umum src 192.168.1.0/255.255.255.0

acl staff src 192.168.1.1 192.168.1.111 192.168.1.2 192.168.1.4 192.168.1.71

delay_pools 3

delay_class 1 1

delay_parameters 1 -1/-1

delay_access 1 allow admin

delay_access 1 allow server

delay_access 1 deny all

delay_class 2 1

delay_parameters 2 1500/64000

delay_access 2 allow staf

delay_access 2 deny all

delay_class 3 1

delay_parameters 3 1000/32000

delay_access 3 allow umum

delay_access 3 deny all

Cara mencobanya paling mudah adalah dengan menggunakan donlot manajer semacam DAP, GetRight maka akan terlihat bandwidth sudah dibatasi.

Contoh 2

Delay pools juga dapat digunakan untuk membatasi donlot file untuk extensi tertentu.
Gunakan ACL url_regex untuk mengatasi hal ini.
Contoh dibawah digunakan untuk membatasi donlot file multimedia hingga 1 kByte/sec.

acl multimedia url_regex -i \.mp3$ \.rm$ \.mpg$ \.mpeg$ \.avi$ \.dat$

delay_pools 1

delay_class 1 1

delay_parameters 1 1000/16000

delay_access 1 allow multimedia

delay_access 1 deny ALL

Contoh 3 dari forum.linux.or.id

bagaimana caranya membuat delay pools untuk membatasi download di siang hari untuk 15 klient sedangkan malam harinya lost asumsi jamnya ( 10:00 – 21:00)

acl LTIME time SMTWHFA 10:00-21:00

acl download url_regex -i ftp \.exe$ \.mp3$ \.mp4$ \.tar.gz$ \.gz$ \.tar.bz2$ \.rpm$ \.zip$ \.rar$

acl download url_regex -i \.avi$ \.mpg$ \.mpeg$ \.rm$ \.iso$ \.wav$ \.mov$ \.dat$ \.mpe$ \.mid$

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$

delay_pools 1

delay_class 1 1

delay_parameters 1 3000/3000

delay_access 1 allow download TIME

delay_access 1 deny all

Contoh 4

Mulyo Wardoyo
Bagaimana caranya membuat delay pools untuk membatasi download di siang hari dengan speed … dan malam hari dengan speed …, abis si bozz malem-nya mau pakai buat dolot.
Jadi pengennya pas malam bw buat user makin kecil, bukan malah di loss

acl JAM_KANTOR time SMTWHFA 07:00-18:00

delay_pools 2 delay_class 1 2

delay_parameters 1 24000/32000 -1/-1

delay_access 1 allow riset JAM_KANTOR

delay_access 1 deny all

delay_class 1 2

delay_parameters 2 8000/8000 -1/-1

delay_access 2 allow riset !JAM_KANTOR

delay_access 2 deny all

Contoh 5

wangsit masterpop3 yang semedi dengan pecelpenyu.
Saya ada bandwidth besar, 1mbps.
Ingin membatasi yang donlot file besar di atas 5mbyte, di beri speed 32kbps.
Misal bila ada 3 user yang donlot, tiap-tiap user akan mendapat bw maximal 32kbps.

acl user src 192.168.1.0/24

delay_pools 1

delay_class 1 2

delay_parameters 1 40000/10000000 4000/5000000

delay_access 1 allow user download

delay_access 1 deny ALL

Contoh 6 limit youtube

duppeh, untuk memaksa caching terhadap youtube ( sesuai wiki.squid-cache.org )

acl youtube dstdomain -i .youtube.com

acl striming url_regex -i get_video\?video_id videodownload\?

cache allow youtube

cache allow striming

dan harap di ingat untuk posisi tsb di atas sebaiknya diletakkan sebelum hierarchy_stoplist
kemudian bisa di gabung ke delay_pool juga

delay_class 2 3

delay_access 2 allow warnet striming

delay_access 2 deny all

delay_parameters 2 -1/-1 -1/-1 3000/200000

hasilnya :

Connection: 0x7f1da510

FD 149, read 555, wrote 6508975

FD desc: http://ash-v97.ash.youtube.com/get_video?video_id=YXF72VCyt5M

in: buf 0x7fe65000, offset 0, size 4096

peer: 192.168.0.111:3317

me: 127.0.0.1:3127

nrequests: 1

defer: n 0, until 0

uri http://ash-v97.ash.youtube.com/get_video?video_id=YXF72VCyt5M

log_type TCP_MISS

out.offset 6508872, out.size 6508975

req_sz 555

entry 0x7d24e240/599CDB16D8D8DCB1395E960CD807BD8B

old_entry 0×0/N/A

start 1193286572.113589 (2131.525289 seconds ago)

username -

delay_pool 2 <= terkena delay

untuk delay_pool saya tidak menggunakan domain youtube.com, karena ternyata untuk url streaming nya sebagian hanya menggunakan ip address biasa, sehingga menggunakan regex spt di atas saya rasa lebih efektif.
silakan di eksperimen sendiri untuk regex nya, bisa dg menganalisa access.log atau kalau yg gampang menggunakan sqstat spt yg pernah di post di thread sebelah.

Tinggalkan Balasan

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 / Ubah )

Twitter picture

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

Facebook photo

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

Connecting to %s