Memisahkan Bandwidth Lokal dan International menggunakan Mikrotik
Written by harijanto@datautama.net.id
http://www.datautama.net.id Wednesday, 08 November 2006
Versi 3
Perubahan dari versi sebelumnya:
- Proses mangle berdasarkan address-list
- Pemisahan traffic Indonesia dan overseas lebih akurat
Semakin berkembangnya konten Internet lokal di Indonesia telah memberikan peluang bisnis baru dalam industri Internet di Indonesia. Saat ini banyak Internet Service Provider (ISP) yang menawarkan paket bandwidth lokal atau IIX yang lebih besar dibandingkan bandwidth Internet Internasional, hal ini seiring dengan semakin banyaknya pengelola RT/RW-net yang mampu menyediakan layanan koneksi Internet yang lebih terjangkau bagi lingkungan sekitarnya.
Permasalahan umum yang terjadi pada jaringan RT/RW-net adalah masalah pengaturan bandwidth. Pada umumnya pengelola RT/RW-net akan kesulitan pada saat ingin memisahkan antara traffic lokal dengan traffic internasional karena umumnya jaringan RT/RW-net hanya menggunakan static routing, berbeda dengan ISP yang mampu membangun jaringan yang lebih komplek menggunakan protocol routing BGP sehingga ISP dapat dengan mudah memisahkan antara traffic local dan internasional.
Untuk memisahkan traffic lokal dengan traffic internasional tersebut RT/RW-net dapat dengan mudah menggunakan PC Router + Sistem Operasi Mikrotik, Mikrotik sebenarnya adalah linux yang sudah di buat sedemikian rupa oleh pengembangnya sehingga sangat mudah diinstall dan di konfigur dengan banyak sekali fitur dan fungsi. Untuk lebih lanjut mengenai mikrotik dapat dilihat pada situs webnya http://www.mikrotik.com atau http://www.mikrotik.co.id
Berikut adalah sekenario jaringan dengan Mikrotik sebagai router
Gambar 1. Skenario Jaringan
Penjelasan:
- Mikrotik Router dengan 2 Network Interface Card (NIC) Ether1 dan Ether3, dimana Ether1 adalah Ethernet yang terhubung langsung ke ISP dan Ether3 adalah Ethernet yang terhubung langsung dengan jaringan 192.168.2.0/24
- Bandwidth dari ISP misalnya 256Kbps internasional dan 1024Kbps lokal IIX
- Komputer 192.168.2.4 akan diberi alokasi bandwidth 128Kbps internasional dan 256Kbps lokal IIX
Untuk memisahkan antara traffic lokal IIX dengan traffic internasional caranya adalah dengan menandai paket data yang menuju atau berasal dari jaringan lokal IIX menggunakan mangle. Pertanyaannya bagaimana caranya Mikrotik bisa mengetahui paket tersebut menuju atau berasal dari jairngan lokal IIX?
Jawabannya adalah dengan mengambil data dari http://lg.mohonmaaf.com
karena http://lg.mohonmaaf.com sudah tidak aktif maka data dapat diambil dari:
http://203.89.24.3/cgi-bin/lg.cgi
Pilih Query dengan men-cek-list BGP dan klik Submit
Gambar 2. Hasil Query http://lg.mohonmaaf.com untuk perintah “show ip bgp”
Fungsi dari http://lg.mohonmaaf.com adalah sebagai fasilitas looking glass jaringan lokal yang dikelola oleh PT. IDC , terima kasih kepada Bapak Johar Alam yang telah menyediakan layanan tersebut.
Dari hasil query tersebut selanjutnya simpan sebagai text files untuk selanjutnya dapat diolah dengan menggunakan spreadsheet contohnya Ms. Excel untuk mendapatkan semua alamat Network yang diadvertise oleh router-router BGP ISP lokal Indonesia pada BGP router IDC atau National Inter Connection Exchange (NICE).
Pada penjelasan versi-2 dokumen ini saya menggunakan teknik langsung memasukkan daftar ip blok ke /ip firewall mangle, dengan teknik ini saya harus memasukkan dua kali daftar ip yang didapat dari router NICE ke /ip firewall mangle.
Cara lain yang lebih baik adalah dengan memasukkan daftar ip blok dari router NICE ke /ip firewall address-list dengan demikian maka pada /ip firewall mangle hanya terdapat beberapa baris saja dan pemisahan traffic Indonesia dan overseas dapat lebih akurat karena mangle dapat dilakukan berdasarkan address-list saja.
Lebih jelasnya adalah sbb:
Selanjutnya buat script berikut untuk dapat diimport oleh router Mikrotik
/ ip firewall address-list add list=nice address=58.65.240.0/23 comment="" disabled=no add list=nice address=58.65.242.0/23 comment="" disabled=no add list=nice address=58.65.244.0/23 comment="" disabled=no add list=nice address=58.65.246.0/23 comment="" disabled=no add list=nice address=58.145.174.0/24 comment="" disabled=no add list=nice address=58.147.184.0/24 comment="" disabled=no add list=nice address=58.147.185.0/24 comment="" disabled=no dst…
untuk mendapatkan script diatas dapat melalui URL berikut:
http://www.datautama.net.id/harijanto/mikrotik/datautama-nice.php
URL diatas secara online akan melakukan query ke router NICE dari http://lg.mohonmaaf.com
CATATAN:
Karena lg.mohonmaaf.com tidak dapat diakses maka utk daftar ip local dapat di ambil dari
http://ixp.mikrotik.co.id/download/nice.rsc
atau dari
http://www.datautama.net.id/harijanto/mikrotik/datautama-nice.php
yang datanya dari looking glass DatautamaNet
dari hasil URL diatas copy lalu paste ke mikrotik dengan menggunakan aplikasi putty.exe ssh ke ipmikrotik tersebut, caranya setelah di copy teks hasil proses URL diatas lalu klik kanan mouse pada jendela ssh putty yang sedang meremote mikrotik tersebut. Cara ini agak kurang praktis tetapi karena jika script diatas dijadikan .rsc ternyata akan bermasalah karena ada beberapa baris ip blok yang saling overlap sebagai contoh:
\... add address=222.124.64.0/23 list="nice" [datautama@router-01-jkt] > /ip firewall address-list \ \... add address=222.124.64.0/21 list="nice" address ranges may not overlap
dimana 222.124.64.0/21 adalah supernet dari 222.124.64.0/23 artinya diantara dua blok ip tersebut saling overlap, sehingga pada saat proses import menggunakan file .rsc akan selalu berhenti pada saat menemui situasi seperti ini.
Sampai saat ini saya belum menemukan cara yang praktis utk mengatasi hal tersebut diatas. Kalau saja kita bisa membuat address-list dari table prefix BGP yang dijalankan di mikrotik maka kita bisa mendapatkan address-list dengan lebih sempurna.
Selanjutnya pada /ip firewall mangle perlu dilakukan konfigurasi sbb:
/ ip firewall mangle add chain=forward src-address-list=nice action=mark-connection \ new-connection-mark=mark-con-indonesia passthrough=yes comment="mark all \ indonesia source connection traffic" disabled=no add chain=forward dst-address-list=nice action=mark-connection \ new-connection-mark=mark-con-indonesia passthrough=yes comment="mark all \ indonesia destination connection traffic" disabled=no add chain=forward src-address-list=!nice action=mark-connection \ new-connection-mark=mark-con-overseas passthrough=yes comment="mark all \ overseas source connection traffic" disabled=no add chain=forward dst-address-list=!nice action=mark-connection \ new-connection-mark=mark-con-overseas passthrough=yes comment="mark all \ overseas destination connection traffic" disabled=no add chain=prerouting connection-mark=mark-con-indonesia action=mark-packet \ new-packet-mark=indonesia passthrough=yes comment="mark all indonesia \ traffic" disabled=no add chain=prerouting connection-mark=mark-con-overseas action=mark-packet \ new-packet-mark=overseas passthrough=yes comment="mark all overseas \ traffic" disabled=no
Langkah selanjutnya adalah mengatur bandwidth melalui queue simple, untuk mengatur bandwidth internasional 128Kbps dan bandwidth lokal IIX 256Kbps pada komputer dengan IP 192.168.2.4 dapat dilakukan dengan contoh script sbb:
/ queue simple add name="harijant-indonesia" target-addresses=192.168.2.4/32 \ dst-address=0.0.0.0/0 interface=all parent=none packet-marks=indonesia \ direction=both priority=8 queue=default/default limit-at=0/0 \ max-limit=256000/256000 total-queue=default disabled=no add name="harijanto-overseas" target-addresses=192.168.2.4/32 \ dst-address=0.0.0.0/0 interface=all parent=none packet-marks=overseas \ direction=both priority=8 queue=default/default limit-at=0/0 \ max-limit=128000/128000 total-queue=default disabled=no
Script diatas berarti hanya komputer dengan IP 192.168.2.4 saja yang di batasi bandwidthnya 128Kbps internasional (overseas) dan 256Kbps lokal IIX (indonesia) sedangkan yang lainnya tidak dibatasi.
Hasil dari script tersebut adalah sbb:
Gambar 3. simple queue untuk komputer 192.168.2.4
Dengan demikian maka komputer 192.168.2.4 hanya dapat mendownload atau mengupload sebesar 128Kbps untuk internasional dan 256Kbps untuk lokal IIX.
Untuk mengujinya dapat menggunakan bandwidthmeter sbb:
Gambar 4. Hasil bandwidth meter komputer 192.168.2.4 ke lokal ISP
Gambar 5. Hasil bandwidth meter ke ISP internasional
Dengan demikian berarti Mikrotik telah berhasil mengatur pemakaian bandwidth internasional dan lokal IIX sesuai dengan yang diharapkan pada komputer 192.168.2.4.
Pada penjelasan versi-3 ini proses mangle terhadap traffic “overseas” dapat lebih akurat karena menggunakan address-list dimana arti dari src-address=!nice adalah source address “bukan nice” dan dst-address=!nice adalah destination address “bukan nice”.
Sehingga demikian traffic “overseas” tidak akan salah identifikasi, sebelumnya pada penjelasan versi-2 traffic “overseas” bisa salah indentifikasi karena traffic “overseas” di definisikan sbb
add connection-mark=mark-con-indonesia action=mark-packet new-packet-mark=indonesia chain=prerouting comment="mark indonesia" add packet-mark=!indonesia action=mark-packet new-packet-mark=overseas chain=prerouting comment="mark all overseas traffic"
packet-mark=!indonesia artinya “packet-mark=bukan paket Indonesia”, padahal “bukan paket Indonesia” bisa saja paket lainnya yang telah didefinisikan sebelumnya sehingga dapat menimbulkan salah identifikasi.
Adapun teknik diatas telah di test pada router mikrotik yang menjalankan NAT , jika router mikrotik tidak menjalankan NAT coba rubah chain=prerouting menjadi chain=forward.
Untuk lebih lanjut mengenai pengaturan bandwidth pada Mikrotik dapat dilihat pada manual mikrotik yang dapat didownload pada
http://www.mikrotik.com/docs/ros/2.9/RouterOS_Reference_Manual_v2.9.pdf
Script diatas dapat diimplementasikan pada Mikrotik Versi 2.9.27 , untuk versi mikrotik sebelumnya kemungkinan ada perbedaan perintah.
Reference:
Selamat mencoba.