Anda di halaman 1dari 14

9/19/2015

Konsep Proxy - SpeedyWiki

KonsepProxy
FromSpeedyWiki
Sumber:
Kuliah Jaringan Komputer Ir. Risanuri Hidayat, M.Sc.(TE UGM)
http://www.te.ugm.ac.id/~risanuri/jarkom/index.html

Contents
1KONSEPDASARPROXY
2PROXY,GATEWAYDANFIREWALL
3PENDEKATANLAYEROSI
4CACHING
5HIRARKICACHE
6TRANSPARENTPROXY
7SQUIDWEBPROXY/CACHE
7.1Konfigurasi,penggunaandanmetodeSquid
7.2ACL(AccessControlList)
7.3Peering
7.4ObjectCache
7.5Kapasitashardiskcache
7.6Memori
8PROXYSERVERLAYERNETWORK
9PROXYSERVERPADALEVELSIRKUIT

KONSEPDASARPROXY
Proxydapatdipahamisebagaipihakketigayangberdiriditengahtengahantarakeduapihakyangsaling
berhubungandanberfungsisebagaiperantara,sedemikiansehinggapihakpertamadanpihakkeduatidak
secaralangsungberhubungan,akantetapimasingmasingberhubungandenganperantara,yaituProxy.
Sebuahanalogibilaseorangmahasiswameminjambukudiperpustakaan,kadangsimahasiswatidak
diperbolehkanlangsungmencaridanmengambilsendiribukuyangkitainginkandarirak,tetapikita
memintabukutersebutkepadapetugas,tentusajadenganmemberikannomorataukodebukunya,dan
kemudianpetugastersebutyangakanmencarikandanmengambilkanbukunya.Dalamkasusdiatas,
petugasperpustakaantersebuttelahbertindaksebagaiperantaraatauProxy.Petugastersebutjugabisa
memastikandanmenjagamisalnya,agarmahasiswahanyabisameminjambukuuntukmahasiswa,
dosenbolehmeminjambukusemuabuku,ataumasyarakatumumhanyabolehmeminjambukutertentu.
Mungkinprosestersebutmenjadilebihlamadibandingkanbilakitalangsungmencaridanmengambil
sendiribukuyangkitainginkan.Namunbilasajasetiapkalipetugasmencaridanmengambilbukuuntuk
seseorang,sipetugasjugamembuatbeberapasalinandaribukutersebutsebelummemberikanbukunya
http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

1/14

9/19/2015

Konsep Proxy - SpeedyWiki

kepadaorangyangmeminta,danmenyimpannyadiatasmejapelayanan,makabilaadaoranglainyang
memintabukutertentu,sangatbesarkemungkinanbukuyangdimintasudahtersediasalinannyadiatas
meja,dansipetugastinggalmemberikannyalangsung.Hasilnyaadalahlayananyanglebihcepatdan
sekaliguskeamananyangbaik.
Analogidiatasmenjelaskankonsepdanfungsidasardarisuatuproxydalamkomunikasijaringan
komputerdaninternet.Proxyservermempunyai3fungsiutama,yaitu,
ConnectionSharing
Filtering
Caching
Masingmasingfungsiakandijelaskanlebihlanjutdibawah.
Proxydalampengertiannyasebagaiperantara,bekerjadalamberbagaijenisprotokolkomunikasi
jaringandandapatberadapadalevellevelyangberbedapadahirarkilayerprotokolkomunikasi
jaringan.SuatuperantaradapatsajabekerjapadalayerDataLink,layerNetworkdanlayerTransport,
maupunlayerAplikasidalamhirarkilayerkomunikasijaringanmenurutOSI.Namunpengertianproxy
serversebagianbesaradalahuntukmenunjuksuatuserveryangbekerjasebagaiproxypadalayer
Aplikasi,meskipunjugaakandibahasmengenaiproxypadalevelsirkuit.
Dalamsuatujaringanlokalyangterhubungkejaringanlainatauinternet,penggunatidaklangsung
berhubungandenganjaringanluaratauinternet,tetapiharusmelewatisuatugateway,yangbertindak
sebagaibatasantarajaringanlokaldanjaringanluar.Gatewayinisangatpenting,karenajaringanlokal
harusdapatdilindungidenganbaikdaribahayayangmungkinberasaldariinternet,danhaltersebut
akansulitdilakukanbialtidakadagarisbatasyangjelasjaringanlokaldaninternet.Gatewayjuga
bertindaksebagaititikdimanasejumlahkoneksidaripenggunalokalakanterhubungkepadanya,dan
suatukoneksikejaringanluarjugaterhubungkepadanya.Dengandemikian,koneksidarijaringanlokal
keinternetakanmenggunakansambunganyangdimilikiolehgatewaysecarabersamasama(connection
sharing).Dalamhalini,gatewayadalahjugasebagaiproxyserver,karenamenyediakanlayanansebagai
perantaraantarajaringanlokaldanjaringanluaratauinternet.
Diagramberikutmenggambarkanposisidanfungsidariproxyserver,diantarapenggunadanpenyedia
layanan:

PROXY,GATEWAYDANFIREWALL
Proxyserverjugabiasanyamenjadisatudenganfirewallserver,meskipunkeduanyabekerjapadalayer
yangberbeda.Firewallataupacketfilteringyangdigunakanuntukmelindungijaringanlokaldari
seranganataugangguanyangberasaldarijaringaninternetbekerjapadalayernetwork,sedangkanproxy
serverbekerjapadalayeraplikasi.Firewallbiasanyadiletakkanpadarouterrouter,untuksehinggabisa
melakukanfilteringataspaketyanglewatdaridankejaringanjaringanyangdihubungkan.
http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

2/14

9/19/2015

Konsep Proxy - SpeedyWiki

