Memisahkan Bandwidth Lokal dan International menggunakan Mikrotik

From OnnoWiki
Jump to navigation Jump to search

Written by harijanto@datautama.net.id

http://www.datautama.net.id
Wednesday, 08 November 2006

Versi 3

Perubahan dari versi sebelumnya:

  1. Proses mangle berdasarkan address-list
  2. 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

MIkrotik-Pisahbw1.jpg

Gambar 1. Skenario Jaringan


Penjelasan:

  1. 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
  2. Bandwidth dari ISP misalnya 256Kbps internasional dan 1024Kbps lokal IIX
  3. 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

Mikrotik-Pisahbw2.jpg

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:

Mikrotik-Pisahbw3.jpg

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:


Mikrotik-Pisahbw4.jpg

Gambar 4. Hasil bandwidth meter komputer 192.168.2.4 ke lokal ISP


Mikrotik-Pisahbw5.jpg

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.



Pranala Menarik