KONSEP DASAR PROXY INTERNET - PART 2
Hirarki Cache
Antara cache server bias terjalin saling kerja sama. Protokol “kerja sama” ini bernama Internet Cache Protocol (ICP). Dengan ICP, sistem cache bias mempunyai hirarki. Hirarki dibentuk oleh dua jenis hubungan, yaitu parent dan sibling.
Parent :cache server yang wajib mencarikan content yang diminta oleh klien
Sibling :cache server yang wajib memberikan content yang diminta jika memang tersedia. Jika tidak, sibling tidak wajib untuk mencarikannya
Dari dua hubungannya ini, sistem cache bias didesain secara bertingkat. Misalkan dalam mendesain sebuah ISP atau network kampus, anda bias mempunyai lebih dari satu cache server yang saling sibling satu dengan yang lainnya.
Skenario lainnya misalkan antara cache kantor pusat dan kantor cabang, dimana kantor pusat terletak di gateway internet. Parent kantor pusat selain digunakan network lokalnya, juga dibebani trafik yang berasal dari cache server milik kantor cabang.
TRANSPARENT PROXY
Salah satu kompleksitas dari proxy pada level aplikasi adalah bahwa pada sisi pengguna harus dilakukan konfigurasi yang spesifik untuk suatu proxy tertentu agar bisa menggunakan layanan dari suatu proxy server. Bila diinginkan agar pengguna tidak harus melakukan konfigurasi khusus, kita bisa mengkonfigurasi proxy/cache server agar berjalan secara benar-benar transparan terhadap pengguna (transparent proxy). Biasanya cara ini memerlukan bantuan dan konfigurasi aplikasi firewall (yang bekerja pada layer network) untuk bisa membuat transparent proxy yang bekerja pada layer aplikasi.
Transparent proxy dapat berguna untuk “memaksa pengguna” menggunakan proxy/cache server, karena pengguna benar-benar tidak mengetahui tentang keberadaan proxy ini, dan apapun konfigurasi pada sisi pengguna, selama proxy server ini berada pada jalur jaringan yang pasti dilalui oleh pengguna untuk menuju ke internet, maka pengguna pasti dengan sendirinya akan “menggunakan” proxy/cache ini.
Cara membuat transparent proxy adalah dengan membelokkan arah (redirecting) dari paket-paket untuk suatu aplikasi tertentu, dengan menggunakan satu atau lebih aturan pada firewall/router. Hal ini bisa dilakukan karena setiap aplikasi berbasis TCP akan menggunakan salah satu port yang tersedia, dan firewall dapat diatur agar membelokkan paket yang menuju ke port layanan tertentu, ke arah port dari proxy yang bersesuaian.
Sebagai contoh, pada saat klient membuka hubungan HTTP (port 80) dengan suatu web server, firewall pada router yang menerima segera mengenali bahwa ada paket data yang berasal dari klien dengan nomor port 80. Disini kita juga mempunyai satu HTTP proxy server yang berjalan pada port 3130. Maka pada firewall router kita buat satu aturan yang menyatakan bahwa setiap paket yang datang dari jaringan lokal menuju ke port 80 harus dibelokkan ke arah alamat HTTP proxy server port 3130. Akibatnya, semua permintaan web dari pengguna akan masuk dan diwakili oleh HTTP proxy server diatas.
Jadi secara umum keuntungan dari metode transparent proxy itu sendiri adalah :
1. Kemudahan administrasi jaringan, dengan artian browser yang digunakan klien tidak harus dikonfigurasi secara khusus yang menyatakan bahwa mereka menggunakan fasilitas proxy yang bersangkutan.
2. Sentralisasi kontrol, dengan artian, pergantian metode bypass proxy maupun penggunaan proxy oleh klien dapat dilakukan secara terpusat.
SQUID WEB PROXY/CACHE
Salah satu contoh aplikasi proxy/cache server adalah Squid. Squid dikenal sebagai aplikasi proxy dan cache server yang handal. Pada pihak klien bekerja apliaksi browser yang meminta request http pada port 80. Browser ini setelah dikonfigurasi akan meminta content, yang selanjutnya disebut object, kepada cache server, dengan nomor port yang telah disesuaikan dengan milik server, nomor yang dipakai bukan port 80 melainkan port 8080 3130 (kebanyakan cache server menggunakan port itu sebagai standarnya).
Pada saat browser mengirimkan header permintaan, sinyal http request dikirimkan ke server. Header tersebut diterima squid dan dibaca. Dari hasil pembacaan, squid akan memparsing URL yang dibutuhkan, lali URL ini dicocokkan dengan database cache yang ada.
Database ini berupa kumpulan metadata (semacam header) dari object yang sudah ada didalam hardisk. Jika ada, object akan dikirimkan ke klien dan tercatat dalam logging bahwa klien telah mendapatkan object yang diminta. Dalam log kejadian tersebut akan dicatat sebagai TCP_HIT. Sebaliknya, jika object yang diminta ternyata tidak ada, squid akan mencarinya dari peer atau langsung ke server tujuan. Setelah mendapatkan objectnya, squid akan menyimpan object tersebut ke dalam hardisk. Selama dalam proses download object ini dinamakan “object in transit” yang sementara akan menghuni ruang memori. Dalam masa download tadi, object mulai dikirimkan ke klien dan setelah selesai, kejadian ini tercatat dalam log sebagai TCP_MISS.
Hubungan antar cache atau nantinya disebut peer itu sendiri ada dua jenis, yaitu parent dan sibling. Sibling kedudukannya saling sejajar dengan sibling lainnya, sedangkan parent adalah berada diatas sibling, dua jenis peer ini yang selanjutnya akan bergandengan membentuk jaringan hirarki cache
ICP sebagai protokol cache berperan dalam menanyakan ketersediaan object dalam cache. Dalam sebuah jaringan sebuah cache yang mempunyai sibling, akan mencoba mencari yang dibutuhkan ke peer sibling lainnya, bukan kepada parent, cache akan mengirimkan sinyal icp kepada sibling dan sibling membalasnya dengan informasi ketersediaan ada atau tidak. Bila ada, cache akan mencatatkan ICP_HIT dalam lognya. Setelah kepastian object bias diambil dari sibling, lalu cache akan mengirimkan sinyal http ke sibling untuk mengambil object yang dimaksud. Dan setelah mendapatkannya, cache akan mencatat log SIBLING_HIT.
Jika ternyata sibling tidak menyediakan object yang dicari, cache akan memintanya kepada parent. Sebagai parent, ia wajib mencarikan object yang diminta tersebut walaupun ia sendiri tidak memilikinya (TCP_MISS). Setelah object didapatkan dari server origin, object akan dikirimkan ke cache child tadi, setelah mendapatkannya cache child akan mencatatnya sebagai PARENT_HIT.
Konfigurasi, penggunaan dan metode Squid
Konfigurasi-konfigurasi mendasar squid antara lain :
1. http_port nomor port.
Ini akan menunjukkan nomor port yang akan dipakai untuk menjalankan squid. Nomor port ini akan dipakai untuk berhubungan dengan klien dan peer.
2. icp_port nomor port.
Ini akan menunjukkan nomor port yang akan dipakai untuk menjalankan squid. Nomor port ini akan dipakai untuk berhubungan dengan klien dan peer.
3. cache_peer nama_peer tipe_peer nomor_port_http nomor_port_icp option.
Sintask dari cache peer ini digunakan untuk berhubungan dengan peer lain, dan peer lain yang dikoneksikan ini tipenya bergantung dari tipe peer yang telah dideklarasikan ini, bias bertipe sibling maupun bertipe parent,dan port yang digunakan untuk hubungan ICP maupun HTTP juga dideklarasikan disini, sedangakan untuk parameter option disini ada bermacam-macam salah satunya adalah default yang berarti dia adalah satu-satunya parent yang harus dihubungi (jika bertipe parent) dan proxy-only yang berarti bahwa object yang dipata dari peer tersebut tidak perlu disimpan dalam hardisk local.
4. Dead_peer_timeout jumlah_detik seconds.
Masing-masing peer yang telah didefinisikan sebelumnya mempunyai waktu timeout sebesar yang ditentukan dalam konfigurasi ini, Jika peer tidak menjawab kiriman sinyal ICP dalam batas waktu yang telah ditentukan, peer akan dianggap tidak akan dapat dijangkau, dan cache server tidak akan mengambil object dari server yang bersangkutan dalam interval waktu tertentu.
5. Hierarcy_stoplist pola1 pola2
Sintaks ini digunakan untuk menyatakan apa yang harus tidak diminta dari peer, melainkan harus langsung dari web server origin, jika pola1 dan pola 2 adalah parameter cgi-bin, ?, dan lain-lain maka jika ada request URL yang mengandung karakter tersebut maka akan diambilkan langsung ke server origin.
6. Cache_mem jumlah_memori (dalam bytes)
Sintaks ini akan menentukan batas atas jumlah memori yang digunakan untuk menyimpan antara lain : intransit object yaitu object yang dalam masa transisi antara waktu cache mendownload sampai object disampaikan ke klien, dan hot object, yaitu object yang sering diakses.
7. Cache_swap_low/high jumlah (dalam persen)
Squid akan menghapus object yang ada didalam hardisknya jika media tersebut mulai penuh. Ukuran penuh ini yang diset pada cache_swap_low dan cache_swap_high. Bila batas swap_low telah tercapai maka squid mulai menghapus dan jika batas swap_high tercapai maka squid akan semakin sering menghapus.
8. Cache_dir jenis_file_sistem direktori kapasitas_cache dir_1 jumlah dir_2
Sintaks ini akan menjelaskan direktori cache yang dipakai, pertama adalah jenis file sistemnya, lalu didirektori mana cache tersebut akan disimpan, selanjutnya ukuran cache tersebut dalam MegaBytes lalu jumlah direktori level 1 dan direktori level 2 yang akan digunakan squid untuk menyimpan objectnya.
sumber : http://www.te.ugm.ac.id/~risanuri
Recent Comments