Karenafirewallmelakukanfilteringberdasarkansuatudaftaraturandanpengaturanaksestertentu,maka
lebihmudahmengaturdanmengendalikantrafikdarisumbersumberyangtidakdipercaya.Firewall
jugamelakukanfilteringberdasarkanjenisprotokolyangdigunakan(TCP,UDP,ICMP)danportTCP
atauportUDPyangdigunakanolehsuatulayanan(semisaltelnetatauFTP).Sehinggafirewall
melakukankendalidenganmetodebolehlewatatautidakbolehlewat,sesuaidengandaftaraturandan
pengaturanaksesyangdibuat.Bilasuatulayanantertentuataualamattertentumerupakanlayananatau
alamatyangterpercaya,makadapatdiaturpadafirewallagarpaketdarisumberterpercaya
diperbolehkanlewat.
Packetfilteringpadafirewallmempunyaikeunggulanyaitukecapatanyanglebihdantidakmemerlukan
konfigurasitertentupadapenggunapenggunayangterhubung.Namundisisilaindapatmenimbulkan
kesulitan,karenaakansangatsulitbilakitaharusmembuatsatudaftaraturanyangbanyakdan
kompleks.Disampingitu,yangbisadilakukanfirewallhanyamemperbolehkanatautidak
memperbolehkansuatupaketlewatberdasarkanpadaalamatIPsumberataualamatIPtujuanyangada
padapakettersebut.PenyerangbisamelakukanmemalsukanalamatIPpadapaket(spoofing)
menggunakanalamatIPtertentuyangterpercaya,danfirewallakanmelewatkannya.Penyerangjuga
dapatmelakukanpenyadapanpaket(sniffing)denganrelatifmudahuntukmengetahuistrukturalamatIP
padaheaderpaketyanglewatdijaringan.
Dalamanalogiperpustakaandiatas,filteringpadafirewallserupadenganpetugasperpustakaan
menimpandaftarmahasiswadandosenyangterpercaya,danmerekabolehlangsungmengambilsendiri
bukuyangdiinginkandarirak.Inibisamenghasilkanprosessirkulasibukuyanglebihcepat,namun
memerlukanpenanganankhususatasdaftaryangdiperbolehkantersebut.Inijugaberesikobilaada
seseorangyangmenggunkanidentitaspalsu,sehinggaseolaholahdiaadalahsalahsatudariyangada
dalamdaftaryangdiperbolehkan.
Proxyservermenggunakancarayangberbeda.Proxyservermemotonghubunganlangsungantara
penggunadanlayananyangdiakases(atauantaramahasiswadanbukubukuperpustakaandalamanalogi
diatas).InidilakukanpertamatamadenganmengubahalamatIP,membuatpemetaandarialamatIP
jaringanlokalkesuatualamatIPproxy,yangdigunakanuntukjaringanluaratauinternet.Karenahanya
lamatIPproxytersebutyangakandiketahuisecaraumumdiinternet(jaringanyangtidakterpercaya),
makapemalsuantidakbisadilakukan.

PENDEKATANLAYEROSI
Karenaproxybekerjapadalayeraplikasi,proxyserverdapatberjalanpadabanyakaplikasiantaralain
HTTPProxyatauWebProxyuntukprotokolHTTPatauWeb,FTPProxy,SMTPProxy/POPProxy
untukemail,NNTPproxyuntukNewsgroup,RealAudio/RealVideoProxyuntukmultimediastreaming,
IRCproxyuntukInternetRelayChat(IRC),danlainlain.Masingmasinghanyaakan
menerima,meneruskanataumelakukanfilterataspaketyangdihasilkanolehlayananyangbersesuaian.
Proxyaplikasispesifikmemilikipilihankonfigurasiyangsangatbanyak.Sebagaicontoh,WebProxy
dapatdikonfigurasiuntukmenolakakseskesituswebtertentupadawaktuwaktutertentu.Demikian
jugaproxyyanglain,misalnyadapatdikonfigurasiuntukhanyamemperbolehkandownloadFTPdan
tidakmemperbolehkanuploadFTP,hanyamemperbolehkanpenggunatertentuyangbisamemainkan
filefileRealAudio,mencegahakseskeemailserversebelumtanggaltertentu,danmasihbanyaklagi.
Proxyserverjugasangatbaikdalamhalkemampuanmenyimpancatatan(logging)daritrafikjaringan,
dandapatdigunakanuntukmemastikanbahwakoneksiuntukjenistrafiktertentuharusselalutersedia.
Sebagaicontoh,sebuahkantormempunyaikoneksiterusmeneruskeInternetuntukkeperluanakses
http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

3/14

9/19/2015

Konsep Proxy - SpeedyWiki

WebmenggunakansatukoneksiDialup.Proxyserverdapatdikonfigurasiuntukmembukasatulagi
koneksiDialupkeduabilaadapenggunayangmelakukandownloadmelaluiFTPpadakoneksiDialup
pertamadalamwaktulama.
Sebagaimanabiasa,kelemahandarikonfigurasiyangsangatfleksibeldanbanyakpilihanadalah
timbulnyakompleksitas.AplikasipadasisipenggunasepertiWebBrowseratauRealAudioPlayerharus
ikutdikonfigurasiuntukbisamengetahuiadanyaproxyserverdanbisamenggunakanlayanannya.Bila
suatulayananbarudibuatdiinternetyangberjalanpadalayeraplikasi,denganmenggunakanprotokol
barudanportyangbaru,makaharusdibuatjugaproxyyangspesifikdanbersesuaiandenganlayanan
tersebut.Prosespenambahanpenggunadanpendefinisianaturanaksespadasuatuproxyjugabisasangat
rumit.
Sebagaiperantaraantarapenggunadanserverserverdiinternet,proxyserverbekerjadengancara
menerimapermintaanlayanandariuser,dankemudiansebagaigantinyaproxyserverakanmewakili
permintaanpengguna,keserverserverdiinternetyangdimaksudkan.Dengandemikian,sebenarnya
proxyserverhanyameneruskanpermintaanpenggunakeserveryangdimaksud,akantetapidisini
identitaspemintasudahberganti,bukanlagipenggunaasal,tetapiproxyservertersebut.Serverserverdi
internethanyaakanmengeahuiidentitasproxyservertersebut,sebagaiyangmeminta,tetapitidakakan
tahupemintasebenarnya(yaitupenggunaasalnya)karenapermintaanyangsampaikepadaserverserver
diinternetbukanlagidaripenggunaasal,tetapidariproxyserver.
Bagipengggunasendiri,prosesyangterjadipadaproxyserverdiatasjugatidakkelihatan(transparan).
Penggunamelakukanpermintaanataslayananlayanandiinternetlangsungkepadaserverserverlayanan
diinternet.Pengunahanyamengetahuikeberadaanataualamatdariproxyserver,yangdiperlukanuntuk
melakukankonfigurasipadasisispenggunauntukdapatmenggunakanlayanandariproxyserver
tersebut.

