SOFTWARE DEFINED NETWORKING

Berikut fitur (use case) yang dapat dikerjakan dari Ryu Controller, Floodlight, dan OpenDayLight
(yang terdapat pada tulisan ini ditandai dengan ceklis merah).

Gambar 1. Fitur dari Controller.

1. HOP-BY-HOP NETWORK BY NETWORK VIRTUALIZATION
1.1 OpenDayLight
Pada bagian ini akan menjelaskan langkah-langkah konfigurasi VTN (Virtual Tenant
Networking) Manager pada OpenDayLight yang dijalankan di lingkungan Mininet. Mengutip pada
laman Routecloud.net “Biasanya Jaringan berbasis tenant sering diimplementasikan di tempat-
tempat publik seperti bandara, perkantoran dimana disana terdapat banyak pelangan yang harus
diisolasi networknya, sebagai contoh misalnya pada sebuah bandara terdapat beberapa maskapai,
antar maskapai jaringannya harus diisolasi walaupun secara fisik jaringanya terpusat pada satu
switch namun secara logic sebenernya jaringanya terpisah.”. Di bawah ini adalah gambaran umum
jaringan yang menggunakan tenant.

Gambar 2. Virtual Tenant View
Sumber:
https://wiki.opendaylight.org/view/VTNkut:Manager:How_to_provision_virtual_L2_network

Gambar 3. 2. Buat sebuah Virtual Tenant Network yang bernama vtn1 dan vtn2 dengan mengeksekusi REST API menggunakan perintah “curl”. Begitu juga dengan H2 dan H12. Aktifkan fitur odl-dlux-all. 4. Gambar 4. Selanjutnya buat sebuah topologi menggunakan mininet sesuai dengan gambar sebelumnya. Langkah- langkah konfigurasinya adalah sebagai berikut: 1. dan odl-vtn-manager-rest dengna menggunakan perintah “feature:install”.Topologi yang akan digunakan sebagai berikut. Masuk ke dalam terminal karaf OpenDayLigh. . namun tidak terhubung ke host yang lainnya walau menggunakan jaringan yang sama. Visualisasi topologi yang digunakan pada OpenDayLight. Topologi untuk Hop-by-Hop Networking Skenario yang akan digunakan adalah H1 akan terhubung dengan H11. 3. keduanya akan saling terhubung namun dapat terhubung dengan host lainnya. odl-vtn-manager.

