Update Accelerator adalah software kecil yang ditulis dengan bahasa Perl, dan memiliki fungsi melakukan cache Windows Updates, software updates, antivirus updates, patch game online dan sebagainya. Dapat diintegrasikan dengan baik pada squid atau advanced proxy, sehingga sangat bermanfaat dalam melakukan efisiensi penggunaan bandwidth dalam jaringan yang menggunakan banyak klien, misalnya perkantoran, wifi hotspot, gamecenter atau warnet, dan lain-lainnya.
Permasalahan yang sering muncul adalah jika update accelerator berjalan bersama dengan squid, dan disandingkan dengan mikrotik yang memiliki traffic shaper (bandwidth limiter) baik dengan simple queue atau queue tree maka cache yang hit dari update accelerator akan tetap di penalti / terkena limit pada mikrotik.
Bagaimana hal ini bisa terjadi? Perhatikan contoh dibawah ini :
Coba kita perhatikan alur data yang terjadi pada saat klien mengirim request/permintaan mendownload sebuah file update atau patch. Misalnya update ini memiliki url http://update.windodol.com/update.cab.
Client –> [Mikrotik + Proxy/Adv. Proxy + Upd. Accelerator] –> Internet
Pada saat pertama request, klien mengirimkan permintaan http://update.windodol.com/update.cab lewat mikrotik dan mesin proxy (misalnya memiliki IP 192.168.90.2), kemudian diteruskan menuju ke internet.
Selanjutnya, jika file tersebut ditemukan, maka internet akan menyampaikannya ke klien melewati perantaraan mikrotik dan mesin proxy. Update accelerator akan menyimpan (cache) file update.cab dan menyimpan url file yang bersangkutan (http://update.windodol.com/update.cab) kedalam databasenya.
Client <– [Mikrotik + Proxy/Adv. Proxy + Upd. Accelerator (Cached)] <– Internet
Jika ada klien kedua yang merequest patch yang sama dengan url yang identik, maka squid akan mengambil file update.cab dari url cache lokal, misalnya http://192.168.90.2/updatecache/asdfasdf/update.cab (Update Accelerator HIT).
Akan tetapi, proses pengambilan patch dari cache lokal ini akan di “masquerade” oleh squid. File patch yang disampaikan ke klien oleh squid tetap memiliki URL asli yaitu http://update.windodol.com/update.cab, bukan menggunakan url cache (http://192.168.90.2/updatecache/asdfasdf/update.cab).
Hasilnya, patch yang hit tersebut akan tetap terkena penalti di traffic shaping mikrotik karena mikrotik menganggap file yang di didownload berasal dari internet. Download patch tersebut tidak akan disampaikan dengan full speed ke klien.
Bagaimana cara untuk mengatasi hal ini?
Sederhananya adalah dengan memaksa penyampaian patch langsung menggunakan URL cache lokal. Dalam contoh implementasi hal ini saya menggunakan :
- Mikrotik RB750 dengan IP mikrotik – proxy 192.168.90.1, dan IP mikrotik – klien 192.168.1.1
- Mesin proxy berbasis IPFire dengan IP interface green0 (menuju LAN) 192.168.90.2
Pengaturan disisi proxy
Pertama, menandai semua paket data yang keluar dari port 81 dengan DSCP 12 dengan menggunakan iptables. IPFire secara default membuka akses HTTP pada port 81. Hal ini menjadi menguntungkan, karena tidak menggunakan port 80 yang bersinggungan langsung dengan aktivitas akses squid. Agar rule iptables nya jalan setiap kali start-up tambahkan rule tersebut didalam file /etc/sysconfig/firewall.local.
vim /etc/sysconfig/firewall.local
tambahkan baris berikut ini :
## add your 'start' rules here iptables -t mangle -A OUTPUT -p tcp --sport 81 -j DSCP --set-dscp 12
Catatan: green0 adalah interface IPFire yang menuju LAN.
Kedua, IPFire memiliki modul PHP namun secara default belum diaktifkan, oleh karena itu kita harus mengaktifkannya secara manual. Kita akan mengaktifkan PHP untuk memanipulasi proses pengambilan patch/updates di update accelerator.
vim /etc/httpd/conf/loadmodule.conf
Temukan baris #LoadModule php5_module /usr/lib/apache/libphp5.so, dan hilangkan tanda pagar didepannya. Menjadi :
LoadModule php5_module /usr/lib/apache/libphp5.so
Selanjutnya tambahkan php handler :
vim /etc/httpd/conf/global.conf
Tambahkan php handler pada global.conf
AddHandler php5-script php htm html
Restart apache agar membaca konfigurasi baru
apachectl -k graceful
Oke.. step ketiga, menambahkan script PHP yang akan meredirect request update accelerator dan squid ke cache lokal.
vim /srv/web/ipfire/html/get.php
Copas script berikut ini :
<?php $ipfire = "http://192.168.90.2:81/updatecache/"; $updxlget = $ipfire.$_GET['vendorid']; header("Location: $updxlget"); exit; ?>
Catatan untuk PHP coder :
404 Not Found? Impossible.. karena update accelerator akan terlebih dahulu memeriksa eksistensi file yang bersangkutan.
Ke empat, edit file update accelerator. Jika anda sedang menggunakan advanced proxy dan mengaktifkan update accelerator, silakan non-aktifkan dahulu update accelerator untuk menghindari terjadinya kesalahan.
cp /usr/sbin/updxlrator /usr/sbin/updxlrator.bak
vim /usr/sbin/updxlrator
Carilah baris berikut ini :
$cacheurl="http://$netsettings{'GREEN_ADDRESS'}:$http_port/updatecache/$vendorid/$uuid/$updfile";
kemudian ganti menjadi :
$cacheurl="http://$netsettings{'GREEN_ADDRESS'}:$http_port/get.php?vendorid=$vendorid/$uuid/$updfile";
Selesai, you are good to go!
Pengaturan disisi mikrotik
Pengaturan di mikrotik cukup sederhana, cukup tambahkan DSCP matcher di mangle.
/ip firewall mangle add action=mark-packet chain=postrouting comment="dscp matcher" dscp=12 \ new-packet-mark=packet-hits passthrough=no
Kemudian tambahkan simple queue atau queue tree sesuai selera anda. Dalam contoh ini saya melimit paket HIT advanced proxy atau Update Accelerator 30 Mbps menggunakan queue tree.
/queue tree add max-limit=30M name=cache-hits packet-mark=packet-hits parent=global-out priority=1 \ queue=default-small
Jika anda menggunakan squid / advanced proxy yang support ZPH ToS atau QoS, anda tidak perlu menambahkan rule tambahan pada mangle, cukup dengan menggunakan DSCP matcher maka paket HIT proxy atau update accelerator akan ditangani hanya dengan satu rules.
Screenshot setelah menggunakan trik redirection ini :
Log httpd pada saat update / patch diambil dari cache lokal :
Screenshot status Update Accelerator yang saya gunakan saat ini :
Pada gambar diatas terlihat efisiensi bandwidth mencapai indeks 15 lebih (1500%) dan bandwidth yang diselamatkan oleh Update Accelerator berjumlah 2 terabyte lebih.
Semoga tutorial ini bermanfaat!
Pembaca yang baik selalu meninggalkan komentar yang bermanfaat atau mengucapkan terima kasih jika posting ini bermanfaat. Dilarang keras copas tutorial ini, kecuali dengan menyertakan linkback ke blog ini. :)
mas, gimana kalau diterapkan di lusca di mesin ubuntunya…
apa masih sama tut dengan yg diatas???
beda. ini contoh implementasi untuk update accelerator. :)
thanks … saya sudah dapat jawabanya. ada di side menu Update Accelerator & klik tombol statistics. :)
Sip deh, selamat mengoprek.
saya juga menggunakan IPFire dan sedang mencoba tutorial ini. bagaimana yah cara mengakses tampilan monitoring Cache Statistics seperti diatas ??
monitoring Cache Statics seperti gambar diatas itu pake apa yah mas ?
Cache statistics tersebut adalah bawaan dari update accelerator, dan dapat dilihat atau diakses dari antarmuka web (firefox, opera, dsb). Untuk distribusi linux yg sqya gunakan adalah ipfire.
ada panduan mulai dari awal bang :).saya tunggu infonya.Terima Kasih
thanks berat om fajar bermanfaat sekali , pantes ane pusing cari hit yg hilang , ini solusi bagus
hihihi
sorry bro
bukan UM tapi UP to ^_^
biasa lah, keyboadnya konslet
Oia, pengaturan proxy ditutor ini pake linux apa ya!?
maklum newbie ^_*
mungkin maksudnya ukuran file yg di cache lebih dari 30 mb ya. kalo path url nya statik bisa aja diikutkan ke update accelerator, namun juga tidak menutup kemungkinan si squid yg cache (dengan refresh_pattern tertentu).
untuk distribusi linux di contoh ini adalah IPFire. IPFire sebenernya distribusi linux untuk firewall, tapi punya web proxy dan update accelerator didalamnya – dan bisa dimanfaatkan untuk proxy kantor, sekolah, wnet dsb. silakan browse posting di blog ini dengan tag ipfire. atau ke ipfire.web.id, semoga bermanfaat.
mantap bro, Big Cendol dah :)
itu topologi nya gini ya!?
Modem–> [Mikrotik + Proxy/Adv. Proxy + Upd. Accelerator] –> Internet
klo boleh tanya, ketika sudah di UM 30MB agan pake Squid ato adv proxy untuk kasus ini!?
trus apakah hanya sesederhana itu setting di mikrotiknya?!
maaf ya ga, kebanyakan tanya, soalnya masih newbie
:)
lam kenal
betul.. topologinya seperti itu (proxy sejajar mikrotik).
UM? singkatan apa nih masbro? hihihi. untuk setting mikrotik, cukup gitu aja (ane udah coba dan berjalan cukup baik), asal jangan mengaktifkan QoS Service di IPFire nya karena QoS yang baru akan menghilangkan QoS yang kita bikin lewat iptables. semoga bermanfaat.
kalau tlg dbikinkan proxy khusus game center tuk patching game gtu bsa ga bro?bls via email ya
wow… kelar jg nih tutor baru… lumayan nambah PR :))
trims. :P