Anda di halaman 1dari 7

Mengaturbandwidthdownloaddengansquiddelaypool

ByHenrySaptono(boypyt@gmail.com) Aug2008 Maumemberikanjaminandownloadfiledariinternetyangfair?cobagunakanfiturdelaypoolyang disediakanolehsquid(proxyserver).DelaypooldapatAndajadikansebagaicaratermudahbagiAnda dalammengelolabandwidthinternetpadakantoratauwarnetAnda,meskipunhanyasebatasmengatur bandwidthdownloadfileviahttpatauftp,ternyatadelaypooldapatmemberikanlayananjaringanyang lebihberkualitasbagijaringandikantoratauwarnetAnda. Layananaksesinternetyangcukuppopuleradalahlayananaksesweb(http),bisadikatakansaatini hampirsebagianaplikasiberjalandalamenvironmentweb,sehinggaperluperlakukanyangkhususuntuk layananweb(http)ini.Penggunaninternetdiwarnetumumnyamerekamengaksesberbagaiaplikasidan layanandiinternetmelaluilayananhttpini,merekamendownloadfilemelaluilayananhttp,sehingga bagisebuahwarnetpengaturantrafficdownloadfilelewathttpinisangatpentingagarseluruhpenggunan memperolehkualitasjaringanyangbaikdanterjamin.Tidakbolehadaseorangataubeberapapengguna internetdidalamjaringanAndayangmemakanbandwidthdengan'rakus'dikarenakandiamendownload suatufileataumenontonvideodiyoutubedanlainlain.TentunyahaltersebutdapatAndaatur,salah satunyamenerapkanwebcachingdenganproxyserversepertisquid(http://www.squidcache.org),dan jaminankualitasdownloadfileyangadildapatdidukungdenganmemanfaatkanfiturdelaypoolyangada disquid. Dalamtulisankaliinipenulisakanmenjelaskanbagaimanamembangunsebuahproxyserverdengan squiduntukmemberikanataumenyediakanwebcachingdanpengaturanbandwidthdownloadfilevia http.Harapannyaadalahterciptanyajaringanaksesinternetyangberkualitasdanterjaminbagikantor atauwarnetAnda.DalamtulisaninipenulismenggunakansistemoperasiLinuxdistroCentOS5,dan softwaresquidyangdigunakanadalahbawaandistroCentOSyaitusquid2.6.STABLE63.el5. DiasumsikansistemoperasilinuxCentOSsudahAndainstalldansoftwaresquidsudahAndainstalljuga saatinstalasilinux,namunjikasquidbelumterinstallmakaAndadapatlakukaninstalasidenganyum ataumanualsepertiberikutini: # ym install squid atau # rpm -ivh /media/cdrom/CentOS/squid-2.6.STABLE6-3.el5.i386.rpm

I.Skenario
AgarmemudahkanpenjelasanmakapenulismembuatskenariojaringanLANsebagaiberikut: KoneksiinternetjaringanmenggunakanADSLdengandownlink512kbps(512kilobitper second) Komputeryangbertindaksebagaiproxyserveradalahkomputeryangjugaberperansebagai gateway(internetsharing)padajaringanLAN.Komputerinimemilikiduabuahnetwork interface,yaitueth0daneth1.Networkinterfaceeth0terhubungdenganmodemADSL, sedangkaneth1terhubungdenganhubatauswitchLAN.NetworkAddressLANadalah 192.168.1.0/24. Konfigurasiproxyyangakanditerapkanadalahtransparentproxy,denganskenariopengaturan bandwidthdownloadfileadalahsetiapkomputerdalamjaringandiaturagarbandwidthdownload viahttpsebesarsekitar16KBps(16kilobytepersecond),denganmaximumbucket64KBps.

II.KonfigurasiInternetsharing(gateway)
Langkahkonfigurasipertamaadalahmengkonfigurasikomputerbakalproxyserversebagaiinternet sharing(gateway),yaitusebagaiberikut:

EnbaleIPForwarding

# echo 1 > /proc/sys/net/ipv4/ip_forward ataueditfile/etc/sysctl.conf,dansetparameternet.ipv4.ip_forward=1

EnableIPMasquerade

DiasumsikandefaultpolicyfirewallAndaadalahACCEPT,dantidakadarulespesifikapapun padakonfigurasifirewalldikomputerproxyserversebelumnya. # service iptables stop # iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

RuleiptablesuntukmendukungTransparentproxy

# 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

RulefirewalltersebutakanmenyebabkansetiapkoneksidariLANdenganporttujuan80kemanapun akandiarahkanulangsehinggamenujulocalprocesspadakomputergateway(proxyserver)yaituproses yangberjalanpadaport3128(squid).

III.Konfigurasisquidstandar
Langkahselanjutnyaadalahkonfigurasisquid,secaradefaultkonfigurasisquidakanmembloksemua koneksidarijaringanLANkeinternet.Untukitukitaharusmelakukankonfigurasiulangdengan mengeditfile/etc/squid/squid.conf.BeberapaparameterkonfigurasisquidyangsebelumnyaperluAnda setupdiantaranyaadalahparameterberikutini:

visible_hostname:parameterinimendefinisikannamakomputerproxyserverAnda,nilai defaultparameterinitidakdiset.Terkadangpenggunaawamseringmenjumpaisquiderrror dikarenakanparameterinitidakdisetdansquidmencobamenggunkannamahostnamekomputer Andayangternyatahostnamenyatidakditulislengkapdengannamadomain.parameterinidapat diisidengannamakomputeryangdilengkapidengannamadomain.Misalnyasebagaiberikut: visible_hostname proxy.coba.co.id http_port:parameterinimenunjukkannomorportservicesquid.Nilaidefaultnyadalah3128. JikaAndainginmenerapkantransparentproxymakanilaiparameteriniharusdisetsebagai berikut: http_port 3128 transparent acl:parameterinidigunakanuntukmendefinisikanaccesscontrollistformatpenulisannya sebagaiberikut: acl <nama-acl> <tipe-acl> <pattern> [<pattern...>]

Dalamkonfigurasisquidyangkitaskenariokan,Andaharusmembuatsebuahaclyang menunjukkanjaringanlocalAnda,SebaiknyadefinisiacliniAndatulispadafilekonfigurasisquidyaitu dibawahbarisyangbertuliskan#INSERTYOUROWNRULEHERE(S).......,sepertiberikutini: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS acl lan src 192.168.1.0/24 http_access:parameterinimenunjukkanruleyangakanditerapkanpadasuatuaccesscontrollist. UntukskenariokitamakaAndaharusmendefinisikanruleyangakanmengijinkanLANAnda untukdapatmengaksesinternet(tulisruletersebutdibagianbawahdaripendefinisianacl), sepertiberikutini: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS acl lan src 192.168.1.0/24 http_access allow lan

IV.Konfigurasisquiddelaypool
Untukmengaturbandwidthdownloadsesuaiskenarioyaitumenyediakanbandwidthdownloaduntuk setiaphostdalamLANsebesar16KBpsdanmaksimalbucket64KBps,makabeberapaparameter konfigurasisquidyangberkaitandengandelaypoolyangharusAndasetadalahsebagaiberikut(editfile /etc/squid/squid.conf):

delay_pool:parameterinimenentukanadaberapakahpoolyangakanAndaterapkan.Misalnya dalamskenariokitainihanyaakandibuatsebuahpool,makakonfigurasinyasebagaiberikut: delay_pool 1

delay_class:parameterinimendefinisikanclassuntuksetiappoolyangada.Setiappoolharus memilikisebuahclass(delay_class)tidaklebihdantidakkurang.JadikalauAda2delaypool makaharusada2delay_class.Classdelaypoolterdiridari3class,yaitu: class1:untukdelaypooldenganclassinimakasemuanyadibatasidengansinglebucket agregate.Setiapclassharusberasosiasidengansinglebucketagregate.Singlebucket agregtaeiniadalahbandwidthyangdiasosiasikandengansetiapclass.

Class2:untukdelaypooldenganclassinimakasemuanyadibatasidengansinglebucket agregate,dansuatuindividualbucketuntukstiaphostataukomputerdalmjaringan classC. Class3:untukdelaypooldenganclassinimakasemuanyadibatasidengansinglebucket agregate,dannetworkebucketuntuksetiapnetworkclassC,sertasuatuindividual bucketuntukstiaphostataukomputerdalmjaringanclassC.Untukclass3inibiasanya digunakanjikaLANAndaterdiridaribeberapasegmentjaringanclassC.

Untukkonfigurasidelay_classyangsesuaidenganskenariokitaadalahsepertiberikutini: delay_class 1 2 delay_access:parameterinimenentukansuaturequestkeproxyserverharusdiletakkanpada delaypoolyangmana.Konfigurasidelay_accessyangsesuaidenganskenariokitaadalahseperti berikutini: delay_access 1 allow lan delay_access 1 deny all

delay_parameters:parameterinimendefinisikanparameterparameteruntuksuatudelaypool. Formatpenulisanparameterdelay_parametersadalahsebagaiberikut:

delay_parameter <pool> <aggregate bucket> [<network>] [<individual>] Untukskenariokitamakanilaidelay_parametersnyasebagaiberikut: delay_parameters 1 -1/-1 16000/64000 catatan:1/1berartibandwidthuntukaggregatenyadisetunlimited(sesuaidenganbandwidthinternet yangtersediadariISP).16000(16KBps)adalahtotalbandwidthrataratayangbakaldiperlolehsetiaphost dalamLAN,dan64000(64KBps)adalahnilaibandwidthmaksimumyangdapattersediadalambucket disetiapsaat. SetelahkonfigurasisquidAndalakukancobalahAndarestartataustartservicesquidsepertiberikutini: # service squid start # chkconfig squid on KemudiancobaAndagunakanwebbrowserdibeberapaclientdancobalahAndadownloadsuatufile diinternetkemudianperhatikankecepatandownloadpadawindowdownload.Berikutinigambar1,yang menunjukkanprosesdownloadpadasuatukomputerketikamendownloadsebuahfile(perhatikan kecepatanperdetiknyasekitar16KBps),danjugaperhatikangambar2yangmenggambarkankecepatan saatmendownload2buahfilebersamaan(perhatikanjikaditotalkecepatanperdetiknyasekitar16KBps) padasuatuhost.

Gambar1.Mendownloadsebuahfile

Gambar2.Mendownloadduabuahfile