BAB 2 LANDASAN TEORI
2.1 MikroTik MikroTik adalah sebuah perusahaan yang berpusat di kota Riga, Latvia yang didirikan pada 1995, yang bergerak dalam bidang pengembangan perangkat router dan sistem ISP nirkabel. MikroTik kini menyediakan perangkat keras dan perangkat lunak untuk menunjang koneksi Internet ke seluruh dunia. Situs resmi MikroTik menyebutkan bahwa riset yang dilakukan oleh MikroTik perihal router diawali dengan menggunakan PC standar, dengan produk routerOS yang dikembangkan oleh perusahaan tersebut. Rilis routerOS terjadi pada tahun 1997, dengan kriteria sistem router yang menyediakan stabilitas, kontrol dan fleksibilitas untuk segala jenis data interface dan routing. Pada tahun 2002, MikroTik mengeluarkan produk perangkat keras dengan merk routerboard yang kini telah terdistribusi ke berbagai penjuru dunia. Salah satu dari varian produk routerboard tersebut digunakan pada penelitian yang dilakukan oleh tim penulis. MikroTik RouterOS merupakan sistem operasi yang dikhususkan untuk produk routerboard keluaran MikroTik, namun RouterOS dapat di-install pada PC dan menjadikan PC tersebut berfungsi sebagai router dengan segala fitur yang dimiliki oleh RouterOS, fitur router tersebut antara lain fitur routing, firewall, bandwidth management, wireless access point, backhaul link, hotspot gateway, VPN server dan lain-lain.
7
8
Berdasarkan informasi yang didapat pada situs resmi MikroTik, RouterOS dibangun dan beroperasi berdasarkan kernel Linux v2.6, dengan tujuan menciptakan sistem yang ringan namun handal. RouterOS mendukung sistem komputer multi-core dan multi-CPU, dapat diinstal pada media penyimpanan data berbasis IDE, SATA dan USB seperti harddisk, kartu CF dan SD serta solid state disk (SSD). Ruang data yang dibutuhkan untuk penginstalan minimal RouterOS adalah sebesar 64MB, sebagai partisi default untuk sistem operasi tersebut. Dukungan terhadap perangkat network interface dari MikroTik RouterOS antara lain meliputi 10 Gigabit ethernet, wireless network dengan standar 802.11a/b/g/n dan 3G modem. Untuk melakukan konfigurasi pada sistem yang sudah tertanam RouterOS, dapat dilakukan dengan berbagai cara, yaitu akses langsung pada perangkat keras dengan keyboard dan monitor, serial console dengan aplikasi terminal, telnet dan secure SSH untuk akses lewat jaringan, melalui aplikasi GUI yang disebut Winbox, interface berbasis web dan API (Application Programming Interface) untuk pembangunan aplikasi pengendali sesuai dengan keinginan pengguna atau pun pengembang. Bila terjadi kasus dimana akses langsung dan komunikasi IP tidak bisa dilakukan, RouterOS dapat diakses lewat komunikasi pada tingkat MAC dengan aplikasi MAC-telnet dan Winbox.
Gambar 1 Tampilan MikroTik RouterOS
9
2.2 Load Balancing Jie Chang et al (2010) menyebutkan bahwa “load balancing adalah sebuah metode untuk memperkuat kapabilitas pemrosesan data yang bertujuan untuk meningkatkan fleksibilitas dan ketersediaan sebuah jaringan”. Kondisi jaringan yang dinamis dan sering kali tidak terprediksi menyebabkan sebuah algoritma load balancing memiliki kompatibilitas yang tinggi dengan beberapa kondisi jaringan tertentu, sementara algoritma load balancing lainya memiliki kompatibilitas yang lebih rendah pada jaringan tersebut (Kang Xi et al, 2011 : 2). Jie Chang et al (2010) dalam penelitiannya menyebutkan beberapa kelebihan implementasi load balancing secara umum, yaitu : 1. Waktu respon akses yang lebih cepat dibandingkan dengan pembagian jalur secara statik, ini dikarenakan beban dibagi ke dalam beberapa jalur sehingga beban pada masing-masing jalur menjadi lebih ringan. 2. Pengaturan untuk mencegah terjadinya penumpukan beban pada salah satu jalur, atau bisa dikatakan pemerataan pembebanan pada masing – masing jalur. 3. Dapat memisahkan dan mengatur jaringan nasional dan internasional agar tidak terjadi saling tarik menarik bandwidth pada jaringan sistem tersebut. 4. Memperkecil kemungkinan terjadinya deadlock trafic yang sering kali terjadi pada perusahaan atau instansi. 5. Redundansi, bilamana salah satu server mati maka koneksi ke jaringan internet dapat tetap berjalan karena menggunakan lebih dari 2 ISP.
10
Pemerataan beban yang ada dalam sistem load balancing bukan pemerataan kapasitas yang diberikan dari masing–masing ISP, melainkan pemerataan beban untuk masing–masing client, sebagai contoh jika ada 3 buah ISP yang digunakan pada sistem, dengan kapasitas bandwidth sebagai berikut: 1. ISP 1 1Mbps 2. ISP 2 2Mbps 3. ISP 3 500Kbps
Yang akan dilakukan sistem load balancing bukan menambahkan menjadi 3.5Mbps, tetapi beban yang dilakukan oleh satu client menjadi sama atau bisa dibilang rata dengan client lainya Beberapa algoritma load balancing yang dipakai berdasarkan informasi dari Cisco Service Module berjudul Understanding CSM Load Balancing Algorithms dengan nomor dokumen 28580, yang dapat diakses dari situs resmi Cisco, adalah sebagai berikut: •
Round Robin. Sebuah algoritma pembagian beban secara bergiliran dan berurutan dari satu jalur ke jalur lain.
•
Least Connection. Sebuah algoritma pembagian beban berdasarkan banyaknya koneksi yang sedang dilayani oleh sebuah server. Server dengan pelayanan koneksi yang paling sedikit akan diberikan beban yang berikutnya akan masuk.
•
Weighted Round Robin and Weighted Least Connection. Adalah algoritma pembagian beban secara Round Robin dan Least Connection dengan penambahan parameter performance pembebanan pada masingmasing server.
11 •
Source and/or Destination IP Hash. Adalah algoritma pembagian beban yang bekerja dengan melakukan pemetaan berdasarkan alamat IP yang ada dalam request yang menuju ke sebuah server. Dalam algoritma ini, parameter subnet mask juga diperhitungkan.
•
Uniform Resource Locator (URL) hashing. Adalah algoritma pembagian beban yang bekerja dengan melakukan pemetaan berdasarkan sebagian atau seluruh URL.
•
Menurut hasil analisa jalur dengan sarana probe. Metode ini menggunakan sarana probe, yaitu pemeriksaan kondisi sebuah jalur dengan mengirimkan sebuah data kosong melalui jalur tersebut. Hasil analisa tersebut kemudian akan menentukan pembagian beban pada jalur yang ada (Kang Xi et al , 2011: 4).
Sementara algoritma load balancing yang digunakan dalam sistem MikroTik routerOS yang dapat dilihat pada situs www.wiki.mikrotik.com adalah: •
Nth. Adalah algoritma pembagian beban dengan melakukan penandaan pada paket sejumlah nilai yang ditentukan secara berurutan dan pembagian beban dapat dilakukan berdasarkan nilai yang sudah diberikan pada paket.
•
Per Connection Classifier(PCC). Adalah algoritma pembagian beban dengan melakukan penandaan connection sesuai dengan algoritma hashing dimana parameter yang diolah dalam proses hashing tersebut diatur oleh user dan pembagian beban dapat dilakukan berdasarkan nilai pada connection tersebut.
Metode load balancing yang disebutkan diatas sebetulnya merupakan proses penandaan yang merupakan fitur dalam MikroTik routerOS, dimana kemudian
12
pembagian beban dilakukan berdasarkan hasil pembagian tersebut dengan menggunakan routing policy yang ditentukan oleh user. Keseluruhan proses ini adalah metode load balancing yang ditawarkan oleh MikroTik.
2.3 Metode Load Balancing PCC Load Balancing dengan metode PCC dilakukan dengan mengambil sejumlah field tertentu dari header IP dan membaginya menjadi nilai 32 bit menggunakan algoritma hashing, sesuai dengan artikel yang dapat dilihat pada situs www.wiki.mikrotik.com. Algoritma hashing adalah algoritma untuk mengubah sebuah nilai string atau karakter menjadi sebuah nilai 32 bit yang sudah pasti, sehingga paket dengan header IP yang sama akan menghasilkan nilai hashing yang sama. Parameter yang dapat dijadikan feeder dalam algoritma hashing adalah sourceaddress, destination-address, source-port dan destination-port. PCC bekerja dengan mengelompokkan koneksi yang keluar dan memasuki router menjadi beberapa kelompok yang ditentukan dari hasil algoritma hashing dan dibagi sesuai dengan jumlah yang sudah ditentukan oleh user. Router akan melakukan pencatatan terhadap jalur gateway yang dilewati di awal koneksi, sehingga pada paket-paket selanjutnya yang masih berkaitan dengan koneksi awalnya akan dilewatkan melalui jalur gateway yang sama. Hal ini membuat PCC memiliki kelebihan dibandingkan metode load balancing yang lain, dimana sering terjadi kegagalan yang disebabkan oleh perpindahan gateway. Hal ini juga yang menjadi pertimbangan penulis untuk memilih metode PCC sebagai metode load balancing yang digunakan dalam penelitian ini. Metode PCC ini tidak melakukan pemecahan paket, melainkan hanya melakukan penandaan pada koneksi sesuai dengan parameter yang diberikan.
13
Routing yang dilakukan adalah membagi beban pada jalur dengan melihat sourceaddress dan destination-address yang disesuaikan dengan hashing table dan pengaturan mangle.
2.4 Metode Failover Failover adalah kemampuan untuk mendeteksi kondisi sebuah jalur yang digunakan dalam jaringan serta mengambil tindak lanjut akan perubahan kondisi seperti jalur yang gagal atau berhenti berfungsi. Failover terjadi tanpa bantuan pihak luar atau bisa dikatakan terjadi secara otomatis tanpa campur tangan manusia, pembuat sistem membuat sistem failover untuk mengantisipasi kegagalan jalur dengan memindahkan komunikasi yang seharusnya melalui jalur tersebut dipindahkan melalui jalur yang lain sehingga komunikasi dapat terus terjaga. Dari penelitian disebutkan bahwa, “Ketersediaan layanan jaringan internet saat ini menjadi semakin penting, namun kontras dengan dunia telekomunikasi dimana ketersediaan layanan didukung dengan jaringan dan alat yang redundan, belum ada pendekatan generik yang terstandardisasi mengenai ketersediaan layanan jaringan internet” (Thomas Dreibholz, Erwin P. Rathgeb, 2009: 1). Dalam penelitian ini dikatakan bahwa saat ini belum ada standar mengenai ketersediaan layanan jaringan internet yang redundan, sehingga tidak ada standar minimum mengenai performa failover yang baik.
2.5 Firewall Firewall pada jaringan secara umum merupakan sebuah layanan yang membatasi akses dan lalu lintas paket data yang terjadi antar jaringan, dapat diartikan
14
sebagai ‘pagar’ antara jaringan dalam yang dibangun dengan jaringan luar, dalam hal ini Internet. Terdapat empat jenis firewall Internet, namun lebih tepatnya tiga jenis dengan satu jenis hybrid, yaitu packet filtering firewall, circuit gateway firewall, dan application gateway firewall.
2.5.1 Packet Filtering Firewall Firewall jenis ini melakukan screening berbasis paket pada alamat yang diberikan. Firewall ini beroperasi pada tingkat paket IP(layer 3 model OSI), kemudian melakukan pengambilan keputusan apakah paket tersebut dilewatkan atau tidak berdasarkan header paket tersebut. Packet filtering firewall dikategorikan kembali menjadi tiga jenis berdasarkan metode filtering-nya : -
Static Filtering
Jenis ini banyak diimplementasikan pada router berfitur firewall, dimana rule-rule filter didefinisikan secara manual -
Dynamic Filtering
Jenis firewall dengan rule filter yang dapat berubah secara dinamis berdasarkan kejadian yang terdeteksi oleh router seperti, mengijinkan paket FTP dari jaringan luar hanya saat ada permintaan layanan FTP dari jaringan dalam. -
Stateful Inspection
Jenis firewall dengan rule filter yang dapat berubah secara dinamis berdasarkan perubahan kondisi dan data dari paket tersebut secara berkesinambungan. Dalam penelitian disebutkan bahwa jenis firewall
15
ini dapat mengingat paket sebelumnya kemudian mengikuti kondisi dari sesi dari paket tersebut (L. D’Acunto et al, 2009)
2.5.2
Circuit Gateway Circuit gateway beroperasi pada layer network transport dimana
koneksi diotorisasi berdasarkan alamat. Seperti halnya packet filtering firewall, circuit gateway tidak dapat melihat isi data yang ditransaksikan antar jaringan, firewall jenis tersebut hanya melakukan inspeksi berdasarkan header paket, namun circuit gateway dapat mencegah terjadinya koneksi langsung antar jaringan.
2.5.3
Application Gateway Application gateway atau dapat disebut sebagai firewall berbasis
proxy beroperasi pada tingkat application(layer 7 pada model OSI), firewall jenis ini dapat melakukan pemeriksaan paket sampai pada tingkat application, keputusan untuk memberikan ijin atau tidak dapat dilakukan berdasarkan isi data yang ditransaksikan seperti perintah yang diberikan pada FTP atau URL yang diberikan pada HTTP.
2.5.4
Hybrid Tipe hybrid adalah penggabungan fitur dari satu atau lebih jenis
firewall tersebut, untuk menciptakan firewall yang sesuai dengan kebutuhan. Firewall pada MikroTik yang digunakan dalam penelitian yang dilakukan tim penulis termasuk ke dalam tipe firewall hybrid yang mengimplementasikan packet filtering firewall yang berfungsi untuk
16
memastikan keamanan data, mengelola alur data yang datang menuju router, berasal dari router dan juga yang melewati router untuk melakukan filter traffic yang keluar dari jaringan, seperti fungsi firewall pada umumnya. Fitur yang banyak digunakan adalah fasilitas untuk menandai jenis paket data berdasarkan metode ketiga jenis firewall di atas untuk melakukan pengelolaan paket, yang disebut dengan mangle. Filter dan mangle dapat dilakukan berdasarkan alamat IP, address range, port, port range, protokol IP, DSCP dan berbagai parameter lainnya.
2.6 Mangle Istilah mangle pada firewall RouterOS menurut artikel yang dapat dilihat pada situs www.wiki.mikrotik.com memiliki fungsi melakukan penandaan(mangle) paket berdasarkan header paket IP untuk pengolahan ditahap selanjutnya seperti paket IP yang diterapkan Quality of Service (QoS), atau pengolahan routing untuk paket yang sudah diberi tanda tertentu. Penandaan yang dilakukan hanya berlaku pada router yang bersangkutan, apabila sebuah jenis paket IP spesifik telah ditandai, maka tanda tersebut tidak diteruskan ke komponen jaringan lain. Fasilitas mangle pada RouterOS menjadi salah satu komponen utama dalam penelitian ini, pengolahan routing dan load balancing dilakukan pada paket IP yang spesifik dengan melakukan mangle sesuai dengan parameter-parameter yang dibutuhkan. Letak mangle pada alur data, sehingga mangle yang dibuat dapat tepat sesuai dengan kebutuhan, dapat dilihat pada gambar 2.
2.6.1
Address List
17
Address list pada RouterOS mengijinkan user untuk melakukan klasifikasi/pengelompokan IP address. Fasilitas firewall, mangle dan NAT dapat menggunakan daftar pada address list untuk melakukan pencocokan paket yang berkaitan dengan alamat-alamat tersebut.
2.6.2
Per Connection Classifier Mangle Hasil dari PCC merupakan sebuah parameter dalam proses mangle
yang dapat disertakan sehingga penandaan suatu paket yang ditransaksikan menjadi lebih spesifik. Metode PCC yang digunakan oleh routerOS adalah dengan memilih sebuah bagian dari header IP dan mengkonversi nilai pada bagian tersebut menjadi sebuah nilai 32-bit yang dengan menggunakan algoritma hashing. Nilai tersebut kemudian dibagi dengan sebuah nilai pembagi, dimana sisanya akan dibandingkan dengan suatu nilai pembanding. Bila hasil sisa pembagian tersebut sama dengan nilai pembandingnya, maka paket tersebut akan ditandai dan sebaliknya. Bagian dari header IP yang digunakan dapat berupa satu atau kombinasi nilai dari source-address, destination-address, source-port atau destination-port
2.6.3
Mark Connection & Mark Routing Mark Connection dan Mark Routing pada routerOS merupakan
sebuah tindakan yang dapat dilakukan dalam proses mangle. Proses penandaan koneksi dan routing tersebut dapat menggunakan parameter mangle pada umumnya. Ketika sebuah host melakukan transaksi data dengan host yang lain, maka jalur yang terpilih untuk melakukan transaksi tersebut diberi nama sesuai dengan koneksi dan jalur yang diberi tanda dalam mark-
18
connection. Selanjutnya connection mark sebagai hasil dari penandaan tersebut dapat digunakan kembali menjadi parameter untuk membuat sebuah policy routing rule untuk meneruskan paket data, atau disebut dengan mark routing.
Berikut ini adalah diagram alur paket data yang berlaku pada RouterOS, diagram berikut berguna untuk membantu identifikasi paket, sehingga rule yang dibuat menjadi sesuai dengan yang dibutuhkan.
Gambar 2 Diagram Alur Data MikroTik
2.7 Route Router yang menggunakan routerOS menyimpan informasi routing di beberapa tempat berbeda, yaitu:
2.7.1
FIB (Forwarding Information Base) FIB berguna untuk mengambil keputusan forwarding paket. FIB
berisi salinan informasi seluruh route yang aktif dan policy routing rules yang akan digunakan untuk penerusan paket Secara default (kondisi ketika tidak ada nilai dari routing-mark) seluruh informasi mengenai route yang aktif berada tabel utama dan akan
19
berlaku satu rule implisit, yaitu rule dasar untuk semua koneksi (yang berlaku seperti default route) yang digunakan oleh tabel utama untuk destination lookup.
2.7.2
RIB (Routing Information Base) RIB berisi informasi mengenai pengelompokan dari route berdasarkan
nilai dari routing-mark. Route yang tidak memiliki routing-mark tetap berada di dalam tabel routing utama, yang digunakan untuk pencarian nexthop. Yang tersimpan dalam RIB adalah informasi routing lengkap termasuk static route dan policy routing rules yang diatur oleh user, informasi routing yang didapat dari protokol routing dan informasi mengenai network yang terhubung.
2.7.3 Routing Table Lookup FIB menggunakan informasi sebagai berikut dari paket data untuk menentukan kemana paket tersebut akan diteruskan:
Source-address
Destination-address
Source interface
Routing mark
Type of Service (ToS, tidak digunakan oleh RouterOS dalam
rule policy routing, namun parameter ini merupakan bagian dari routing cache lookup key)
Kemudian tindakan yang dapat dilakukan adalah sebagai berikut :
20
receive packet locally
discard packet (baik silently maupun dengan mengirimkan respon balik menggunakan pesan ICMP kepada pengirim paket)
mengirimkan paket tersebut menuju alamat IP melewati interface tertentu.
Hasil dari routing decision tersebut akan disimpan dalam routing cache, untuk menambah kinerja ketika paket lain dengan parameter sama akan di-routing kembali, maka hasil tersebut akan digunakan. Hal tersebut juga akan mengijinkan terjadinya implementasi per-connection load balancing menggunakan metode ECMP karena nilai-nilai yang digunakan saat lookup pada routing cache adalah sama untuk semua paket yang menggunakan koneksi yang sama dan dikirimkan menuju destination yang sama. Bila terjadi kondisi dimana tidak ada entry pada routing cache untuk suatu paket, maka hal berikut dilakukan:
pengecekan apakah paket tersebut seharusnya menuju alamat lokal / alamat dari router
memproses implicit policy routing rules
memproses policy routing rules yang dibuat oleh user
memproses implicit catch-all rule yang digunakan oleh tabel main (seperti yang dijelaskan di atas)
mengembalikan hasil ‘network unreachable’
Hasil routing decision yang mungkin terjadi adalah sebagai berikut:
21
•
alamat IP dan interface untuk nexthop
•
interface point-to-point
•
pengiriman lokal (alamat IP lokal router)
•
discard
•
ICMP prohibited
•
ICMP host unreachable
•
ICMP network unreachable
Rules yang tidak sesuai dengan informasi paket akan akan di-ignore. Bila dalam rule mengandung perintah drop atau unreachable, maka perintah tersebut akan menjadi hasil routing decision, bila rule tersebut mengandung perintah lookup, maka destination-address dari paket tersebut akan di-lookup pada tabel routing yang bersangkutan, atau yang didapat dari hasil rule tersebut, namun apabila proses lookup tidak berhasil, maka FIB akan memproses ke rule yang berikutnya, sebaliknya: •
bila disertakan jenis route-nya, misalnya blackhole, prohibit, atau unreachable, maka hasil routing decision akan menjadi seperti parameter tersebut.
•
bila merupakan route yang sudah terkoneksi (connected route), atau route dengan nilai gateway yang merupakan sebuah interface, maka interface dan destination-address akan menjadi hasil routing decision.
•
bila route tersebut memiliki alamat IP sebagai nilai dari parameter gateway, maka alamat IP dan interface yang berkaitan dengan alamat IP tersebut akan menjadi hasil routing decision.
•
bila route tersebut memiliki beberapa nilai nexthop, maka hasil routing decision akan mengambil salah satu dengan metode round robin.
22
Hasil dari routing decision setelah proses di atas akan menjadi entry baru atau menggantikan entry yang lama pada routing cache. Sifat-sifat dari routing tersebut dimanfaatkan untuk membuat algoritma failover untuk setiap koneksi Internet yang digunakan pada penelitian ini.
2.8 NAT NAT (Network
Address Translation) adalah
sebuah
metode
yang
memungkinkan komputer dengan alamat IP privat untuk bisa mengakses jaringan dengan alamat IP publik atau Internet (L. D’Acunto et al : 2009). NAT bekerja pada router dengan mengubah source-address dari sebuah paket dari dalam jaringan dengan alamat IP privat menjadi alamat IP publik yang dapat diterima oleh jaringan Internet. Source-address dari paket yang bertujuan ke Internet kemudian disimpan dalam sebuah tabel oleh router disertai dengan alamat IP publik yang digunakan oleh paket tersebut untuk menuju ke jaringan internet, sehingga pada saat paket balasan tiba, paket tersebut dapat dikembalikan menuju alamat IP privat yang benar. Ada dua tipe NAT, yaitu: 1.
Source NAT (SNAT) Source NAT adalah ketika mengubah alamat asal dari paket pertama dengan kata lain merubah dari mana koneksi terjadi. SNAT selalu dilakukan setelah routing, sebelum paket keluar ke jaringan. Contoh dari SNAT adalah Masquerading.
2.
Destination NAT (DNAT)
23
Destination NAT adalah ketika mengubah alamat tujuan dari paket pertama dengan kata lain merubah ke mana komunikasi terjadi. DNAT selalu dilakukan sebelum routing, ketika paket masuk dari jaringan. Contoh dari DNAT adalah port forwarding, load sharing dan transparent proxy.