Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer e-issn: 2548-964X Vol. 2, No. 9, September 2018, hlm. 2462-2468 http://j-ptiik.ub.ac.id Implementasi K-Shortest Path Routing pada Jaringan Software Defined Network Romy Dwi Andika Manullang 1, Widhi Yahya 2, Dany Primanita Kartikasari 3 Program Studi Teknik Informatika, Email: 1 manullangromy@gmail.com, 2 widhi.yahya@ub.ac.id, 3 dany.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. Keywords: SDN, OpenFlow, Mininet, Ryu,Yen K-Shortest Path, Dijkstra Fakultas Ilmu Komputer Universitas Brawijaya 2462
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2463 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 plane secara sederhana menjadi perangkat
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2464 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
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2465 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 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 3. TOPO2
Mbps Mbps Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2466 200 Thoroughput TOPO1 menggunakan 3 jalur berbeda untuk mengirimkan data. 100 0 20 Client Yen K-Shortest path Dijkstra 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. 34 32 30 Thoroughput TOPO2 20 Client Yen K-Shortest path Dijkstra 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 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 masingmasing koneksi. Pada algoritme Yen, diberikan nilai max_k = 3, yaitu setiap host dapat 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
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2467 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. 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 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 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.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 2468 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. 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/sdnresources/openflow ryu development team. (2017). ryu Documentation. Release 4.11 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