Handycache feat Mikrotik
"sebuah catatan kecil dari learning by doing"
HandyCache dengan MikroTik
Berawal dari mencoba-coba aplikasi web-cache untuk menghemat quota paketan internet usb-modem di rumah lama-lama jadi tertarik karena feature penyimpanan cache/file kontens berbentuk file aslinya (dapat di explore di windows) dan juga cara memanagenya sangat mudah dan user friendly karena berbasis windows dan GUI.
Kebetulan ini sudah saya test di network saya jadi disini saya akan mencoba bagi-bagi trik menggunakan HandyCache (HC) untuk dipasang ke Jaringan lokal (LAN) karena defaultnya HC hanya bisa dipakai 5 user/ip saja jadi kalau untuk di lan bisa banyak user/ip yang karena akan dibantu oleh router MikroTik (Internal-Proxy).
Silahkan unduh HC yang sudah saya set untuk cache Youtube DailyMotion dan Video Facebook serta beberapa settingan untuk mengoptimalkan cache contents. Di dalam HC ini saya tidak set untuk menyimpan file extensi txt,css,php,html,xml,js karena beberapa file tersebut sangat Crusial terdapat config dinamis seperti situs-situs berita yang bisa setiap menitnya selalu update contens/berita.
Download Handycache
HandyCache 377
HandyCache 377
topologi IP network seperti berikut
Sisi router :
IP LAN 192.168.100.246/24
IP HC 192.168.1.1/24
IP LAN 192.168.100.246/24
IP HC 192.168.1.1/24
Sisi HC (Handycache) :
IP 192.168.1.6/24
GW 192.168.1.1
DNS 192.168.1.1
IP 192.168.1.6/24
GW 192.168.1.1
DNS 192.168.1.1
Sisi Klien :
IP Range 192.168.100.0/24
GW 192.168.100.246
DNS 192.168.100.246
IP Range 192.168.100.0/24
GW 192.168.100.246
DNS 192.168.100.246
Yang pertama anda harus menyamakan dulu NAT seperti berikut (sesuaikan dengan IP masing-masing)
Untuk NAT IP KLIEN terserah mau pake masquerade ataupun src.nat sama saja misalnya kalau masquerade
ether1 disini adalah WAN/Public
Untuk NAT IP KLIEN terserah mau pake masquerade ataupun src.nat sama saja misalnya kalau masquerade
ether1 disini adalah WAN/Public
1
2
| /ip firewall nat add action=masquerade chain=srcnat comment="" disabled=no out-interface=ether1 src-address=192.168.100.0/24 |
Lalu untuk IP HC harus masquerade tanpa out-interface
1
2
3
| /ip firewall nat add action=masquerade chain=srcnat comment="" disabled=no src-address= 192.168.1.0/24 |
Pastikan Aplikasi HC sudah di extrak dan dijalankan exenya dan setting acces untuk IP MikroTiknya
pilih menu Access
pilih menu Access
Pergi ke router dan aktifkan Internal-Proxynya
Isi IP parent proxy dan portnya HC dan matikan cache internal proxynya seperti gambar berikut:
Isi IP parent proxy dan portnya HC dan matikan cache internal proxynya seperti gambar berikut:
Dan tinggal redirect semua port http ke internal-proxy (port 3128)
1
2
3
| /ip firewall nat add action=redirect chain=dstnat comment="" disabled=no dst-port=80 protocol= tcp src-address=192.168.100.0/24 to-ports=3128 |
Done!
Selamat anda sudah bisa bikin proxy server sederhana di network anda
Selamat anda sudah bisa bikin proxy server sederhana di network anda
Berhubung ini memakai jalur internal-proxy maka memanage bandwitdhnya juga lain daripada yang lain
disini saya hanya mengandalkan PCQ rate saja. Jika tertarik silahkan simak baik-baik cara pembuatan mangle dan queue-tree nya.
disini saya hanya mengandalkan PCQ rate saja. Jika tertarik silahkan simak baik-baik cara pembuatan mangle dan queue-tree nya.
1. bikin mangle output untuk semua trafik (ini hanya bagi yang memakai RouterBoard saja) supaya nanti trafik HIT tidak membebani resource RB. Jika anda memakai pc router maka step ini bisa di skip.
1
2
3
| /ip firewall mangle add action=mark-packet chain=output comment=Output disabled=no dst-address= 192.168.100.0/24 new-packet-mark=output passthrough=no |
2. bypass trafik winbox (optional)
1
2
3
4
5
6
7
| /ip firewall mangle add action=mark-packet chain=prerouting comment=Winbox disabled=no dst-port= 8291 new-packet-mark=winbox passthrough=no protocol=tcp src-address= 192.168.100.0/24 add action=mark-packet chain=postrouting comment="" disabled=no dst-address= 192.168.100.0/24 new-packet-mark=winbox passthrough=no protocol=tcp src-port=8291 |
3. menandai semua trafik menuju ke Lokal baik LAN maupun Proxy
ini fungsinya untuk menandai semua trafik down yang menuju ke lan maupun proxy supaya tidak ada trafik bocor untuk pembagian bandwith nanti.
ini fungsinya untuk menandai semua trafik down yang menuju ke lan maupun proxy supaya tidak ada trafik bocor untuk pembagian bandwith nanti.
1
2
3
4
5
6
7
| /ip firewall mangle add action=mark-connection chain=forward comment="All Con/Packet-Mark" disabled=no dst-address=192.168.0.0/16 new-connection-mark=all.con.mark passthrough=yes add action=mark-packet chain=forward comment="" connection-mark=all.con.mark disabled=no dst-address=192.168.0.0/16 new-packet-mark=all.packet.mark passthrough=yes |
Sekarang memisahkan packet-packet melalui filtering L7 yaitu untuk kontens streaming dan file extensi,
yang pertama kita membuat regex L7 dahulu.
3.a. membuat regex Youtube
yang pertama kita membuat regex L7 dahulu.
3.a. membuat regex Youtube
1
2
| /ip firewall layer7-protocol add comment="" name=youtube regexp="^.+.c.youtube.com.*$" |
3.b. membuat regex file extensi (jika anda mempunyai koleksi extensi tinggal sisipkan saja disini)
1
2
3
4
5
| /ip firewall layer7-protocol add comment="" name=kontens regexp="^.*(get|GET).+.(exe|rar|zip|7z|cab|asf|m ov|wmv|mpg|mpeg|mkv|avi|flv|pdf|wav|rm|mp3|mp4|ram|rmvb|dat|daa|iso|nrg|bi n|vcd|mp2|3gp|mpe|qt|raw|wma|ogg|doc|deb|tar|bzip|gzip|gzip2|0[0-1][0-1]). *$" |
4. Kembali ke menu mangle dan membuat packet streaming Youtube
1
2
3
4
| /ip firewall mangle add action=mark-packet chain=forward comment=Youtube disabled=no dst-address= 192.168.1.6 layer7-protocol=youtube new-packet-mark=streaming passthrough=no protocol=tcp src-port=80 |
Penjelasan:
chain memakai forward karena berada disusunan paling depan dalam system MikroTik, kita memfilter dari awal dan dst-address src-port=80 hanya memfilter menuju ke IP HC dan sumber dari port 80 saja. karena semua trafik sudah di redirect ke internal proxy otomatis internal-proxy mengirim ke parentnya yaitu IP HCnya dengan demikian nanti saat terjadi HIT tidak akan di proses lagi oleh mangle ini (poin 4) karena chainnya sudah berada di bawahnya forward otomatis trafik HIT youtube menjadi bypass.
chain memakai forward karena berada disusunan paling depan dalam system MikroTik, kita memfilter dari awal dan dst-address src-port=80 hanya memfilter menuju ke IP HC dan sumber dari port 80 saja. karena semua trafik sudah di redirect ke internal proxy otomatis internal-proxy mengirim ke parentnya yaitu IP HCnya dengan demikian nanti saat terjadi HIT tidak akan di proses lagi oleh mangle ini (poin 4) karena chainnya sudah berada di bawahnya forward otomatis trafik HIT youtube menjadi bypass.
5. Menandai packet file extensi atau yang biasa kerap menjadi jalur downloader
sama halnya pada poin 4 ini hanya menandai trafik yang menuju ke IP HC saja bedanya ini memakai L7 kontens.
sama halnya pada poin 4 ini hanya menandai trafik yang menuju ke IP HC saja bedanya ini memakai L7 kontens.
1
2
3
4
| /ip firewall mangle add action=mark-packet chain=forward comment=Downloader disabled=no dst-address=192.168.1.6 layer7-protocol=kontens new-packet-mark=download passthrough=no protocol=tcp src-port=80 |
6. Menandai packet not downloader atau kalau saya menyebutnya packet browsing
rule ini sama dengan rule poin 5 cuma bedanya ini memfilter packet kebalikannya, jadi selain extensi yg berada dalam regex kontens akan masuk ke mangle ini.
rule ini sama dengan rule poin 5 cuma bedanya ini memfilter packet kebalikannya, jadi selain extensi yg berada dalam regex kontens akan masuk ke mangle ini.
1
2
3
4
| /ip firewall mangle add action=mark-packet chain=forward comment=Browsing disabled=no dst-address=192.168.1.6 layer7-protocol=!kontens new-packet-mark=browsing passthrough=no protocol=tcp src-port=80 |
Penjelasan:
jika data yang lewat bukan berkontens youtube dan file extensi (lewat poin 4 dan 5) maka data yang lewat akan di proses dalam mangle ini apapun file extensinya walau tidak diketahui sekalipun. pembagian bandwitdhnya silahkan simak poin 12 .
dan ketiga rule mangle (poin 4,5 dan 6) packet ini memakai passthrough no artinya supaya data yg valid diproses oleh masing-masing mangle diatas tidak akan di proses lagi oleh rule mangle yang akan ada di bawahnya nanti.
jika data yang lewat bukan berkontens youtube dan file extensi (lewat poin 4 dan 5) maka data yang lewat akan di proses dalam mangle ini apapun file extensinya walau tidak diketahui sekalipun. pembagian bandwitdhnya silahkan simak poin 12 .
dan ketiga rule mangle (poin 4,5 dan 6) packet ini memakai passthrough no artinya supaya data yg valid diproses oleh masing-masing mangle diatas tidak akan di proses lagi oleh rule mangle yang akan ada di bawahnya nanti.
Sekarang tinggal menandai packet yang menuju ke IP klien tujuannya jelas untuk memfilter trafik yang tidak masuk ke proxy atau selain port 80 termasuk protokol UDP dll..
7. Menandai IP klien 001 (192.168.100.1)
1
2
3
4
| /ip firewall mangle add action=mark-packet chain=forward comment=Klien001 connection-mark= all.con.mark disabled=no dst-address=192.168.100.1 new-packet-mark= klien001 passthrough=no |
Penjelasan:
semua penandaan IP klien memakai connection-mark=all.con.mark (con-mark) sesuai yang telah kita buat mangle pada poin 3 tadi, passthrough=no karena disini juga sudah tidak akan diproses lagi setelah masuk ke IP klien. Selanjutnya ulangi penandaan IP klien sebanyak jumlah Network anda dengan tetap memakai con-mark yg sama dan passthrough=no.
semua penandaan IP klien memakai connection-mark=all.con.mark (con-mark) sesuai yang telah kita buat mangle pada poin 3 tadi, passthrough=no karena disini juga sudah tidak akan diproses lagi setelah masuk ke IP klien. Selanjutnya ulangi penandaan IP klien sebanyak jumlah Network anda dengan tetap memakai con-mark yg sama dan passthrough=no.
Untuk trafik upload saya hanya memakai simple saja karena untuk upload kadang berbeda-beda antara isp satu dengan lainnya,jadi silahkan setting sendiri-sendiri jika memakai modem adsl atau dedicated line. berhubung saya memakai dedicated maka network saya cukup memakai mangle berikut:
8. Menandai tarfik upload dan nanti pembagian bandwidthnya memakai pcq rate
1
2
3
4
5
6
7
| /ip firewall mangle add action=mark-connection chain=prerouting comment="All upload" disabled=no new-connection-mark=all.con.up passthrough=yes src-address= 192.168.100.0/24 add action=mark-packet chain=prerouting comment="" connection-mark=all.con.up disabled=no new-packet-mark=all.packet.up passthrough=yes src-address= 192.168.100.0/24 |
Penting!!!
contoh mangle ini jangan dijadikan patokan untuk network anda silahkan di modif dan atur sesuai kebutuhan masing-masing
contoh mangle ini jangan dijadikan patokan untuk network anda silahkan di modif dan atur sesuai kebutuhan masing-masing
Beralih ke menu QUEUE dan disini saya ambil contoh untuk bandwidth 3Mbps dan reserverd bandwidth untuk game online
berhubung senjata utama disini memakai PCQ kita buat dulu pcq_rate sebagai berikut:
berhubung senjata utama disini memakai PCQ kita buat dulu pcq_rate sebagai berikut:
9. Membuat pcq_dow pcq_up dan pcq_browsing
Beralih ke tab queue-tree dan untuk tutorial disini saya memakai screenshot winbox saja biar cepet
10. Membuat queue output/hit tujuannya untuk melimit trafik yang keluar ke lan supaya tidak memakan resource RB dan dilimit sesuai kondisi networknya.
11. Membuat Parent untuk ALL Download dengan max-limit 2.5mbps sisa 512k buat spare games online jika untuk gamenet klo warnet murni bisa dipakai semua 3Mbps.
ether2 disini adalah interface LAN
ether2 disini adalah interface LAN
12. Membuat queue Browsing dengan pengelompokan masing-masing segmen dibagi 256k oleh pcq_browsing (poin 9.c.) dengan max-limit 2Mbps.
13. Membuat queue Download dengan pengelompokan masing-masing segmen dibagi 384k oleh pcq_down (poin 9.a.) dengan max-limit 1Mbps.
14. Membuat queue Youtube/Streaming video dengan pengelompokan total max-limit 1Mbps.
(Max-limit silahkan sesuaikan dengan network masing-masing, krn berapapun bandwitdh dikasih ke user pasti kurang)
(Max-limit silahkan sesuaikan dengan network masing-masing, krn berapapun bandwitdh dikasih ke user pasti kurang)
15. Membuat queue klien dengan max-limit 256k sampai denga jumlah network anda.
16. Membuat queue upload global dengan pcq_up sesuai poin 9.b. jadi masing-masing segmen dibagi 128kbps
atau sesuaikan dengan kondisi network anda.
atau sesuaikan dengan kondisi network anda.
Untuk topologi queue-tree ini sudah di test dalam dedicated line 1:1 jadi jangan di jadikan patokan seumpama anda memakai adsl modem maupun bandwidth share, silahkan pakai topologi yang sudah sesuai dengan network anda.
kalau anda yang sudah expert bisa memakai 2 MikroTik supaya enak dalam memanage bandwidth bisa per-port per-ip per-source ip dll layaknya tidak memakai proxy. topologinya bisa anda tengok di thread kaskus:
http://www.kaskus.us/showthread.php?t=11720206
http://www.kaskus.us/showthread.php?t=11720206
ini sampel queue-treenya