Mengatur bandwidth download dengan squid delay pool

Sabtu, 09 Juli 2011

Mengatur bandwidth download dengan squid delay pool
By Henry Saptono (boypyt@gmail.com)
Aug 2008
Mau memberikan jaminan download file dari internet yang “fair”  ? coba gunakan fitur delay pool yang
disediakan oleh squid (proxy server). Delay pool dapat Anda jadikan sebagai cara termudah bagi Anda
dalam mengelola bandwidth internet pada kantor atau warnet Anda, 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 Anda.
Layanan akses internet yang cukup populer adalah layanan akses web (http), bisa dikatakan saat ini
hampir sebagian aplikasi berjalan dalam environment web, sehingga perlu perlakukan yang khusus untuk
layanan web(http) ini. Penggunan internet di warnet umumnya mereka mengakses berbagai aplikasi dan
layanan di internet melalui layanan http ini, 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 didalam jaringan Anda  yang memakan bandwidth dengan 'rakus' dikarenakan dia mendownload
suatu file atau menonton video di youtube dan lain­lain. Tentunya hal tersebut dapat Anda atur, salah
satunya menerapkan web caching dengan proxy server seperti squid (http://www.squid­cache.org), dan
jaminan kualitas download file yang adil dapat didukung dengan memanfaatkan fitur delay pool yang ada
di squid.
Dalam tulisan kali ini penulis akan menjelaskan bagaimana membangun sebuah proxy server dengan
squid untuk memberikan atau menyediakan web caching dan pengaturan bandwidth download file via
http. Harapannya adalah terciptanya jaringan akses internet yang berkualitas dan terjamin bagi kantor
atau warnet Anda. Dalam tulisan ini penulis menggunakan sistem operasi Linux distro CentOS 5, dan
software squid yang digunakan adalah bawaan distro CentOS yaitu squid­2.6.STABLE6­3.el5.
Diasumsikan sistem operasi linux CentOS sudah Anda install dan software squid sudah Anda install juga
saat instalasi linux, namun jika squid belum terinstall maka Anda dapat lakukan instalasi dengan yum
atau manual seperti berikut ini:
  # ym install squid
atau
  # rpm -ivh /media/cdrom/CentOS/squid-2.6.STABLE6-3.el5.i386.rpmI. Skenario
Agar memudahkan penjelasan maka penulis membuat skenario jaringan LAN sebagai berikut:
● Koneksi internet jaringan menggunakan ADSL dengan downlink 512kbps (512 kilo bit per
second)
● Komputer yang bertindak sebagai proxy server adalah komputer yang juga berperan sebagai
gateway (internet sharing) pada jaringan LAN. Komputer ini memiliki dua buah network
interface, yaitu eth0 dan eth1. Network interface eth0 terhubung dengan modem ADSL,
sedangkan eth1 terhubung dengan hub atau switch LAN. Network Address LAN adalah
192.168.1.0/24.
● Konfigurasi proxy yang akan diterapkan adalah transparent proxy, dengan skenario pengaturan
bandwidth download file adalah setiap komputer dalam jaringan diatur agar bandwidth download
via http sebesar sekitar 16KBps(16 kilo byte per second), dengan maximum bucket 64KBps.
II. Konfigurasi Internet sharing (gateway)
Langkah konfigurasi pertama adalah mengkonfigurasi komputer bakal proxy server sebagai internet
sharing (gateway), yaitu sebagai berikut:
■ Enbale IP Forwarding
# echo 1 > /proc/sys/net/ipv4/ip_forward
          atau edit file /etc/sysctl.conf, dan set parameter “net.ipv4.ip_forward=1”
■ Enable IP Masquerade
Diasumsikan default policy firewall Anda adalah ACCEPT, dan tidak ada rule spesifik apapun
pada konfigurasi firewall di komputer proxy server sebelumnya.
# service iptables stop
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j
MASQUERADE
■ Rule iptables untuk mendukung Transparent proxy
# iptables -t nat -A PREROUTING -p tcp -s 192.168.1.0/24 –dport 80 -j
REDIRECT –to-ports 3128
# service iptables save
# chkconfig iptables on    Rule firewall tersebut akan menyebabkan setiap koneksi dari LAN dengan port tujuan 80 kemanapun
akan di arahkan ulang sehingga menuju local process pada komputer gateway(proxy server) yaitu proses
yang berjalan pada port 3128 (squid).
III. Konfigurasi squid standar
Langkah selanjutnya adalah konfigurasi squid, secara default konfigurasi squid akan memblok semua
koneksi dari jaringan LAN ke internet. Untuk itu kita harus melakukan konfigurasi ulang  dengan
mengedit file /etc/squid/squid.conf. Beberapa parameter konfigurasi squid yang sebelumnya perlu Anda
setup diantaranya adalah parameter berikut ini:
● visible_hostname : parameter ini mendefinisikan nama komputer proxy server Anda , nilai
default parameter ini tidak diset. Terkadang pengguna awam sering menjumpai squid errror
dikarenakan parameter ini tidak diset dan squid mencoba menggunkan nama hostname komputer
Anda yang ternyata hostname nya tidak ditulis lengkap dengan nama domain. parameter ini dapat
diisi dengan nama komputer yang dilengkapi dengan nama domain. Misalnya sebagai berikut:
  visible_hostname proxy.coba.co.id
● http_port: parameter ini menunjukkan nomor port service squid. Nilai defaultnya dalah 3128.
Jika Anda ingin menerapkan transparent proxy maka nilai parameter ini harus diset sebagai
berikut:
   http_port 3128 transparent
● acl: parameter ini digunakan untuk mendefinisikan access control list format penulisannya
sebagai berikut:
acl [
     Dalam konfigurasi squid yang kita skenariokan , Anda harus membuat sebuah acl yang
menunjukkan jaringan local Anda, Sebaiknya definisi acl ini Anda tulis pada file konfigurasi squid yaitu
dibawah baris yang bertuliskan #INSERT YOUR OWN RULE HERE(S) ......., seperti berikut ini:
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
acl lan src 192.168.1.0/24
● http_access: parameter ini menunjukkan rule yang akan diterapkan pada suatu access control list.
Untuk skenario kita maka Anda harus mendefinisikan rule yang akan mengijinkan LAN Anda
untuk dapat mengakses internet (tulis rule tersebut dibagian bawah dari pendefinisian acl ),
seperti berikut ini:
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
acl lan src 192.168.1.0/24
http_access allow lanIV. Konfigurasi squid delay pool
Untuk mengatur bandwidth download sesuai skenario yaitu menyediakan bandwidth download untuk
setiap host dalam LAN sebesar 16KBps dan maksimal bucket 64KBps, maka beberapa parameter
konfigurasi squid yang berkaitan dengan delay pool yang harus Anda set  adalah sebagai berikut (edit file
/etc/squid/squid.conf):
● delay_pool: parameter ini menentukan ada berapakah pool yang akan Anda terapkan. Misalnya
dalam skenario kita ini hanya akan dibuat sebuah pool, maka konfigurasinya sebagai berikut:
delay_pool 1
● delay_class: parameter ini mendefinisikan class untuk setiap pool yang ada. Setiap pool harus
memiliki sebuah class (delay_class) tidak lebih dan tidak kurang. Jadi kalau Ada 2 delay pool
maka harus ada 2 delay_class. Class delay pool terdiri dari 3 class, yaitu :
■ class 1 : untuk delay pool dengan class ini maka semuanya dibatasi dengan single bucket
agregate. Setiap class harus berasosiasi dengan single bucket agregate. Single bucket
agregtae ini adalah bandwidth yang diasosiasikan dengan setiap class.
■ Class 2: untuk delay pool dengan class ini maka semuanya dibatasi dengan single bucket
agregate, dan suatu “individual” bucket untuk stiap host atau komputer dalm jaringan
class C.
■  Class 3: untuk delay pool dengan class ini maka semuanya dibatasi dengan single bucket
agregate, dan “networke” bucket untuk setiap network class C, serta suatu individual
bucket untuk stiap host atau komputer dalm jaringan class C. Untuk class 3 ini biasanya
digunakan jika LAN Anda terdiri dari beberapa segment jaringan class C.
Untuk konfigurasi delay_class yang sesuai dengan skenario kita adalah seperti berikut ini:
delay_class 1 2
● delay_access: parameter ini menentukan suatu request ke proxy server harus diletakkan pada
delay pool yang mana. Konfigurasi delay_access yang sesuai dengan skenario kita adalah seperti
berikut ini:
delay_access 1 allow lan
     delay_access 1 deny all● delay_parameters: parameter ini mendefinisikan parameter ­parameter untuk suatu delay pool.
Format penulisan parameter delay_parameters adalah sebagai berikut:
delay_parameter [] []
Untuk skenario kita maka nilai delay_parameters nya sebagai berikut:
delay_parameters 1 -1/-1 16000/64000
catatan: ­1/­1 berarti bandwidth untuk aggregate nya diset unlimited (sesuai dengan bandwidth internet
yang tersedia dari ISP). 16000(16KBps) adalah total bandwidth rata­rata yang bakal diperloleh setiap host
dalam LAN, dan 64000(64KBps) adalah nilai bandwidth maksimum yang dapat tersedia dalam bucket
disetiap saat.
Setelah konfigurasi squid Anda lakukan cobalah Anda restart atau start service squid seperti berikut ini:
# service squid start
# chkconfig squid on
Kemudian coba Anda gunakan web browser di beberapa client dan cobalah Anda download suatu file
diinternet kemudian perhatikan kecepatan download pada window download. Berikut ini gambar ­1, yang
menunjukkan proses download pada suatu komputer ketika mendownload sebuah file (perhatikan
kecepatan perdetiknya sekitar 16KBps), dan juga perhatikan gambar­2 yang menggambarkan kecepatan
saat mendownload 2 buah file bersamaan (perhatikan jika di total kecepatan perdetiknya sekitar 16KBps )
pada suatu host. Gambar­1. Mendownload sebuah fileGambar­2. Mendownload dua buah file

0 komentar:

Posting Komentar