CACHING
Fungsidasaryangketigadansangatpentingdarisuatuproxyserveradalahcaching.Proxyserver
memilikimekanismepenyimpananobyekobyekyangsudahpernahdimintadariserverserverdi
internet,biasadisebutcaching.Karenaitu,proxyserveryangjugamelakukanprosescachingjugabiasa
disebutcacheserver.
Mekanismecachingakanmenyimpanobyekobyekyangmerupakanhasilpermintaandaridaripara
pengguna,yangdidapatdariinternet.Karenaproxyserverbertindaksebagaiperantara,makaproxy
servermendapatkanobyekobyektersebutlebihdahuludarisumbernyauntukekmudianditeruskan
kepadapemintayangsesungguhnya.Dalamprosestersebut,proxyserverjugasekaligusmenyimpan
obyekobyektersebutuntukdirinyasendiridalamruangdiskyangdisediakan(cache).
Dengandemikian,bilasuatusaatadapenggunayangmemintasuatulayanankeinternetyang
mengandungobyekobyekyangsamadenganyangsudahpernahdimintasebelumnya,yaituyangsudah
adadalamcache,makaproxyserverakandapatlangsungmemberikanobyekdaricacheyangdiminta
kepadapengguna,tanpaharusmemintaulangkeserveraslinyadiinternet.Bilapermintaantersebut
tidakdapatditemukandalamcachediproxyserver,barukemudianproxyservermeneruskanatau
memintakannyakeserveraslinyadiinternet.
Prosescachinginijugatidakkelihatanbagipengguna(transparan),karenabagipenggunatidaktampak
siapasebenarnyayangyangmemberikanobyekyangdimintanya,apakahproxyserveryangmengambil
daricachenyaatauserveraslidiinternet.Darisisipengguna,semuaakannampaksebagaibalasan
http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

4/14

9/19/2015

Konsep Proxy - SpeedyWiki

langsungdariinternet.
SalahsatuproxyyangpalingbanyakdibahasdandigunakansecaraluasadalahHTTPproxyatauWeb
proxy.HTTPproxyservermerupakanproxyyangberdiridiantaraalokasiwebpenggunamisalnyaweb
browserdanwebserveratauHTTPserver.
KetikapenggunamembukabrowserdanmengetikkanURL,makacontentyangdimintaURLtersebut
dinamakanInternetObject.PertamadiaakanbertanyaterlebihdahulukesebuahDNS(DomainName
Server).DNSakanmencariIPAddressdariURLtersebutdalamdatabasenyadanmemberijawaban
kepadabrowsertersebutkembali.SetelahbrowsermendapatkanIPAddress,makaiaakanmembuka
hubungankeporthttpwebservertujuan.Webserverakanmendengarkanadanyapermintaandari
browserlalumemberikancontentyangdimintatersebut.Setelehbrowsermenerimacontentmaka
hubungandenganwebserverbisadiputus.Contentlaluditampilkandandisimpandidalamhardisk.
Contentyangdisimpandidalamhardiskbiasanyadisebutcacheobjectyangnatinyaakandigunakanjika
penggunakembalimengunjungisiteyangsama,misalnyadenganmengkliktombolbackataumelihat
history.Dalamkunjunganberikutnya,browserakanmemeriksavalidasicontentyangdisimpannya,
validasiinidilakukandenganmembandingkanheadercontentyangadapadacacheobjectdenganyang
adapadawebserver,jikacontectbelumexpired(kadaluwarsa)makacontecttadiakanditampilkan
kembalikebrowser.
Cacheobjectyangdisimpandalamhardisklocalinihanyabiasdipakaiolehpenggunasendirian,tidak
biasdibagidenganpenggunayanglainnya,lainhaljikacontenttersebutdisimpanpadasebuahserver,
dimanasemuacomputerterhubungdenganservertersebut,makacacheobjecttersebutbiasdipakai
bersamasama,servertersebutlahyangnantinyaakandinamakancacheserveratauproxyserver.
Cacheserverdiletakkanpadatitikdiantarakliendanwebserver.Padacontohdiatasklienakanmeminta
contentdarisuatuwebserverkecacheserver,tidaklangsungkewebservertujuan.Cacheserverinilah
yangbertanggungjawabuntukmendownloadcontentyangdimintadanmemberikannyapadaklien.
Contenttadidisimpanpadahardsiklocalcacheserver.Lainwaktu,adaklienyangmemintacontent
yangsama,makacacheservertidakperlumengambillangsungdariservertujuantapitinggal
memberikancontentyangsudahada.Disinilahletakoptimasicacheservertersebut.
Adaduajenismetodecaching,yaitupasifdanaktif.Sepertitelahkitaketahui,objectyangdisimpanbisa
sajamencapaiexpired,untukmemeriksanyadilakukanvalidasi.Jikavalidasiinidilakukansetelahada
permintaandariklien,metodeinidisebutpasif.Padacachingaktif,cacheservermengamatiobjectdan
polaperubahannya.Misalkanpadasebuahobjectdidapatisetiapharinyaberubahsetiapjam12siang
danpenggunabiasanyamembacanyajam14,makacacheservertanpadimintaklienakan
memperbaharuiobjecttersebutantarajam12dan14siang,dengancaraupdateotomatisiniwaktuyang
dibutuhkanpenggunauntukmendapatkanobjectyangfreshakansemakinsedikit.
Padakondisitertentu,kapasitaspenyimpananakanterkurashabisolehobject.Namuncacheserver
mempunyaibeberapametodepenghapusanuntukmenjagakapasitastetapterjaga,sesuaidengan
kopnfigurasiyangtelahditetapkan.Penghapusaninididasarkanpadaumurdankepopuleran,semakin
tuaumurobjectakantinggiprioritasnyauntukdihapus.Danjugauntukobjectyangtidakpopularakan
lebihcepatdihapusjuga.
Diagramberikutmenggambarkanprosesdanmekanismecaching:

