Manajemen Jaringan
BANDWIDTH MANAGEMENT USING SQUID
Disusun Oleh :
Anis Fagustina M0509010
Jurusan Informatika
Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Sebelas Maret
Surakarta
2012
Pengenalan tentang Squid
Squid adalah proxy caching untuk Web mendukung
HTTP, HTTPS, FTP, dan banyak lagi. Ini mengurangi bandwidth dan meningkatkan
waktu respon dengan caching dan menggunakan kembali halaman web yang sering
diminta. Squid memiliki kontrol akses yang luas dan membuat akselerator server
besar. Ini berjalan pada kebanyakan sistem operasi yang tersedia, termasuk
Windows dan berlisensi di bawah GNU GPL.
Squid digunakan oleh ratusan Internet Provider di
seluruh dunia untuk memberikan pengguna mereka dengan akses web terbaik. Squid
mengoptimalkan aliran data antara klien dan server untuk meningkatkan kinerja
dan cache konten yang sering digunakan untuk menghemat bandwidth. Squid juga
dapat permintaan konten rute ke server dalam berbagai cara untuk membangun
hirarki cache server yang mengoptimalkan throughput jaringan.
Konten Situs Web Percepatan dan Distribusi
Konten Situs Web Percepatan dan Distribusi
Ribuan situs web di Internet menggunakan Squid
untuk secara drastis meningkatkan pengiriman konten mereka. Squid dapat
mengurangi beban server dan meningkatkan kecepatan pengiriman ke klien. Squid
juga dapat digunakan untuk menyampaikan konten dari seluruh dunia - hanya
menyalin konten yang digunakan, bukan tidak efisien menyalin semuanya.
Akhirnya, maju konten Squid di konfigurasi routing memungkinkan untuk membangun
cluster konten permintaan keseimbangan rute dan beban melalui berbagai server
web.
"[The Squid sistem] yang saat ini berjalan
pada tingkat tabrak sekitar 75%, efektif empat kali lipat kapasitas server
Apache di belakang mereka ini sangat terlihat ketika gelombang besar lalu
lintas tiba diarahkan ke halaman tertentu melalui link web. dari situs lain,
sebagai efisiensi caching untuk halaman tersebut akan hampir 100% "-.
Wikimedia Informasi Deployment.
Proyek Squid menyediakan sejumlah sumber daya untuk membantu desain pengguna, menerapkan dan mendukung instalasi squid. Silahkan menelusuri bagian Dokumentasi dan Dukungan untuk informasi lebih lanjut.
Pengenalan
tentang Delay poolProyek Squid menyediakan sejumlah sumber daya untuk membantu desain pengguna, menerapkan dan mendukung instalasi squid. Silahkan menelusuri bagian Dokumentasi dan Dukungan untuk informasi lebih lanjut.
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.
Fitur delay
pool yang disediakan oleh squid (proxy server) dapat dijadikan sebagai
cara termudah dalam mengelola bandwidth internet pada kantor atau
warnet. Meskipun hanya sebatas mengatur bandwidth download file via http atau
ftp, ternyata delay pool dapat memberikan layanan jaringan yang lebih
berkualitas bagi jaringan dikantor atau warnet. Penggunan internet di warnet
umumnya pengunjung mengakses berbagai aplikasi dan layanan di internet melalui
layanan http, mereka mendownload file melalui layanan http , sehingga bagi
sebuah warnet pengaturan traffic download file lewat http ini sangat penting
agar seluruh penggunan memperoleh kualitas jaringan yang baik dan
terjamin.
Tidak boleh
ada seorang atau beberapa pengguna internet di dalam jaringan yang memakan
bandwidth dengan ‘rakus’ dikarenakan mendownload suatu file atau menonton
video di youtube dan lain-lain. Tentunya hal tersebut dapat diatur,
salah satunya menerapkan web caching dengan proxy server seperti squid
(http://www.squidcache.org), dan jaminan kualitas download file yang adil
dapat didukung dengan memanfaatkan fitur delay pool yang ada di squid.
Pembatasan
bandwidth dengan cara konfigurasi squid serta access-list di dalamnya, ternyata
tidak sesulit yang dibayangkan. Langkah termudah yang harus dilakukan adalah
identifikasi jaringan terlebih dahulu. Apakah jaringan tersebut sudah memiliki
server, berapa PC yang dikelola server atau yang akan dikelola, berapa
bandwidth yang diterima dari ISP (contoh: speedy), berapa bandwidth yang akan
dibatasi beserta keterangannya, dan peralatan apa saja yang ada di dalam
jaringan? (wireless, access-point, router, switch).
Langkah-langkah konfigurasi
Berikut
adalah penjelasan langkah-langkah bagaimana cara mengkonfigurasikan proxy
server untuk membatasi bandwidth download atau incoming traffic di squid.
1.
Pertama-tama memeriksa
apakah squid telah berjalan di server dan telah dikonfiguraisi sebagai mesin
proxy server.
a)
Mengaktifkan
squid, dengan perintah: squid –D
b)
Cek squid dengan
mengetik: squid
c)
Sebelum semua
dilakukan, jangan lupa menjadi root terlebih dahulu
d)
Buka squid.conf
di /etc/squid/squid.conf
e)
Baru kemudian
melanjutkan pengaturan tambahan yang kita inginkan
2.
Sebelum memulai
memanajemen bandwidth di squid, kita jelaskan dulu komponen-komponen manajement
bandwidth di squid :
access-list... tempat mendeklarasikan
daftar akses yang akan diatur.
Ø delay_pools
Opsi ini untuk menspesifikasi berapa jumlah pool yang digunakan untuk membatasi jumlah bandwidth dari ACL. Opsi ini akan dirangkaikan bersama opsi delay_class dan delay_parameters yang akan dibahas di bawah ini.
Opsi ini untuk menspesifikasi berapa jumlah pool yang digunakan untuk membatasi jumlah bandwidth dari ACL. Opsi ini akan dirangkaikan bersama opsi delay_class dan delay_parameters yang akan dibahas di bawah ini.
Ø delay_class
Opsi ini menspesifikasikan penentuan kelas/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.
Opsi ini menspesifikasikan penentuan kelas/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. Contoh : 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. Contoh : 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. Contoh : bandwidth tersedia
512 kb, untuk browsing disediakan bandwidth 384 kb, sisanya untuk aktifitas
lain.
Ada tiga
class yang didukung Squid, antara lain:
ü class 1: Semua akses dibatasi dengan
single bucket, artinya hanya bisa mendefinisikan overall bandwidth untuk suatu
ACL saja, tidak bisa mendefinisikan bandwidth dengan lebih mendetail
ü class 2: Semua akses dibatasi dengan
single agregate dengan dua parameter bandwidth. Parameter pertama
mendefinisikan berapa bandwidth maksimal yang didapatkan ACL, parameter kedua
mendefinisikan berapa bandwidth overall untuk ACL yang spesifik yang ada pada
network tersebut.
ü class 3: Kelompok yang definisi
bandwidth-nya paling mendetail. Parameter pertama mendefinisikan berapa
bandwidth maksimal yang didapatkan ACL, parameter kedua mendefinisikan berapa
bandwidth normal yang didapatkan ACL secara umum, dan parameter yang ketiga
adalah mendefinisikan bandwidth yang didapatkan ACL jika mengakses ACL-ACL
tertentu yang spesifik, misalnya file mp3.
Ø delay_parameters
Opsi ini menspesifikasikan rumus bandwidth yang akan didapatkan oleh ACL yang akan memasuki delay_pool. 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.
Opsi ini menspesifikasikan rumus bandwidth yang akan didapatkan oleh ACL yang akan memasuki delay_pool. 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
1 byte = 8 bit. SpesialCase: -1/-1 berarti unlimited atau tidak dibatasi pada nilai restore/max
Misalnya ada entry berikut ini pada
delay_parameters:
delay_parameters 1 -1/-1 2100/4000
Angka 1 berarti rumus ini berlaku untuk pool 1. Angka -1/-1
berarti bandwidth maksimal yang diberikan Squid adalah tidak terbatas untuk
pool ini.
Angka 2100/4000 berarti bandwidth yang didapatkan oleh ACL setelah masuk ke pool ini. Angka ini berada dalam kelipatan 8 b, sehingga untuk mendapatkan nilai bandwidth yang sebenarnya harus dikalikan delapan. Angka 2100 adalah bandwidth yang didapatkan ACL pada masa-masa normal. Jika dikalikan 8, maka bandwidth normal yang akan didapatkan ACL sekitar 18 Kbps. Angka 4000 adalah bandwidth maksimal yang didapatkan ACL pada masa-masa jalur sedang kosong. Jika dikalikan 8, maka bandwidth yang didapatkan sekitar 32 Kbps.
Angka 2100/4000 berarti bandwidth yang didapatkan oleh ACL setelah masuk ke pool ini. Angka ini berada dalam kelipatan 8 b, sehingga untuk mendapatkan nilai bandwidth yang sebenarnya harus dikalikan delapan. Angka 2100 adalah bandwidth yang didapatkan ACL pada masa-masa normal. Jika dikalikan 8, maka bandwidth normal yang akan didapatkan ACL sekitar 18 Kbps. Angka 4000 adalah bandwidth maksimal yang didapatkan ACL pada masa-masa jalur sedang kosong. Jika dikalikan 8, maka bandwidth yang didapatkan sekitar 32 Kbps.
Ø delay_access
Opsi ini mendefinisikan siapa-siapa ACL yang akan dimasukkan ke pool tertentu untuk mendapatkan “perlambatan” bandwidth. Bentuk umumnya adalah seperti ini:
Opsi ini mendefinisikan siapa-siapa ACL yang akan dimasukkan ke pool tertentu untuk mendapatkan “perlambatan” bandwidth. Bentuk umumnya adalah seperti ini:
delay_access 1 allow labprog
Opsi di atas berarti kita memasukkan ACL labprog ke dalam
pool 1.
3. Jika sudah mengerti komponen-komponen
delay pool, kita mulai konfigurasi delay pool .
Di umpamakan kita mempunyai bandwidth
dari ISP sebesar 512kb, dan kita membuat rule seperti berikut ini:
Batas kecepatan koneksi overall adalah 256 Kbps. per-network
adalah 64 kbps. Sedangkan per-user/host dibatasi 2 Kbps jika digunakan untuk
download file bertipe exe, mp3, vqf, tar.gz, gz, rpm, zip, rar, avi, mpeg, mpe,
mpg, qt, ram, rm, iso, raw, dan wav. Jika tidak, maka koneksi perhost HANYA
mengikuti aturan per-Network saja.
Penyelesaian:
Edit file /etc/squid/squid.conf
#vi /etc/squid/squid.conf
Lalu
tambahkan contoh konfigurasi ini:
# Sebelum kita melakukan pembatasan, kita perlu mendefinisikan ACL network # # yang kita perlukan terlebih dahulu. ACL yang didefinisikan pada host bridge
# seperti di bawah ini:
# Sebelum kita melakukan pembatasan, kita perlu mendefinisikan ACL network # # yang kita perlukan terlebih dahulu. ACL yang didefinisikan pada host bridge
# seperti di bawah ini:
acl lokal src 192.168.1.0/24
#artinya
access-list yang bernama "lokal" dengan ip "192.168.1.0" didaftarkan.
#ada
juga yang melakukan tambahan konfigurasi sebagai berikut :
#http_access : akses terhadap http
port 80 (biasanya). mengizinkan acl yang akan
#dideklarasikan
untuk membuka port 80
#contoh: http_access allow lokal
#artinya acl "lokal" diizinkan membukan port 80 atau browsing internet.
#contoh: http_access allow lokal
#artinya acl "lokal" diizinkan membukan port 80 atau browsing internet.
#tidak
semua access-list bisa diizinkan untuk membuka port 80, untuk mengantisipasi
#user/
klien yang bande, kita bisa mem-band access-list atau pc-klien tersebut.
# cara
yang cukup efektif tersebut seerti contoh berikut : http_access deny local
#artinya
tidak bisa ikut serta membuka port 80
#
Kemudian kita membatasi maksimum download dengan tag di bawah ini:
# Batas kecepatan koneksi overall adalah 256 Kbps. per-network adalah
# 64 kbps. Sedangkan per-user/host dibatasi 2 Kbps jika digunakan untuk
# download file bertipe exe, mp3, vqf, tar.gz, gz, rpm, zip, rar, avi,
# mpeg, mpe, mpg, qt, ram, rm, iso, raw, dan wav. Jika tidak, maka
# koneksi perhost HANYA mengikuti aturan per-Network saja.
# Batas kecepatan koneksi overall adalah 256 Kbps. per-network adalah
# 64 kbps. Sedangkan per-user/host dibatasi 2 Kbps jika digunakan untuk
# download file bertipe exe, mp3, vqf, tar.gz, gz, rpm, zip, rar, avi,
# mpeg, mpe, mpg, qt, ram, rm, iso, raw, dan wav. Jika tidak, maka
# koneksi perhost HANYA mengikuti aturan per-Network saja.
acl filegede url_regex -i \.exe
acl filegede url_regex -i \.mp3
acl filegede url_regex -i \.vqf
acl filegede url_regex -i \.gz
acl filegede url_regex -i \.rpm
acl filegede url_regex -i \.zip
acl filegede url_regex -i \.rar
acl filegede url_regex -i \.avi
acl filegede url_regex -i \.mpeg
acl filegede url_regex -i \.mpe
acl filegede url_regex -i \.mpg
acl filegede url_regex -i \.qt
acl filegede url_regex -i \.ram
acl filegede url_regex -i \.rm
acl filegede url_regex -i \.iso
acl filegede url_regex -i \.raw
acl filegede url_regex -i \.wav
# Kita buat dulu ACL untuk mendefinisikan file-file di atas dengan menggunakan # regularexpression. Kemudian kita mendefinisikan 2 delay pool untuk
# menampung bandwidth.
# Satu pool masuk dalam kategori class 2 untuk mendefinisikan aturan overall
# 256 Kbps dan per-network 64 Kbps. Satu pool lainnya masuk kategori class 3
# untuk mendefinisikan aturan tambahan jika user mendownload file-file yang
#didefinisikan dalam ACL url_regex dengan bandwidth maksimal 2 Kbps.
delay_pools 2
#artinya ada dua pools atau kelas
dengan dua akses kecepatan yang berbeda
delay_class 1 3
#artinya
delay kelas pertama dengan pengaturan bandwidth hanya tiga jenis kecepatan
delay_parameters 1 32000/32000
8000/8000 250/250
#artinya
pada kelas pertama terdapat tiga jenis kecepatan yang diatur, dan besarnya
#bandwidth
yang diatur atau yang diberikan masing-masing mencapai 32000/32000
#8000/8000
250/250. Seperti pada 32000/32000,itu berarti 32000 yang pertama
#berarti
kecepatan bandwidth target yang harus dicapai. Sedangkan 32000 yang kedua
#adalah
target bandwidth yang bisa dipenuhi kalau jaringan lagi bagus
delay_access 1 allow lokal filegede
#artinya pada kelas akses 1 (pertama) dengan parameter 1
(pertama) akses klien
# yang terdaftar pada acl dengan nama "local
filegede" diperbolehkan
# menggunakan bandwith sebesar parameter sebelumnya.
delay_access 1 deny all
#artinya selain akses list yang
didaftarkan diatas. Semua IP yang tidak terdaftar
# tidak diperbolehkan
mengakses internet.
#tapi,
ada baiknya pula membuat acl seperti dibawah ini terlebih dahulu:
#acl all src 0.0.0.0/0.0.0.0 artinya semua IP versi 4 didaftarkan.
delay_class 2 2
delay_parameters 2 32000/32000
8000/8000
delay_access 2 allow local
delay_access 2 deny all
Jika sudah selesai, check apakah ada error, kalau tidak ada error, simpan hasil konfigurasi dan restart
squid
#
squid3 -k check
#/etc/init.d/squid restart
4. Testing download dengan download
manager yg sukai (IDM, FlashGet, GetRight, DownThemAll) dan perhatikan download
rate-nya apakah sudah sesuai dengan setting yg diterapkan. Pada saat yang sama lakukan
browsing2 website lain, untuk meyakinkan bahwa alokasi b/w untuk BROWSING
sebesar 512kb
masih bisa digunakan.
Berikut
adalah contoh kasus yang berbeda lainnya yang masih mengkonfigurasi squid yang
bisa dicoba.
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
* 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 kantor 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
acl admin src 192.168.1.250/255.255.255.255
acl server src 192.168.1.251/255.255.255.255
acl kantor 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_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_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
delay_parameters 3 1000/32000
delay_access 3 allow umum
delay_access 3 deny all
>>> ane ucapin makasih buat sumber referensi yang telah banyak membantu dalam pemberian informasi :)