1.80:8181/restconf/operations/vtn-port-map:set-port-map -d '{"input": {"tenant-name":"vtn2".80:8181/restconf/operations/vtn-vinterface:update-vinterface -d '{"input": {"tenant-name":"vtn1". "port-name":"s5-eth1"}}' curl --user "admin":"admin" -H "Content-type: application/json" -X POST http://192.80:8181/restconf/operations/vtn:update-vtn -d '{"input":{"tenant- name":"vtn1"}}' curl --user "admin":"admin" -H "Content-type: application/json" -X POST http://192. Lakukan ujicoba dengan menggunakan perintah ping pada masing-masing host (h1. h11.168.80:8181/restconf/operations/vtn-vbridge:update-vbridge -d '{"input": {"tenant-name":"vtn1".1.1. "port-name":"s10-eth2"}}' 8. "bridge-name":"vbr2".168. "bridge-name":"vbr2".168.80:8181/restconf/operations/vtn-vinterface:update-vinterface -d '{"input": {"tenant-name":"vtn1".168. "node":"openflow:5". "bridge-name":"vbr2".168.1.168. curl --user "admin":"admin" -H "Content-type: application/json" -X POST http://192. dan h12).1.80:8181/restconf/operations/vtn-port-map:set-port-map -d '{"input": {"tenant-name":"vtn2". "bridge-name":"vbr2". "interface-name":"if2".1. "interface-name":"if2"}}' 7. "bridge-name":"vbr1". curl --user "admin":"admin" -H "Content-type: application/json" -X POST http://192. "interface-name":"if2"}}' curl --user "admin":"admin" -H "Content-type: application/json" -X POST http://192.80:8181/restconf/operations/vtn-port-map:set-port-map -d '{"input": {"tenant-name":"vtn1".80:8181/restconf/operations/vtn-vinterface:update-vinterface -d '{"input": {"tenant-name":"vtn2". "bridge-name":"vbr1"}}' 6.80:8181/restconf/operations/vtn:update-vtn -d '{"input":{"tenant- name":"vtn2"}}' 5. "node":"openflow:5". "interface-name":"if2". Setelah itu buat masing-masing dua buath interface tiap virtual bridge. h2.168.168. "interface-name":"if1"}}' curl --user "admin":"admin" -H "Content-type: application/json" -X POST http://192. "bridge-name":"vbr1".1. . curl --user "admin":"admin" -H "Content-type: application/json" -X POST http://192. "node":"openflow:10". "bridge-name":"vbr1". "interface-name":"if1".1. curl --user "admin":"admin" -H "Content-type: application/json" -X POST http://192. "port-name":"s5-eth2"}}' curl --user "admin":"admin" -H "Content-type: application/json" -X POST http://192. Terakhir hubungkan host dengan interface yang sebelumnya telah dibuat pada virtual bridge. "bridge-name":"vbr1".168.80:8181/restconf/operations/vtn-port-map:set-port-map -d '{"input": {"tenant-name":"vtn1". "interface-name":"if1"}}' curl --user "admin":"admin" -H "Content-type: application/json" -X POST http://192.80:8181/restconf/operations/vtn-vinterface:update-vinterface -d '{"input": {"tenant-name":"vtn2".1.1. "interface-name":"if1".168. "port-name":"s10-eth1"}}' curl --user "admin":"admin" -H "Content-type: application/json" -X POST http://192.1.168. "node":"openflow:10". Selanjutnya buat dua buah virtual bridge dengna menggunakan curl.

Network Monitoring pada OpenDayLight 2. pengguna dapat melihat statistik banyaknya data yang dikirimkan dari maupun ke suatu switch yang terhubung ke controller.2 Ryu Controller Pada Ryu Controller juga dapat melihat data yang melewati suatu node.1 OpenDayLight Pada laman admin OpenDayLight. Gambar 5. Berikut adalah salah satu tabel yang mempresentasikan data yang melewati suatu node. .2. NETWORK MONITORING 2.

. TRAFFIC ENGINEERING 3. Gambar 7. untuk melihat statistik dari data yang melewati port tertentu dari suatu switch dapat dilihat melalui Floodlight REST API dengan mengaktifkan mode statistik lalu mengirimkan permintaan berdasarkan MAC Address dan port switch tersebut.1 OpenDayLight Pada bagian ini akan membahas bagaimana melakukan load balancing pada jaringan OpenFlow yang menggunakan OpenDayLight sebagai controller. Network Monitoring pada Ryu Controller 2. Network Monitoring Pada Floodlight 3. Gambar 6.3 Floodlight Pada Floodlight. Sebagai contoh pada port 1 perangkat switch s1 (00:00:00:00:00:00:00:01). Berikut topologi yang akan digunakan.

py akan mengirimkan REST request ke controller yang berisi rekomendasi jalur terbaik dari jalur yang memungkinkan untuk dilewati dari host h1 ke h4. Pastikan semua host terhubung dengan tidak adanya drop packet ketika menggunakan perintah “pingall” 3. 5. Lihat lalu lintas (traffic) pada interface s1-eth4. Berikut langkah-langkahnya: 1.1) atau h4 (10. Gambar 9. h4.0. jalur terpendek dan terbaik (sementara) yang akan dilalui adalah melewati s2 ←→ s21 ←→ s1.4).0.3) dan h4 (10. Buka Wireshark lalu lihat traffic pada interface s1-eth3 dan s1-eth4.0. Hal ini terjadi karena pada OpenDayLight secara default meneruskan (forward) semua lalu lintas (traffic) ke semua port yang memungkinkan.0. Gambar 8. 6. sebagai contoh S1 → S21 → S2. dan 3. Tampilkan dua buah terminal untuk host h1 dengan menggunakan perintah “xterm h1 h1” lalu lakukan ping ke h3 (10. Penentuan Shortest Path 7.py lalu masukan argumen untuk host h1.0. dan h3 dengan cara masukkan angka 1. Topologi yang digunakan untuk Traffic Engineering Skenario yang akan dibuat adalah ketika h1 melakukan ping ke h3 dan h4 maka jalur lalu lintas h1 ke h4 akan diubah ke jalur yang memiliki latency terkecil.0.0. Hentikan ping yang menuju host h4.4) sudah tidak melewati interface itu lagi melainkan melewati s1- eth3 yang terhubung dengan interface s21-eth1 (switch s21) yang paketnya akan diteruskan . packet yang dikirimkan dari maupun ke h1 (10. Jalankan program odl. Program odl. pada keduanya terdapat packet request ICMP maupun reply ICMP dari host h1 ke host h3 dan h4. 4. 4. Gambar di bawah hasil dari perhitungan cost antara dua buah jalur yang dapat dilalui. 8. 2.0. Buat topologi seperti gambar di atas lalu hubungkan dengan controller. Lakukan ping kembali dari h1 ke h4.

Gambar 10. s2-eth3.Trafik s1-eth3 Gambar 12. Trafik s1-eth4 Gambar 11. Berikut adalah gambar paket yang melalui s1-eth3.ke s2 melalui s21-eth2 ke s2-eth3. Trafik s2-eth3 . Trafik s21-eth3 Gambar 13. s21-eth1. s1- eth4.

. Setelah itu atur pada setiap switch agar menggunakan protokol OpenFlow versi 1. Setelah switch (router) diberikan alamat IP. Gambar 15.30. mininet> h1 ifconfig h1-eth0 inet 172. topologi yang sudah dibuat akan seperti gambar di bawah ini.1 Ryu Controller Berikut ini adalah contoh menambahkan dan menghapus route maupun alamat pada setiap switch (router) yang digunakan untuk menghubungkan pada setiap host yang terhubung pada switch. Gambar 14. Buat topologi seperti gambar di atas pada lingkungan mininet dengan menggunakan perintah “mn”. Gambar 16. Mengganti protokol yang digunaakn switch 3. ROUTING 4.16.20. Membuat topologi pada Mininet 2.3. Lalu berikan alamat IP pada setiap switch (router) dengan mengirimkan data berformat JSON menggunakan perintah curl yang dikirimkan ke controller (ryu).10/24 4. Topologi untuk routing pada Ryu Controller 1.168.4.16. Selanjutnya berikan alamat IP pada setiap host sesuai dengan gambar topologi di atas pada lingkunan Mininet.10.10/24 mininet> h3 ifconfig h3-eth0 inet 192.10/24 mininet> h2 ifconfig h2-eth0 inet 172.

0.10. mininet> h1 ip route add default via 172. Hasil perintah “pingall” . dan s3 ke alamat s2.168.16.30.1/24"}' http://127.1/24"}' http://127.20"}' http://127.20/24"}' http://127.1:8080/router/000000000 0000003 5.1:8080/router/00000000000 00001 curl -X POST -d '{"address":"172.30.16.1:8080/router/0000000000000 002 curl -X POST -d '{"gateway": "192.10.1/24"}' http://127.0.16.30/24"}' http://127.0.1:8080/router/0000000000 000003 curl -X POST -d '{"address":"192.168.30"}' http://127. Setelah itu tambahkan default route pada switch (router) s1 ke alamat s2. Gambar 17.16.1:8080/router/0000000000 000001 curl -X POST -d '{"address":"172. Setelah itu tambahkan default route pada setiap host agar mengarah ke alamat IP switch yang terhubung dengannya.168.30.0.1 6.1 mininet> h2 ip route add default via 172.168. Gunakan perintah “pingall” untuk menguji hubungan antar host.168.1/24"}' http://127.1:8080/router/00000000000000 01 curl -X POST -d '{"gateway":"172.1:8080/router/0000000000000002 8.30. "gateway": "192.20.0. curl -X POST -d '{"destination": "192.16.0.16.20.0. s2 ke alamat s1.10.0.1:8080/router/00000000000 00002 curl -X POST -d '{"address":"172.0.168.30.168.1 mininet> h3 ip route add default via 192.0.1"}' http://127. Gambar 18.16. curl -X POST -d '{"gateway":"172.10.0.1/24"}' http://127.0.0.0.10.0.0.0.0.1"}' http://127. Topologi beserta alamat IP perantarmuka jaringan curl -X POST -d '{"address":"172.30.0.16.10.0.0. Terakhir tambahkan static route untuk s2.1:8080/router/000000000000 0003 7.30.1:8080/router/00000000000 00002 curl -X POST -d '{"address":"192.0/24".0.1:8080/router/0000000000 000002 curl -X POST -d '{"address":"192.

io/ryu-book/en/html/traffic_monitor.atlassian.io/ryu-book/en/html/rest_router.html • http://sdnhub.html • https://github.com/nayanseth/sdn-loadbalancing • https://osrg.action?pageId=21856267 .org/tutorials/opendaylight/ • https://floodlight.opendaylight.github.net/wiki/pages/viewpage.github.org/view/VTN:Main • https://osrg. REFERENSI • https://wiki.