http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

5/14

9/19/2015

Konsep Proxy - SpeedyWiki

HIRARKICACHE
Antaracacheserverbisaterjalinsalingkerjasama.ProtokolkerjasamainibernamaInternetCache
Protocol(ICP).DenganICP,sistemcachebisamempunyaihirarki.Hirarkidibentukolehduajenis
hubungan,yaituparentdansibling.
Parent:cacheserveryangwajibmencarikancontentyangdimintaolehklien
Sibling:cacheserveryangwajibmemberikancontentyangdimintajikamemangtersedia.Jika
tidak,siblingtidakwajibuntukmencarikannya
Dariduahubungannyaini,sistemcachebisadidesainsecarabertingkat.Misalkandalammendesain
sebuahISPataunetworkkampus,andabiasmempunyailebihdarisatucacheserveryangsalingsibling
satudenganyanglainnya.Skenariolainnyamisalkanantaracachekantorpusatdankantorcabang,
dimanakantorpusatterletakdigatewayinternet.Parentkantorpusatselaindigunakannetworklokalnya,
jugadibebanitrafikyangberasaldaricacheservermilikkantorcabang.
Untukbermacammacamdesaincachedapatdilihatdariskemagambarberikut:

Padagambardiatasjelasbahwaantaracachesiblingyangsatudenganyanglainnyasalingbertukar
object,danjikatidakadamakacachesiblingakanmemintacontentkecacheserver,dancacheserver
wajibuntukmemberikannya,dalamkondisiyangsesungguhnyahubungancachesiblingbiaslebihdari
satu.

Hubunganjenisinibersifatketergantunganpenuh,cachechild(cacheserver)mautidakmauharus
memintakepadaparent,danparentpunberkewajibanuntukmemenuhipermintaanchildtanpakecuali,
padakondisiadaatautidaknyaobjectyangdimintadidalamhardsiknya.Danbagichild,bilaparent
tidakbiasmemenuhipermintaan,makacachechildakanmemberikanpesanerrorpadabrowserklien
bahwaURLmaupuncontentyangdimintatidakdapatdiambil.

http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

6/14

9/19/2015

Konsep Proxy - SpeedyWiki

TRANSPARENTPROXY
Salahsatukompleksitasdariproxypadalevelaplikasiadalahbahwapadasisipenggunaharusdilakukan
konfigurasiyangspesifikuntuksuatuproxytertentuagarbisamenggunakanlayanandarisuatuproxy
server.Biladiinginkanagarpenggunatidakharusmelakukankonfigurasikhusus,kitabisa
mengkonfigurasiproxy/cacheserveragarberjalansecarabenarbenartransparanterhadappengguna
(transparentproxy).Biasanyacarainimemerlukanbantuandankonfigurasiaplikasifirewall(yang
bekerjapadalayernetwork)untukbisamembuattransparentproxyyangbekerjapadalayeraplikasi.
Transparentproxydapatbergunauntukmemaksapenggunamenggunakanproxy/cacheserver,karena
penggunabenarbenartidakmengetahuitentangkeberadaanproxyini,danapapunkonfigurasipadasisi
pengguna,selamaproxyserveriniberadapadajalurjaringanyangpastidilaluiolehpenggunauntuk
menujukeinternet,makapenggunapastidengansendirinyaakanmenggunakanproxy/cacheini.
Caramembuattransparentproxyadalahdenganmembelokkanarah(redirecting)daripaketpaketuntuk
suatuaplikasitertentu,denganmenggunakansatuataulebihaturanpadafirewall/router.Halinibisa
dilakukankarenasetiapaplikasiberbasisTCPakanmenggunakansalahsatuportyangtersedia,dan
firewalldapatdiaturagarmembelokkanpaketyangmenujukeportlayanantertentu,kearahportdari
proxyyangbersesuaian.
Sebagaicontoh,padasaatklientmembukahubunganHTTP(port80)dengansuatuwebserver,firewall
padarouteryangmenerimasegeramengenalibahwaadapaketdatayangberasaldarikliendengan
nomorport80.DisinikitajugamempunyaisatuHTTPproxyserveryangberjalanpadaport3130.Maka
padafirewallrouterkitabuatsatuaturanyangmenyatakanbahwasetiappaketyangdatangdarijaringan
lokalmenujukeport80harusdibelokkankearahalamatHTTPproxyserverport3130.Akibatnya,
semuapermintaanwebdaripenggunaakanmasukdandiwakiliolehHTTPproxyserverdiatas.

Jadisecaraumumkeuntungandarimetodetransparentproxyitusendiriadalah:
1. Kemudahanadministrasijaringan,denganartianbrowseryangdigunakanklientidakharus
dikonfigurasisecarakhususyangmenyatakanbahwamerekamenggunakanfasilitasproxyyang
bersangkutan.
2. Sentralisasikontrol,denganartian,pergantianmetodebypassproxymaupunpenggunaanproxy
olehkliendapatdilakukansecaraterpusat.

