Implementasi K-Shortest Path Routing pada Jaringan Software Defined
Network
Romy Dwi Andika Manullang1, Widhi Yahya2, Dany Primanita Kartikasari3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1manullangromy@gmail.com, 2widhi.yahya@ub.ac.id, 3dany.jalin@ub.ac.id
Abstrak
Software Defined Network (SDN) merupakan pemodelan jaringan yang memisahkan antara control plane dan data plane. Routing jaringan merupakan salah satu bagian dari SDN yang menarik untuk
dilakukan penelitian. Algoritme routing yang paling sering digunakan saat ini adalah algoritme routing
single path, Algoritme ini hanya menggunakan satu jalur saja sebagai media pengiriman data. Hal ini
akan mengakibatkan performa pada jaringan semakin berkurang yang disebut dengan kemacetan jaringan. Dalam penelitian ini algoritme routing yang digunakan yaitu Yen K-Shortest Path. Algoritme ini akan mencari sebanyak K jalur yang diinginkan sebagai media pengiriman data. Algoritme Yen
K-shortest path akan meminimalisir terjadinya kemacetan pada jaringan. Algoritme ini diimplementasikan
menggunakan emulator Mininet dan Ryu controller pada tiga topologi pengujian. Pengujian yang dilakukan untuk mengukur kinerja dari algoritme meliputi convergence time, throughput, packet loss. Data yang didapatkan pada pengujian menggunakan algoritme Yen K-Shortest Path dibandingkan dengan data yang didapatkan menggunakan algoritme Dijkstra dengan metode pengujian yang sama. Serta terdapat pengujian untuk melihat keberhasilan algoritme menggunakan lebih dari satu jalur pada pengujian multipath. Pada pengujian convergence time, algoritme Yen K-Shortest Path mendapatkan rata-rata sebesar 0,01962 detik untuk topologi pertama, dan 0,02409 detik untuk topologi kedua. Berdasarkan hasil pengujian throughput, Algoritme Yen K-Shortest Path mengungguli algoritme Dijkstra dengan peningkatan throughput yang paling tinggi mencapai 176,01 % lebih besar . Untuk hasil pengujian packet loss, Yen K-Shortest Path juga lebih unggul karena memiliki packet loss lebih sedikit dibandingkan dengan algoritme Dijkstra.
Kata kunci: SDN, OpenFlow, Mininet, Ryu, Yen K-Shortest Path, Dijkstra
Abstract
Software Defined Network (SDN) is a network modeling separating control plane and data plane. Network routing is part of SDN that give interest for the research. The most commonly used routing algorithm today is the single path routing algorithm. This algorithm uses only one path as the data transmission medium. This will reduced network performance known as network congestion. In this study we implemented Yen K-Shortest Path as routing algorithm. These algorithm will search for as many K lines as the data transmission medium. The Yen K-shortest path algorithm will minimize network congestion. These algorithms has been implemented using Mininet emulator and Ryu controller in two topology. The tests performed to measure the performance of the algorithm include convergence time, throughput, packet loss. The data obtained in the test using the Yen K-Shortest Path algorithm compared to data obtained using Dijkstra algorithm with the same test method. And there is a test to see the success of the algorithm for using more than one path on multipath testing. In the convergence time test, the Yen K-Shortest Path algorithm gets an average of 0.01962 seconds for the first topology, and 0.02409 seconds for the second topology. Based on the results of throughput testing, the Yen K-Shortest Path algorithm outperformed Dijkstra's algorithm with the highest throughput increase reaching 176.01% larger. For packet loss test results, Yen K-Shortest Path is also superior because it has fewer packet loss than Dijkstra algorithm.
1. PENDAHULUAN
Software-Defined Networking (SDN) merupakan sebuah teknologi dalam jaringan yang memisahkan antara Control Plane dan
Data Plane. Control Plane berfungsi untuk
mengatur bagaimana suatu paket dikirimkan pada suatu jaringan, sedangkan Data Plane merupakan perangkat yang menjalankan kegiatan penerusan atau pengiriman paket berdasarkan informasi yang diberikan control plane (Kreutz, et al., 2015). Protokol yang digunakan untuk merealisasikan konsep SDN disebut Protokol Openflow. Openflow bertujuan untuk penelitian dan eksperimen protokol jaringan (McKeown et al, 2008). Openflow merupakan protokol yang menjadikan SDN bersifat “open”, dimana tidak harus terikat oleh salah satu vendor jaringan saja. Hal ini membuat SDN menjadi solusi untuk teknologi jaringan masa depan karena dapat digunakan untuk komunikasi berbagai macam vendor jaringan yang berbeda. Selain itu SDN juga menerapkan konsep jaringan yang memilii controller terpusat. Controller ini nantinya akan bertanggung jawab untuk memberikan logika
routing dan forwading pada switch. Teknisi SDN
dapat melakukan berbagai hal di dalam
controller mulai dari pengaturan ataupun monitoring jaringan. SDN digunakan untuk
mengatasi masalah pada jaringan komputer yaitu konfigurasi real-time. Seperti yang diutarakan oleh MPLS (Multi Protocol Label Switching) secara teoritis membahas masalah routing dengan kemampuan traffic engineering (TE). Namun, mekanisme TE tidak diimplementasikan dalam jaringan backbone saat ini karena protokol yang kaku dan tidak memungkinkan konfigurasi ulang real-time jaringan. (Das, 2012).
Algoritme Routing Single Path pada OSPF (Open Shortest Path First), tidak dapat sepenuhnya memanfaatkan keseluruhan jalur yang ada pada topologi jaringan. Ketika ditemukan jalur antara node satu dan node selanjutnya algoritme akan melakukan perhitungan cost antar node dan jalur yang akan dipilih adalah jalur yang memiliki cost paling rendah. Jalur tersebut dianggap optimal jika dan hanya jika cost dari jalur tersebut lebih kecil atau sama dengan jalur lain yang belum diselidiki. (Nicholson, 1996). Kelemahan dari OSPF ini adalah ketika memilih jalur untuk mengirimkan data, OSPF hanya melihat dari seberapa besar
ukuran kanal Bandwidth tanpa membandingkan adanya kondisi jalur lain yang tingkat kepadatan lalu lintas komunikasi datanya relatif lebih rendah. Padahal semakin tinggi tingkat kepadatan lalu lintas, komunikasi data pada jalur yang memiliki lalu lintas data yang padat akan berakibat tingginya resiko akan kegagalan hubungan komunikasi data tersebut lalu mengakibatkan gagalnya packet data dikirim dikarenakan penurunan kapasitas bandwidth. Penurunan kapasitas bandwidth tersebut dikarenakan terjadinya penumpukan data pada link tersebut atau yang biasa disebut dengan kemacetan jaringan (kongesti). (Lazuardi, 2016). Pemilihan jalur yang hanya menggunakan satu jalur pengiriman saja hanya akan mengakibatkan
bottleneck pada jalur pengiriman yaitu pengurangan performa dari jalur tersebut, oleh karena itu implementasi K-shortest path routing pada software defined network akan memberikan alternatif jalur lain untuk digunakan sebagai media pengiriman sebanyak K- jalur yang diinginkan, metode ini akan mengatasi permasalahan kemacetan pada jaringan. Selain itu, routing biasanya dilakukan untuk memilih jalur terpendek dan tidak ada prioritas diberikan untuk semua jenis lalu lintas.
Berdasarkan permasalahan routing yang telah dijelaskan diatas, maka fokus dari penelitian ini adalah untuk mencoba mengimplementasikan K-Shortest path routing pada Software Defined Network untuk mengatasi kekurangan dari OSPF. Penelitian ini akan menggunakan algoritme Yen untuk mencari beberapa jalur terpendek dan menggunakan parameter delay untuk memilih jalur yang akan digunakan sebagai jalur pengiriman data.
Controller yang digunakan pada penelitian ini
adalah ryu. Ryu merupakan controller dengan basis bahasa pemograman Phyton. Diharapkan penelitian ini dapat membantu dalam perkembangan protokol routing openflow kedepannya.
2. METODOLOGI PENELITIAN
A. Software Defined Network
Software Defined Network (SDN) merupakan arsitektur jaringan yang bekerja dibawah kendali software sebagai kontrol utama. Dalam SDN, dilakukan pemisahan data dan
control plane. Pemisahan ini mendefinisikan
perangkat switch/router yang berada pada data
forwarding paket data dan memberikan
tangungjawab kepada controller terpusat untuk mengontrol perilaku seluruh jaringan. (B. N. Astuto, 2014). Tujuan dari SDN adalah untuk menyediakan antarmuka terbuka yang dapat mendukung pengembangan software yang dapat mengendalikan konektivitas suatu network resources dan aliran data pada jaringan. Dalam metode jaringan SDN terdapat salah satu protokol yang digunakan untuk menghubungkan antara kontroler dengan switch yaitu protokol
OpenFlow, pada protocol OpenFlow terdapat OpenFlow switch yang berfungsi sebagai switch
dan OpenFlow kontroler yang berfungsi sebagai kontroler. OpenFlow adalah standar pertama mengenai antarmuka komunikasi antara control
layer dan forwarding layer dalam arsitektur SDN.
B. OpenFlow
Openflow merupakan protokol standar pertama untuk komunikasi antara control layer dan forwading/data layer pada arsitektur SDN. Openflow merupakan protokol yang memberikan ijin untuk mengakses dan mengatur
forwading plane pada switch dan router.
Mekanisme kerja protokol openflow adalah ketika sebuah switch OpenFlow menerima paket yang belum terdaftar atau tidak memiliki entri
flow yang cocok, maka switch tersebut akan
meneruskan paket ini menuju Controller.
Controller dapat melakukan drop terhadap paket
tersebut, atau dapat menambahkan entri flow ke tabel flow untuk paket tersebut dan akan mengintruksikan kepada switch untuk meneruskan paker sesuai dengan entri flow yang baru. Ini akan membuat mekanisme komunikasi antara control plane dan data plane yang diatur melalui controller dapat memberikan respon terhadap setiap paket yang datang. (Open Networking Foundation, 2016).
C. Ryu
Ryu merupakan sebuah framework berbasis dari Software Defined Network (SDN) yang diimplementasikan sepenuhnya menggunakan phyton. Ryu menyediakan komponen perangkat lunak dengan API, hal ini membuatnya mudah digunakan para pengembang untuk membuat manajemen jaringan dan kontrol aplikasi baru. (ryu development team, 2017). Pengembangan aplikasi untuk Ryu dapat dilakukan dengan menggunakan bahasa Python. Ryu mendukung berbagai protokol untuk memanajemen jaringan
antara lain OpenFlow, NetConf, Of-config dll. Kebutuhan atas Ryu sebagai OpenFlow controller adalah karena Ryu mendukung OpenFlow versi 1.0 hingga 1.5.
D. Algoritme Yen K-Shortest Path
K-Shortest Path routing merupakan pengembangan dari algoritme Shortest Path
Routing yang digunakan pada jaringan. Dasar
dari algoritme routing yang digunakan dalam
K-Shortest path routing adalah algoritme routing
pada shortest path routing. K-Shortest Path
Routing digunakan untuk mencari sebanyak
K-jalur yang memiliki cost paling kecil dalam jaringan. K-Shortest path routing termasuk ke dalam mekanisme multipath routing dimana,
K-Shortest path routing mampu menggunakan
lebih dari 1 jalur unruk mengirimkan data, hal ini akan meminimalisir terjadinya kemacetan pada jaringan. Algoritme routing yang digunakan untuk implementasi K-Shortest Path routing salah satunya adalah algoritme Yen. Algoritme Yen merupakan pengembangan dari algoritme Dijkstra, yang digunakan untuk mencari lebih dari satu jalur dalam sebuah topologi
Gambar 1. Pseudocode Algoritme Yen
E. Mininet
Mininet merupakan emulator jaringan open
source yang mendukung protokol openflow.
Mininet menggunakan pendekatan secara virtual terhadap host, router, switch, dan link. Mininet dapat disebut sebagai emulator jaringan virtual yang realistis. Mininet dapat juga digunakan untuk membuat topologi jaringan yang cukup kompleks dengan sumber daya yang sedikit. (Lantz, Heller, & McKeown, 2010). Mininet menggunakan virtualisasi berbasis proses untuk
menjalankan banyak host dan switch pada satu
kernel OS. Mininet memanfaatkan virtual software switch OpenvSwitch untuk membangun
topologi OpenFlow SDN. Mininet di sini akan digunakan untuk simulasi jaringan SDN dengan berbagai macam topologi.
3. PERANCANGAN DAN ANALISIS
A. Perancangan Sistem
Perancangan Sistem akan dilakukan dengan melakukan simulasi pada aplikasi emulator jaringan bernama mininet yang terdapat
Operating system berbasis linux. Dan menggunakan Ryu sebagai Controller SDN kemudian juga diperlukan perancangan Topologi dan Perancangan Algoritme Routing yaitu Algoritme Yen K-Shortest Path yang nantinya akan dilakukan beberapa pengujian dan dibandingkan dengan algoritme Dijkstra untuk melihat manakah algoritme yang memiliki performa lebih baik pada jaringan Software
Defined Network.
Sistem ini mensimulasikan jaringan berbasis SDN menggunakan Ryu sebagai
controller. Sedangkan untuk bagian jalur data
menggunakan emulator Mininet, Terdapat dua topologi yang diuji untuk menilai keberhasilan algoritme routing yang dilakukan. Secara urut dinotasikan dengan TOPO1 dan TOPO2 yang terlihat pada Gambar 2 dan Gambar 3. Dengan ketentuan cost bernilai 1000 Mb untuk setiap
link antar switch.
Gambar 2. TOPO1
Gambar 3. TOPO2
B. Simulasi dan Analisis
Terdapat beberapa pengujian yaitu pengujian convergence time, throughput, packet
loss dan pengujian multipath.
1) Pengujian Convergence Time
Pengujian convergence time dilakukan untuk mengetahui waktu yang dibutuhkan controller untuk membentuk sebuah tabel
routing. Pengujian dilakukan dengan cara
mengirimkan paket Internet Control Message
Protocol (ICMP) dengan menggunakan
command ping dari client menuju server pada
topologi. Setelah mendapatkan reply atau balasan dari server, controller akan menampilkan jalur terpendek dan convergence
time pada topologi tersebut.
Gambar 4. Grafik pengujian convergence time
Pada gambar 4 merupakan rata-rata nilai dari hasil pengujian convergence time dilakukan sebanyak 10 kali pada setiap topologi. Dari hasil yang di dapat untuk setiap topologi, perbedaan
convergence time bertambah seiring dengan
penambahan switch pada topologi. 2) Pengujian Throughput
Pengujian throughput dilakukan untuk mengetahui kecepatan data yang diperoleh untuk mengirimkan paket ke dari client menuju server. Pengujian dilakukan dengan dengan menggunakan aplikasi iperf yang dijalankan pada empat buah host. Satu host bertindak sebagi
server dan satu host yang lain bertindak sebagai client yang akan mengirimkan paket data.
Pengujian dilakukan dengan meningkatkan jumlah koneksi client sebanyak 20 koneksi selama 15 detik. Perlakuan seperti ini dilakukan untuk kedua topologi pengujian. Pada algoritme Yen, diberikan nilai max_k = 3, yaitu setiap host dapat menggunakan 3 jalur berbeda untuk mengirimkan data.
Gambar 5. Grafik pengujian throughput di TOPO1
Berdasarkan gambar 5 grafik hasil pengujian throughput pada topologi TOPO1,
throughput rata-rata yang diberikan oleh
algoritme Yen lebih besar dibandingkan dengan
throughput yang diberikan oleh algoritme
Dijkstra.
Gambar 6. Grafik pengujian throughput di TOPO2
Berdasarkan gambar 6 grafik hasil pengujian throughput pada topologi TOPO2,
throughput yang diberikan oleh algoritme Yen
lebih besar dibandingkan dengan throughput rata-rata yang diberikan oleh algoritme Dijkstra. Pada pengujian throughput pada TOPO2 hanya terdapat perbedaan kecil antara kedua algoritme, ini disebabkan pada TOPO2 terjadi bottleneck pada saat pengujian menggunakan algoritme Yen K-Shortest path
3) Pengujian Packet Loss
Pengujian packet loss bertujuan untuk melihat besaran packet yang tidak dapat dikirimkan (drop) dari client menuju server. Pengujian paket loss dilakukan dengan UDP
iperf. Pengujian dilakukan dengan membentuk
koneksi UDP antara host 1 yang bertindak sebagai client secara bersamaan kepada host 2 yang bertindak sebagai server. Pengiriman paket UDP dilakukan dengan peningkatan jumlah koneksi dari 15 sampai 45 koneksi, beban transfer diberikan sebanyak 5 MB untuk masing-masing koneksi. Pada algoritme Yen, diberikan nilai max_k = 3, yaitu setiap host dapat
menggunakan 3 jalur berbeda untuk mengirimkan data.
Gambar 7. Grafik pengujian packet loss TOPO1
Pada gambar 7 merupakan rata-rata nilai dari hasil pengujian packet loss untuk topologi TOPO1. Peningkatan jumlah koneksi client tampak tidak begitu berpengaruh pada persentase paket loss baik menggunakan algoritme Yen maupun algoritme Dijkstra. Dari hasil pengujian packet loss ini juga dapat kita ketahui bahwa algoritme Yen memiliki packet
loss lebih rendah dari pada algoritme Dijkstra.
Rata-rata persentase packet loss pada algoritme Yen untuk TOPO1 mencapai 0,179 % dan untuk algoritme Dijkstra 1,009 %.
Gambar 8. Grafik pengujian packet loss TOPO2
Pada gambar 8 merupakan rata-rata nilai dari hasil pengujian packet loss untuk topologi TOPO2. Peningkatan jumlah koneksi client tampak tidak begitu berpengaruh pada persentase paket loss baik menggunakan algoritme Yen maupun algoritme Dijkstra. Dari hasil pengujian packet loss ini juga dapat kita ketahui bahwa algoritme Yen memiliki packet
loss lebih rendah dari pada algoritme Dijkstra.
Rata-rata persentase packet loss pada algoritme Yen untuk TOPO1 mencapai 0,546 % dan untuk algoritme Dijkstra 1,211 %.
4) Pengujian Multipath
Pengujian multipath bertujuan untuk melihat keberhasilan algoritme untuk menggunakan semua jalur yang telah ditemukan. Data yang digunakan untuk pengujian ini adalah
0 100 200 20 Client Mb p s
Thoroughput TOPO1
Yen K-Shortest path Dijkstra
30 32 34 20 Client Mb p s
Thoroughput TOPO2
data transmisi byte dari tiap path yang telah ditemukan. Untuk melihat pergerakan transmisi data didalam topologi, maka penulis menggunakan aplikasi bernama bwm-ng. Aplikasi bwm-ng dapat memonitor transmisi data berdasarkan port-port yang terdapat dalam
switch. Pengujian dilakukan dengan membentuk
koneksi TCP antara host 1 yang bertindak sebagai client kepada host 2 yang bertindak sebagai server. Pengiriman paket TCP dilakukan selama 30 detik dengan jumlah koneksi sebanyak 15 koneksi. Pada saat kedua host sedang melakukan transmisi paket, aplikasi bwm-ng akan dijalankan untuk mendapatkan nilai transmisi di tiap-tiap port didalam switch. Pada algoritme Yen, diberikan nilai max_k = 3, yaitu setiap host client dapat menggunakan 3 jalur berbeda untuk mengirimkan data.
Gambar 9. Grafik pengujian multipath TOPO1
Pada gambar 9 merupakan nilai dari hasil monitoring menggunakan bwm-ng pada saat sistem sedang melakukan transfer data untuk topologi TOPO1. Setiap jaur yang ditemukan dibedakan berdasarkan port penghubung dalam topologi. Terlihat pada grafik terdapat 3 jalur yang mendapatkan beban transfer pada algoritme Yen, dan pada algoritme Dijkstra
hanya 1 jalur saja yang diberikan beban transfer. Pengujian ini dilakukan dengan menggunakan interval sebanyak 30 kali pada bwm-ng. Aplikasi bwm-ng melakukan monitoring jalur setiap ,5 detik sekali, berarti dengan interval 30 kali hanya membutuhkan waktu 15 detik. Algoritme Yen K-shortest path untuk topologi TOPO1 berhasil menggunakan seluruh jalur yang ditemukan untuk mengirim paket dengan
bandwith diatas 100 MB.
Gambar 10. Grafik pengujian multipath TOPO2
Pada gambar 10 merupakan nilai dari hasil monitoring menggunakan bwm-ng pada saat sistem sedang melakukan transfer data untuk topologi TOPO2. Setiap jaur yang ditemukan dibedakan berdasarkan port penghubung dalam topologi. Terlihat pada grafik terdapat 3 jalur yang mendapatkan beban transfer pada algoritme Yen, dan pada algoritme Dijkstra hanya 1 jalur saja yang diberikan beban transfer. Pengujian ini dilakukan dengan menggunakan interval sebanyak 30 kali pada bwm-ng. Aplikasi bwm-ng melakukan monitoring jalur setiap ,5 detik sekali, berarti dengan interval 30 kali hanya membutuhkan waktu 15 detik.
4. KESIMPULAN
Berdasarkan hasil pengujian dan analisis dari implementasi sistem ini, dapat ditarik kesimpulan dari penelitian ini, yaitu sebagai berikut.
1. Sistem telah mampu melakukan pencarian sebanyak K-jalur terpendek untuk kedua topologi.
2. Berdasarkan hasil pengujian convergence
time, convergence time meningkat seiring
dengan bertambahnya jumlah switch yang ada pada tiap topologi, meskipun perbedaanya tidak begitu signifikan.
3. Berdasarkan hasil pengujian throughput, algoritme Yen memiliki throughput yang lebih besar dibandingkan dengan algoritme Dijkstra. Namun pertambahan switch dalam topologi sangat berpengaruh terhadap besar dari throughput tersebut.
4. Untuk hasil pengujian dari packet loss banyaknya switch pada setiap topologi tidak terlalu berpengaruh terhadap besarnya persentase packet loss namun pertambahan jumlah koneksi client (flow) mempengaruhi persentase packet loss pada pengiriman data. Dari hasil pengujian didapatkan bahwa packet loss untuk algoritme Yen lebih kecil dibandingkan algoritme Dijkstra.
DAFTAR PUSTAKA
Astuto, B. N., Mendon¸ca, M., Nguyen, X. N., Obraczka, K., & Turletti, T. 2014. A Survey
of Software-Defined Networking: Past, Present, and Future of Programmable Networks. IEEE Commu nications Society,
Institute of Electrical and Electronics Engineers.
Das, S. (2012). A Unified Control Architecture
for Packet and Circuit Network Convergence. PhD Dissertation, Stanford
Univeristy.
Kreutz, D., Verissimo, P. E., Azodolmolky, S., Ramos, F. M., Rothenberg, C. E., & Uhlig, S. (2015). Software-Defined Networking: A
Comprehensive Survey. Proceedings of the IEEE. IEEE.
Lantz, B., Heller, B., & McKeown, N. (2010). A Network in a Laptop: Rapid Prototyping for Software-Defined Networks. SIGCOMM. New Delhi: ACM
Lazuardi, E. (2016). Metode Pemilihan Jalur
Routing Adaptif Berdasar Kemacetan Jaringan dengan Algoritme Dijkstra Pada OpenFlow Network. Malang: Universitas
Brawijaya.
McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G., Peterson, L., Rexford, J., . . . Turner, J. (2008). OpenFlow: Enabling
Innovation in Campus Networks. OpenFlow
Nicholson, T. A. J. (1996). Finding the shortest
route between two points in a network.
OXFORD ACADEMIC.
Open Networking Foundation. (2016).
OpenFlow. Diambil kembali dari Open
Networking Foundation : https://www.opennetworking.org/sdn-resources/openflow
ryu development team. (2017). ryu Documentation. Release 4.11