Pada organisasi yang cukup besar, dengan menggunakan Squid sebagai
software untuk proxy server kita bisa membangun sebuah hirarki cache.
Yang dimaksud dengan hirarki di sini adalah beberapa proxy server yang
menjalankan Squid bisa dikonfigurasi sehingga menyerupai suatu struktur
organisasi.
Ada beberapa istilah dalam Squid untuk membangun suatu hirarki cache,
yaitu parent dan sibling (Pada squid versi 1.1.x saja dan pada artikel
ini digunakan software Squid versi 1.1.10). Istilah ini digunakan untuk
menjukkan posisi suatu proxy server relatif terhadap proxy server
lainnya.
Apabila sebuah proxy server (anggap proxy server 1) menjadi parent proxy
server yang lain (anggap proxy 2), maka dia harus mendapatkan objek
yang diminta oleh proxy 2 dengan jalan mentransfer objek yang diminta
dari cache yang dimiliki (apabila objek ada dalam cache), meminta ke
proxy server lain (yang menjadi parent atau sibling dari proxy 1) atau
meminta langsung ke server tujuan (direct) .
Apabila sebuah proxy server (anggap proxy 3) menjadi sibling proxy
server yang lain (anggap proxy 4), maka proxy 4 hanya akan mentransfer
objek yang diminta dari proxy 3 apabila objek yang diminta dimiliki oleh
proxy 4 (dalam cachenya). Bila objek yang diminta tidak terdapat dalam
cache proxy 4, proxy 3 akan menghentikan proses pencarian data pada
proxy 3 dan akan mencari keberadaan objek pada proxy server lain
(sibling atau parent) atau langsung ke server tujuan.
Untuk komunikasi antar proxy server digunakan protokol yang disebut
sebagai ICP (Internet Cache Protocol). Protokol ini digunakan oleh proxy
server untuk mengecek keberadaan suatu objek (dalam dunia proxy data
biasa disebut sebagai objek) pada proxy server lain yang termasuk dalam
hirarki proxy server pada suatu network. Objek itu sendiri dikirim
melalui protokol HTTP. Overview dari cara kerja proxy server yang
menggunakan ICP adalah sebagai berikut :
gambar 1. Komunikasi antar proxy server
Proxy server 1 memberi ICP query yang berisi data tentang keberadaan suatu objek pada proxy server 2.
Berdasarkan permintaan dari porxy server 1, proxy server 2 akan melihat
keberadaan objek yang diminta pada cache data yang telah dimilikinya.
Cache data sendiri berasal dari permintaan pengguna sebelumnya.
Apabila objek yang diminta dimiliki oleh proxy server 2, maka proxy
server 2 akan memberi ICP reply ke proxy server 1 yang berisi petunjuk
bahwa objek yang diminta dimiliki oleh proxy server 2.
Objek yang diminta oleh proxy server 1 akan ditransfer dari proxy server
2 dengan menggunakan protokol HTTP dan data ditransfer ke pengguna
(selain dicache oleh proxy server 1 sendiri).
Apabila objek yang diminta tidak dimiliki oleh proxy server 2, proxy
server 2 akan memberi ICP reply yang berisi petunjuk bahwa objek yang
diminta tidak ada.
Apabila objek yang diminta tidak dimiliki oleh proxy server 2, maka
proxy server 1 akan mengirimkan ICP query ke proxy server lain yang
masih termasuk dalam hirarkinya (parent atau sibling proxy). Sebagai
langkah terakhir, apabila objek tetap tidak dimiliki oleh proxy server
dalam hirarkinya, maka objek akan diminta langsung ke server tujuan
(direct) dan data akan dicache (selain ditransfer ke pengguna yang
meminta).
Hirarki cache pada Squid diatur pada file konfigurasi Squid.conf pada
directive cache_host. Bentuk standar dari directive cache_host adalah
sebagai berikut :
cache_host hostname type http_port icp_port option
Hostname : nomer IP proxy server dalam hirarki atau nama mesin dalam FQDN.
Type : isi sesuai dengan level dari proxy server yaitu parent, neighbor, atau sibling.
Http_port : port di mana server tersebut mendengarkan permintaan protokol HTTP dan FTP dari pengguna.
ICP_port : port server akan mendengarkan (listen) permintaan atau
mengirimkan permintaan keberadaan objek ke server lain dalam hirarki.
Option : ada beberapa option yang bisa digunakan :
proxy-only : data yang didapat dari proxy dengan option ini tidak akan dicache
weight = n : untuk pemilihan preference apabila terdapat multiple
parent, n adalah bilangan integer, makin besar n berarti satu parent
lebih disukai dibandingkan dengan parent yang lain.
ttl=n : untuk memberikan TTL paket ICP query multicast (akan dibahas di bawah)
no-query : untuk tidak memberikan ICP query pada cache server yang disebutkan
default : default parent apabila terdapat multiple parent
multicast-responder : peer yang diberi option ini adalah anggota dari multicast group.
Round-robin : apabila terdapat sejumlah parent, maka parent-parent akan di query secara round-robin/bergantian.
Harap dimengerti bahwa hirarki cache sendiri tidak ditentukan
sepenuhnya oleh letak fisik satu proixy server terhadap proxy server
yang lain, faktor-faktor kondisi dan utilisasi network serta hardware
yang kita miliki menjadi faktor penentu ‘jabatan’ suatu proxy server
dalam hirarki cache. Tingkat kesuksesan hirarki cache yang kita buat
ditentukan oleh hit rate (jumlah objek yang dapat ditransfer dari cache
yang dimiliki proxy server yang ada). Hit rate yang tinggi dapat
mereduksi traffic dari network yang anda miliki ke internet. Hit rate
yang tinggi hanya dapat dicapai melalui perencanaan hirarki cache yang
efisien dan efektif dengan mempertimbangkan kondisi-kondisi yang ada
walaupun behaviour dari pengguna juga sangat menentukan hit rate.
Dari hal di atas dapat kita bentuk berbagai macam pola hubungan proxy
server dalam network yang kita miliki. Bisa kita bentuk hubungan linier
(satu proxy hanya mempunyai hubungan dengan proxy server yang lain),
full-mesh (satu proxy mempunyai hubungan dengan semua proxy server yang
ada), atau pola-pola lain sesuai dengan kondisi network yang anda
miliki.
Untuk memudahkan pengertian kita akan istilah-istilah yang ada, kita gunakan contoh kasus (lihat gambar) :
gambar 2. Contoh kasus dari hirarki cache
ket : nama proxy1, proxy2, proxy3, main_proxy, dan proxy_network
adalah nama untuk memudahkan pengertian kita, dalam pelaksanaannya kita
harus menggunakan nomer IP atau nama FQDN dari server tersebut.
Dari gambar di atas, proxy1 adalah proxy server untuk workgroup 1,
proxy2 adalah proxy server untuk workgroup 2, dan proxy3 adalah proxy
untuk workgroup 3. Proxy network membawahi proxy 2 dan 3.
Ada banyak pola hubungan yang dapat kita buat untuk membuat suatu
hirarki cache dengan kondisi fisik seperti di atas. Sebagai contoh
apabila kita ingin Main Proxy adalah satu-satunya exit point dari semua
traffic HTTP pada network yang anda miliki maka pola hubungan yang dapat
dibuat dapat digambarkan sebagai berikut :
ambar 3. Contoh Pola hirarki cache
Dari Pola di atas, Main Proxy merupakan satu-satunya exit point ke
dunia luar, di sini konfigurasi yang perlu ditambahkan , dengan anggapan
bahwa main proxy terhubung ke proxy server lain di internet (bisa juga
main proxy tidak terhubung ke proxy server lain tapi langsung meminta
objek ke tujuan) dan icp port serta http port semua proxy server adalah
3128 dan 3130, adalah :
cache_host proxy.server.lain parent 3128 3130
Proxy 1 dan proxy network menggunakan Main Proxy sebagai parent dan
proxy 1 serta proxy network sendiri sebagai sibling . Konfigurasi yang
dibutuhkan adalah :
Pada proxy 1
cache_host Main_Proxy parent 3128 3130
cache_host proxy_network sibling 3128 3130
Pada proxy network
cache_host Main_Proxy parent 3128 3130
cache_host proxy_1 sibling 3128 3130
Proxy 2 dan proxy 3 menggunakan proxy network sebagai parent, maka konfigurasi yang dibutuhkan adalah :
Pada proxy 2
cache_host proxy_network parent 3128 3130
Pada proxy 3
cache_host proxy_network parent 3128 3130
Dengan konfigurasi di atas, dapat dibentuk pola seperti pada gambar
3. Selain contoh pola di atas, dapat kita buat pola yang lain. Pada
contoh di atas anda nama host adalah contoh saja, dalam penulisan
konfigurasi sebenarnya harus digunakan nama FQDN.
Pada versi Squid yang baru (mulai versi 1.1.6) , telah ditambahkan
option baru, sehingga paket ICP query dikirimkan secara multicast
melalui IP multicast (walaupun ICP reply dikirimkan secara unicast).
Agar option ini dapat kita jalankan, maka yang kita perlukan adalah
router yang mampu melewatkan paket-paket multicast (contoh : mrouted
pada FreeBSD). Dengan adanya option ini maka kita dapat mengirimkan
paket ICP query ke semua proxy server yang telah bergabung ke group
multicast yang telah kita buat, cara konfigurasinya adalah sebagai
berikut :
Konfigurasi semua proxy server yang akan menerima paket ICP query
multicast untuk bergabung pada satu IP-multicast yang telah kita assign,
dengan mengisi directive ‘mcast_groups’ , contoh :
mcast_groups 224.1.0.18
Proxy server (yang telah dikonfigurasi dengan step 1) yang ingin
mengirimkan paket ICP query multicast, harus menambahkan directive
‘cache_host’, contoh :
cache_host 224.1.0.18 multicast 3128 3130 ttl=10
harap diingat bahwa port icp harus diisi dengan benar dan sama dengan
port icp semua proxy yang bergabung dalam grup multicast ini, sehingga
semua paket ICP query multicast dapat diterima oleh semua proxy server
yang bergabung.
Karena ICP reply hanya dikirimkan secara unicast, maka kita harus
menyebutkan proxy server-proxy server yang kita harapkan akan
mengirimkan ICP reply, dengan menambahkan option multicast-responder.
Sebagai contoh :
cache_host contoh.itb.ac.id sibling 3128 3130 multicast-responder
cache_host contoh2.itb.ac.id sibling 3128 3130 multicast-responder
CARA KONEKSI DENGAN PARENT/SIBLING YANG TIDAK MENSUPPORT ICP
Apabila salah satu proxy server dalam hirarki cache tidak mensupport
ICP, maka hal yang harus anda lakukan adalah menjalankan port echo UDP
(UDP echo port) pada server yang tidak mensupport ICP . Squid tidak
membedakan antara neighbor dan parent pada neighbor/parent yang tidak
mensupport ICP.
Khusus untuk server yang tidak mensupport ICP, maka field icp_port pada
cache_host harus diisi 7 (sesuai dengan port UDP echo pada server)
PROXY SERVER YANG BISA DIKONEKSIKAN DENGAN SQUID
Di bawah ini adalah daftar beberapa proxy server yang bisa dikoneksikan dengan Squid :
Harvest
Netscape (karena tidak mensupport ICP maka lakukan cara seperti di atas)
Untuk saat ini proxy server dari microsoft tidak dapat dikoneksikan dengan Squid.
Demikian ilustrasi singkat untuk membangun suatu hirarki cache dengan
menggunakan Squid, informasi lebih lanjut dapat dilihat pada http://www.nlanr.net/Squid
sumber : http://www.servernux.com/index.php?option=com_content&task=view&id=6&Itemid=26
MEMBANGUN HIRARKI CACHE DGN SQUID
Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]
Mohon Aktifkan Javascript![ Enable JavaScript ]
0 comments:
Post a Comment