SQUIDWEBPROXY/CACHE
Salahsatucontohaplikasiproxy/cacheserveradalahSquid.Squiddikenalsebagaiaplikasiproxydan
cacheserveryanghandal.Padapihakklienbekerjaapliaksibrowseryangmemintarequesthttppada
port80.Browserinisetelahdikonfigurasiakanmemintacontent,yangselanjutnyadisebutobject,
kepadacacheserver,dengannomorportyangtelahdisesuaikandenganmilikserver,nomoryang
dipakaibukanport80melainkanport80803130(kebanyakancacheservermenggunakanportitu
sebagaistandarnya).
http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

7/14

9/19/2015

Konsep Proxy - SpeedyWiki

Padasaatbrowsermengirimkanheaderpermintaan,sinyalhttprequestdikirimkankeserver.Header
tersebutditerimasquiddandibaca.Darihasilpembacaan,squidakanmemparsingURLyang
dibutuhkan,laliURLinidicocokkandengandatabasecacheyangada.
Databaseiniberupakumpulanmetadata(semacamheader)dariobjectyangsudahadadidalamhardisk.
Jikaada,objectakandikirimkankekliendantercatatdalamloggingbahwaklientelahmendapatkan
objectyangdiminta.DalamlogkejadiantersebutakandicatatsebagaiTCP_HIT.Sebaliknya,jikaobject
yangdimintaternyatatidakada,squidakanmencarinyadaripeerataulangsungkeservertujuan.Setelah
mendapatkanobjectnya,squidakanmenyimpanobjecttersebutkedalamhardisk.Selamadalamproses
downloadobjectinidinamakanobjectintransityangsementaraakanmenghuniruangmemori.Dalam
masadownloadtadi,objectmulaidikirimkankekliendansetelahselesai,kejadianinitercatatdalamlog
sebagaiTCP_MISS.
Hubunganantarcacheataunantinyadisebutpeeritusendiriadaduajenis,yaituparentdansibling.
Siblingkedudukannyasalingsejajardengansiblinglainnya,sedangkanparentadalahberadadiatas
sibling,duajenispeeriniyangselanjutnyaakanbergandenganmembentukjaringanhirarkicache
ICPsebagaiprotokolcacheberperandalammenanyakanketersediaanobjectdalamcache.Dalam
sebuahjaringansebuahcacheyangmempunyaisibling,akanmencobamencariyangdibutuhkankepeer
siblinglainnya,bukankepadaparent,cacheakanmengirimkansinyalicpkepadasiblingdansibling
membalasnyadenganinformasiketersediaanadaatautidak.Bilaada,cacheakanmencatatkanICP_HIT
dalamlognya.Setelahkepastianobjectbiasdiambildarisibling,lalucacheakanmengirimkansinyal
httpkesiblinguntukmengambilobjectyangdimaksud.Dansetelahmendapatkannya,cacheakan
mencatatlogSIBLING_HIT.
Jikaternyatasiblingtidakmenyediakanobjectyangdicari,cacheakanmemintanyakepadaparent.
Sebagaiparent,iawajibmencarikanobjectyangdimintatersebutwalaupuniasendiritidakmemilikinya
(TCP_MISS).Setelahobjectdidapatkandariserverorigin,objectakandikirimkankecachechildtadi,
setelahmendapatkannyacachechildakanmencatatnyasebagaiPARENT_HIT.

Konfigurasi,penggunaandanmetodeSquid
Konfigurasikonfigurasimendasarsquidantaralain:
1. http_portnomorport.Iniakanmenunjukkannomorportyangakandipakaiuntukmenjalankan
squid.Nomorportiniakandipakaiuntukberhubungandengankliendanpeer.
2. icp_portnomorport.Iniakanmenunjukkannomorportyangakandipakaiuntukmenjalankan
squid.Nomorportiniakandipakaiuntukberhubungandengankliendanpeer.
3. cache_peernama_peertipe_peernomor_port_httpnomor_port_icpoption.Sintaskdari
cachepeerinidigunakanuntukberhubungandenganpeerlain,danpeerlainyangdikoneksikan
initipenyabergantungdaritipepeeryangtelahdideklarasikanini,biasbertipesiblingmaupun
bertipeparent,danportyangdigunakanuntukhubunganICPmaupunHTTPjugadideklarasikan
disini,sedangakanuntukparameteroptiondisiniadabermacammacamsalahsatunyaadalah
defaultyangberartidiaadalahsatusatunyaparentyangharusdihubungi(jikabertipeparent)dan
proxyonlyyangberartibahwaobjectyangdipatadaripeertersebuttidakperludisimpandalam
hardisklocal.
4. Dead_peer_timeoutjumlah_detikseconds.Masingmasingpeeryangtelahdidefinisikan
sebelumnyamempunyaiwaktutimeoutsebesaryangditentukandalamkonfigurasiini,Jikapeer
tidakmenjawabkirimansinyalICPdalambataswaktuyangtelahditentukan,peerakandianggap
tidakakandapatdijangkau,dancacheservertidakakanmengambilobjectdariserveryang
bersangkutandalamintervalwaktutertentu.
http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

8/14

9/19/2015

Konsep Proxy - SpeedyWiki

5. Hierarcy_stoplistpola1pola2Sintaksinidigunakanuntukmenyatakanapayangharustidak
dimintadaripeer,melainkanharuslangsungdariwebserverorigin,jikapola1danpola2adalah
parametercgibin,?,danlainlainmakajikaadarequestURLyangmengandungkaraktertersebut
makaakandiambilkanlangsungkeserverorigin.
6. Cache_memjumlah_memori(dalambytes)Sintaksiniakanmenentukanbatasatasjumlah
memoriyangdigunakanuntukmenyimpanantaralain:intransitobjectyaituobjectyangdalam
masatransisiantarawaktucachemendownloadsampaiobjectdisampaikankeklien,danhot
object,yaituobjectyangseringdiakses.
7. Cache_swap_low/highjumlah(dalampersen)Squidakanmenghapusobjectyangadadidalam
hardisknyajikamediatersebutmulaipenuh.Ukuranpenuhiniyangdisetpadacache_swap_low
dancache_swap_high.Bilabatasswap_lowtelahtercapaimakasquidmulaimenghapusdanjika
batasswap_hightercapaimakasquidakansemakinseringmenghapus.
8. Cache_dirjenis_file_sistemdirektorikapasitas_cachedir_1jumlahdir_2Sintaksiniakan
menjelaskandirektoricacheyangdipakai,pertamaadalahjenisfilesistemnya,laludidirektori
manacachetersebutakandisimpan,selanjutnyaukurancachetersebutdalamMegaByteslalu
jumlahdirektorilevel1dandirektorilevel2yangakandigunakansquiduntukmenyimpan
objectnya.

ACL(AccessControlList)
Selanjutnyakonfigurasikonfigurasilanjutansquid,selainsebagaicacheserver,squidyangmemang
bertindaksebagaiparentuntukmemintaobjectdarikliennyadapatjugadikonfigurasiuntuk
pengaturanhakakseslebihlanjut,untukpertamakaliyangdibicarakanadalahACL(accesscontrollist),
ACLsendiriterdiridaribeberapatipeantaralain:
SrcIPAddressasalyangdigunakanklien
DstIPAddresstujuanyangdimintaklien
MyipIPAddresslocaldimanaklienterhubung
srcdomainNamadomainasalklien
dstdomainNamadomaintujuanklien
srcdom_regexPencarianpolasecarastringdarinamadomainasalklien
dstdom_regexPencarianpolasecarastringdarinamadomaintujuanklien
TimeWaktudinyatakandalamharidanjam
ProtoProtokoltransfer(http,ftp,gopher)
MethodMetodepermintaanhttp(get,post,connect)
BerikutnyaadalahcontrollistyangakandigunakanuntukmengaturcontroldariACL,controllist
tersebutantaralain:
http_accessmemperbolehkanacesshttp
icp_accessmemperbolehkanpeeruntukmengirimkanicpuntukmenqueryobject
miss_accessmemperbolehkanklienmemintaobjectyangbelumada(miss)didalamcache
no_cacheobjectyangdimintaklientidakperludisimpankehardisk
always_directpermintaanyangditanganilangsungkeserverorigin
neverdirectpermintaanyangditanganisecaratidaklangsungkeserverorigin.
SebagaicontohdiberikansintakskonfigurasiACLsepertidibawahini:
#bagian ACL
ACL
localnet src 192.168.100.0/24
ACL
localkomp 127.0.0.1/255.255.255.255
ACL
isp dst 202.59.206.65/30
ACL
allsrc src 0.0.0.0/0.0.0.0
http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

9/14

9/19/2015

Konsep Proxy - SpeedyWiki

ACL
alldst dst 0.0.0.0/0
ACL
other src 10.10.11.11/32
ACL
domainku srcdomain .jatara.net
#bagian control list
http_access deny other
http_access allow localnet
http_access allow lokalkomp
http_access allow domainku
http_access deny allsrc
always_direct allow isp
always_direct deny alldst

Padakonsepsintakskonfigurasisquidadalahbahwasesuatuyangtelahdieksekusipadabarisyanglebih
atasmakadiatidakdieksekusilagidibarisyangpalingbawah,walaupundalamparameterACLyang
dibawahtersebutdiajugatermasuk,untuklebihjelasnya,jikaadaIPAddress192.168.100.0/24makaIP
Addressyangberkisardari192.168.100.1192.168.100.254(ACLlocalnet)telahdiijinkanuntuk
mengakseshttpyangditunjukkanolehhttp_accessallowlocalnet,dandibawahnyaadaACLallsrcyang
ituadalahmencakupsemuadaftarIPAddressdanACLitutidakdiperbolehkanmengakseshttp,yaitu
http_access_denyallsrc,tapikarenapadaACLlocalnetdiatelahdieksekusiuntuksebagaiIPAddress
yangbolehmengakses,makawalaupundibarisbwahnyadidieksekusilagi,itutidakakan
berpengaruh,halhalsepertiitudigunakanuntukseorangadministratorcacheserveruntukmelakukan
pengontrolanagartidakakanterlaludetailmelakukanpengaturanjikabarisatasdanbawahsamasama
salingmempengaruhi.

Peering
Kembalimembicarakantentangkonfigurasipeering.Makadisquidoptionatauparameterparameter
untukpengaturansquidbanyaksekalivariasinyaantaralainterdapatdalamcontohdibawahini:
Cache_peer ugm.ac.id sibling 8080 3130 proxy-only
Cache_peer itb.ac.id parent 3128 3130 no-digest round-robin
Cache_peer ui.ac.id parent 3128 3139 weight=2 no-digest

Untukpengaturandiatas,tipepeerbaiksiblingmaupunparent,nomorportuntukhubunganicpmaupun
httptelahdijelaskanpadababsebelumnya,disiniakandibahastentangoptionyangadayaituproxy
only,roundrobin,dannodigest.
Padabagiansiblingcachepeeritudidefinisikansebagaiproxyonlyyangberartiseluruhobjectyang
didapatkandarisiblingtidakakandisimpankedalamhardsik,begituobjectselesaididownloadmaka
objecttersebutakanlangsungdiserahkankepadakliendanobjectakandihapusdarimemori,option
selanjutnyaadalahweight,optionweightadalahdigunakanuntukpengaturanprioritasyangsemakin
tingginilainyamakadiaadalahcacheparentyangakandihubungiterlebihdahulu,optionroundrobin
berfungsiuntukmemutargiliranparentmanayangakandimintamencarikanobject,padakasusinijika
adaterdapatbanyakparentyangtidakdiberioptionweightuntukprioritasmakaoptionroundrobin
digunakanuntukmenggilircacheyangakandihubungisecarabergantian.
Sedangoptionnodigestadalahmerupakansalahsatualternativesquidberbicaradenganpeer.Cache
digestmenggunakancaramengumpulkanheadermasingmasingobjectyangtelahdisimpankedalam
sebuahfile.Fileiniyangnantinyaakandiforwardataudidownloadolehpeerdenganmenggunakan
protokolhttp.Headerinidikumpulkandalamversiterkompresdenganrasiotinggi.
Denganmemperolehcachedigestdaripeer,squidmemperolehkejelasanstatusadatidaknyaobjectyang
diminta,tanpaperlubertanyadulusebelumnyalewatprotokolICP,Jelasdarisinisquiddapat
http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

10/14

9/19/2015

Konsep Proxy - SpeedyWiki

mengoptimisasibanwitdh,terutamajikapeerterletakdalamjaraklogikahoopyangcukupjauh.Cache
digestitusendiridegeneratesecaraberkaladanbesarnyatergantungdarijumlahsetiapobject,masing
masingobjecttersebutdisimpandalamheadersebanyak10bits.

ObjectCache
Pengaturanobjectsebuahcacheservermerupakansalahsatuhalyangperludiperhatikandisini.Telah
diketahuisebelumnyabahwaobjectdisimpanpadadualevelcache_diryangbesarlevelnyadidefinisikan
padakonfigurasiutamasquid.ObjectitusendiriberisikancontentURLyangdimintakliendandisimpan
dalambentukfilebinary,masingmasingobjectmempunyaimetadatayangsebagiandariisinya
disimpandidalammemoriuntukmemudahkanmelacakdimanaletakobjectdanapaisidariobject
tersebut.Banyaksifatsifatyangperludiamatiuntukoptimasisquidini,antaralain:
UmurobjectUmurobectmerupakansebuahukuranwaktuyangdihabiskansebuahobjectuntuktinggal
didalamhardiskcache.Umurobjectdibatasiolehbeberapafactor,yaitu:
metodepenghapusanobjectobjectdihapusbisamelaluibeberapalgoritmapenghapusan:
1. LogisticRegression:yaitumenghapusobjectdengankemungkinanlogisticregressionterkecil.
Kemungkinanlogisticregressionbisadiartikansebagaibesarnyakemungkinanobjecttersebut
akandiaksesdiwaktuyangakandating.
2. LeastRecentlyUsed:yaitumetodepenghapusanobjectberdasarkanwaktukapanobjecttersebut
terakhirdiakses.Semakinlama(besar)waktunya,kemungkindihapusjugaakansemakinbesar.
3. LeastFrequentlyUsed:Metodepenghapusanobjectyangpalingjarangdiakses.
4. FirstInFirstOut:Penghapusanyangmerunutmetodeberdasarkanwaktumasukkedalam
cache_dir,yaituobjectyangpalingawalmasuk,berartiituadalahobjectyangakandihapus
terlebihdahulu.
5. Random:Menghapusobjectsecararandom.

Kapasitashardiskcache
Semakinbesarkapasitascache,berartisemakinlamaumurobjecttersebutbisadisimpan,jikapemakaian
hardisksudahmendekatibatasatas(cache_swap_high)penghapusanakansemakinseringdilakukan.

Memori
Memoridipakaisquiddalambanyakhal.Salahsatucontohpemakaiannyaadalahuntukdisimpannya
objectyangpopular,lazimnyadisebuthotobject.Jumlahhotobjectyangdisimpandalammemoribisa
diaturdenganoptioncache_mempadasquid.conf
Sebenarnyayangpalingmemakanmemoriadalahmetadataobject,karenakebanyakanobjectsendiri
sebenarnyadisimpandalamdirektoricache_dirhardsiklocal.Semakinbanyakkapasitascache_dir,
semakinbanyakpulametadatadansemakinmembebanipemakaianmemori.Padakebanyakankasus
untuksetiap1.000.000jumlahobject,rataratadibutuhkansebesar72MBmemoriuntukkeseluruhan
objectdan1,25MBuntukmetadata.Jumlahobjectinibisadidapatkandaribesarcache_dirdibagi
denganjumlahrataratakapasitasobject,biasanyasetiapobjectbernilai13KB.
http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

11/14

9/19/2015

Konsep Proxy - SpeedyWiki

Mengingatpentingnyaketersediaanmemori,pentinguntukmelihatsebagusapaaplikasipengalokasian
memoriyangadapadasistemoperasiyangsedangbekerja.Secaradefaultpadasistemoperasisudah
tersediarutinprogramuntukalokasimemoriataumalloc(memoryallocation).Namunpadabebanyang
sangatbesardantanpadiimbangipenambahanmemoriyangmemadai,mallocakanmencapaibatasatas
performansidankemudianmencapaistatusketidakstabilan,dansquidakanmenuliskanbanyakpesan
errorpadalog,misalnyaseperti:xmalloc:Unabletoallocate4096bytes!.
Jikainiterjadi,langkahyangdapatdilakukanadalahmelakukanpenambahanmemori,danlangkah
keduajikainginlebihstabiladalahmenginstalllibraryuntukrutinprogrammallocyanglebihbaru.

PROXYSERVERLAYERNETWORK
Salahsatucontohproxyyangbekerjapadalayerjaringanadalahaplikasifirewallyangmenjalankan
NetworkAddressTranslation(NAT).NATselaludigunakanpadarouterataugatewayyang
menjalankanaplikasifirewall.NATdigunakanuntukmengubahalamatIPpaketTCP/IP,biasanyadari
alamatIPjaringanlokalkealamatIPpublik,yangdapatdikenalidiinternet.
Padasuatujaringanlokal(localAreaNetwork),setiapkomputerdidalamnyamenggunakanalamatIP
lokal,yaitualamatIPyangsudahdisediakanuntukkeperluanjaringanlokal,dantidakakandikenali
atauditerimaolehrouterrouterdiInternet.Ketikakomputerkomputerpadajaringanlokaltersebut
memerlukanuntukmengakseslayanandiinternet,paketpaketIPyangberasaldarijaringanlokalharus
digantialamatsumbernyadengansatualamatIPpublikyangbisaditerimadiinternet.Disinilahproses
NATdilakukanolehaplikasifirewalldiGateway,sehinggasuatuserverdiinternetyangmenerima
permintaandarijaringanlokalakanmengenalipaketdatangmenggunakanalamatIPgateway,yang
biasanyamempunyaisatuataulebihalamatIPpublik.
PadaprosesNATini,aplikasifirewalldigatewaymenyimpansatudaftaratautabeltranslasialamat
berikutcatatansesikoneksiTCP/IPdarikomputerkomputerlokalyangmenggunakannya,sehingga
prosespembaliknyabisadilakukan,yaituketikapaketjawabandariinternetdatang,gatewaydapat
mengetahuitujuansebenarnyadaripaketini,melakukanprosespembaliknya(deNAT)dankemudian
menyampaikanpakettersebutkekomputerlokaltujuanyangsebenarnya.

PROXYSERVERPADALEVELSIRKUIT
Proxyserveryangbekerjapadalevelsirkuitdibuatuntukmenyederhanakankeadaan.Proxyinitidak
bekerjapadalayeraplikasi,akantetapibekerjasebagaisambunganantaralayeraplikasidanlayer
transport,melakukanpemantauanterhadapsesisesiTCPantarapenggunadanpenyedialayananatau
sebaliknya.Proxyinijugamasihbertindaksebagaiperantara,namunjugamembangunsuatusirkuit
virtualdiantaralayeraplikasidanlayertransport.
Denganproxylevelsirkuit,aplikasiklienpadapenggunatidakperludikonfigurasiuntuksetiapjenis
aplikasi.Sebagaicontoh,denganmenggunakanMicrosoftProxyServer,sekalisajadiperlukanuntuk
menginstallWinSockProxypadakomputerpengguna,setelahituaplikasiapliakasiseperrtiWindows
MediaPlayer,IRCatautelnetdapatlangsungmenggunakannyasepertibilaterhubunglangsunglke
internet.
Kelemahandariproxylevelsirkuitadalahtidakbisamemeriksaisidaripaketyangdikirimkanatau
http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

12/14

9/19/2015

Konsep Proxy - SpeedyWiki

diterimaolehaplikasiaplikasiyangmenggunakannya.Kelemahaninidicobadiatasimenggunakan
teknologiyangdisebutSOCKS.SOCKSadalahproxylevelsirkuityangdapatdigunakanuntuksemua
aplikasi(generikproxy)yangberbasisTCP/IP,dikembangkansekitartahun1990olehInternet
EngineeringTaskForce(IETF)dansudahmencapaiversi5(RFC1928).SOCKSmenyediakanstandar
yangindependendariplatformyangdigunakanuntukmengaksesproxylevelsirkuit.Salahsatu
kemampuanpentingSOCKSversi5adalahtambahanprosesautentikasidanpassword,serta
memberikanlayananproxyterhadaplayananberbasisUDP,denganpertamatamamelakukankoneksi
TCP,denkemudianmenggunakannyauntukrelaybagidataUDP.
SOCKSterdiridariduakomponen,yaituSOCKSserverdanSOCKSklien.SOCKSserver
diimplementasikanpadaleyeraplikasi,sedangkanSOCKSkliendiimplementasikandiantaralayer
aplikasidanlayertransport.Kegunaanpokoknyaadalahuntukbisamenyelenggarakankoneksidarisatu
hostpadasatusisidariSOCKSserverdenganhostlainpadasisiyanglaindariSOCKSserver,tanpa
keduahostharusterhubunglangsungdalamkonteksTCP/IP.
DiagramberikutmenggambarkanposisiSOCKS:

Ketikasatuaplikasiklieninginterhubungdenganserveraplikasi,pertamatamadiamenghubungi
SOCKSproxyserver.Proxyinilahyangakanmelakukanrelaydatadanmenghubungkankliendengan
server.Bagisiklien,SOCKSproxyserveradalahserver,danbagiserver,SOCKSproxyserveradalah
klien.SOCKSproxymelakukan3tahapprosesyaitumembuatpermintaankoneksi,membuatsirkuit
proxynya,danmelakukanrelaydata.SOCKSversi5menambahsatuproseduryaituprosesautentikasi
padasetiaplangkahdiatas.
AplikasiyangmenggunakanSOCKSversi5sejumlahmempunyaikeunggulanyaitu:
1. Proxygenerikyangtidaktergantungpadaaplikasinya(applicationindependentproxy).SOCKS
membuatdanmengaturchannelkomunikasiyangdigunakanuntuksemuaaplikasijaringan.
Adanyaaplikasibarutidakmemerlukanpengembangantambahan.Proxylayeraplikasiharus
membuatsoftwareproxybaruuntuksetiapaplikasibaru,danproxylayernetworkdenganinspeksi
penuhharusmembuatcarainspeksiprotokolbaru.
2. Aksesyangtransparanpadajaringandenganbanyakserverproxy.
3. kemudahanautentikasidanmetodeenkripsi.Hanyamenggunakansatuprotokolsajauntuk
pembangunanchannelkomunikasisemuapenggunadanaplikasi,danprosesautentikasinya.
Kebanyakanprotokoltunelingmemisahkanprosesautentikasidanprosespembangunanchannel
komunikasi.
4. kemudahanmembangunaplikasijaringantanpaharusmembuatproxynya.
5. manajemenkebijakanyangsederhanaataskeamananjaringan.
DiagramberikutmenggambarkanalirankendalimodelalirankendaliSOCKSv5:

http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

13/14

9/19/2015

Konsep Proxy - SpeedyWiki

Retrievedfrom"http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy"
Thispagewaslastmodified23:56,12August2009.
ContentisavailableunderGNUFreeDocumentationLicense1.2.

http://opensource.telkomspeedy.com/wiki/index.php/Konsep_Proxy

14/14

Anda mungkin juga menyukai