DESAIN DAN IMPLEMENTASI VPN SITE-TO-SITE BERBASIS SDN MENGGUNAKAN NETWORK HYPERVISOR: FLOWVISOR DAN OPENVIRTEX
TESIS
Karya tulis sebagai salah satu syarat untuk memperoleh gelar Magister dari Institut Teknologi Bandung
Oleh
GALIH NUGRAHA NURKAHFI NIM : 23213361 (Program Magister Teknik Elektro)
SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2016
ABSTRAK DESAIN DAN IMPLEMENTASI VPN SITE-TO-SITE BERBASIS SDN MENGGUNAKAN NETWORK HYPERVISOR: FLOWVISOR DAN OPENVIRTEX Oleh GALIH NUGRAHA NURKAHFI NIM: 23213361 Program Magister Teknik Elektro
SDN adalah suatu bentuk desain, arsitektur dan manajemen jaringan komputer yang dibuat untuk bisa menjawab perkembangan kebutuhan jaringan komputer serta mengatasi kekurangan yang ada pada jaringan komputer tradisional. Konsep dasar SDN yaitu pemisahan control plane dan data plane, sentralisasi controller serta kemampuan untuk menjalankan aplikasi jaringan yang dijalankan di atas controller dibuat untuk memudahkan manajemen dan optimalisasi jaringan serta memudahkan provisioning memudahkan provisioning untuk skala jaringan yang besar. OpenFlow adalah protokol yang menjadi standar st andar protokol pada SDN yang digunakan untuk komunikasi antara controller dan perangkat jaringan yang yang membuat suatu jaringan dapat diprogram berdasarkan pada spesifikasi protokolnya. Kehadiran SDN juga membawa berbagai macam perubahan terhadap berbagai macam implementasi teknologi untuk menjalankan layanan jaringan termasuk juga teknologi untuk menjalankan jaringan virtual , , Implementasi konsep SDN mulai dilakukan pada berbagai macam teknologi jaringan komputer, termasuk teknologi layanan jaringan yang dibuat oleh pihak operator. Di era jaringan tradisional, kita mengenal teknologi virtual private network (VPN) site-to-site (VPN) site-to-site untuk untuk menjalankan komunikasi data yang aman dan bersifat privat antara dua jaringan yang terpisah secara geografis, contohnya adalah jaringan pada kantor pusat yang dihubungkan ke jaringan pada kantor cabang. Ketika jaringan SDN mulai dikembangkan, mulai muncul juga wacana tentang virtualisasi berbasis SDN. Solusi virtualisasi jaringan berbasis SDN mulai banyak dikembangkan oleh para peneliti, ada banyak jenis aplikasi virtualisasi dengan berbagai macam karakteristiknya. Perlu ada banyak pengujian-pengujian terhadap teknologi virtualisasi berbasis SDN untuk memastikan kapasitas dan kapabilitas solusi tersebut, dan untuk bisa menilai kelayakan teknologi diatas sebagai solusi teknologi virtualisasi jaringan berbasis SDN. Dalam tulisan ini akan dikaji dua buah aplikasi virtualisasi
SDN yaitu FlowVisor dan OpenVirtex untuk melihat karakteristik, kelebihan dan kekurangan serta kelayakan kedua buah teknologi tersebut untuk diimplementasikan sebagai solusi VPN site-to-site berbasis SDN. Dari hasil penelitian ini didapatkan fakta bahwa, Solusi virtualisasi jaringan berbasis SDN memiliki keunggulan dalam hal kemudahan konfigurasi di sisi jaringan operator, implementasi fungsi virtualisasi jaringan untuk tenant yang lebih mudah, manajemen yang lebih mudah. Selain itu didapatkan fakta bahwa dari segi fitur solusi OpenVirtex lebih baik dibandingkan FlowVisor sebagai solusi jaringan virtual SDN, namun keduanya masih memiliki banyak masalah bug masalah bug dan kestabilan dan harus dikembangkan lebih lanjut. Kata Kunci: Software Defined Networking , OpenFlow, Virtualisasi, Network hypervisor , FlowVisor, OpenVirtex, Testbed .
ABSTRACT DESIGN AND IMPLEMENTATION OF SDN BASED SITE-TO-SITE VPN SERVICES USING NETWORK HYPERVISOR: FLOWVISOR AND OPENVIRTEX By GALIH NUGRAHA NURKAHFI NIM: 23213361 Electrical Engineering Master Program
SDN is a network computer design, architecture and management, that made to address the needs future computer network development and overcome the limitation on the traditional computer network. The basic of SDN concept is separating control plane and data plane, centralize network controller and capability to running network application on the top of the controller. SDN is made to facilitate the management and optimization of the network as well as facilitate provisioning for large-scale lar ge-scale network. OpenFlow is a protocol that became the standard protocol on SDN are used for communication between the controller and the network devices that create a network can be p rogrammed based on the protocol specification. Presence Technology SDN also carries a wide variety of changes to a wide range of technology implementations for running network services as well as technology to run virtual network. Implementation of the concept of SDN is spread in a wide variety of computer network technology, including technology network services made by the operator. In the era of the traditional network, we know the technology of virtual private network (VPN) site-to-site to run a secure and private data communication between two geographically separate networks, for an example is the network at the central office connected to the network at the branch office. When the research of SDN network began to spread, there is also several communities started to research about virtualization-based SDN. There ar e many kinds of virtualization applications with a variety of characteristics. There are needs a lot of tests on SDN-based virtualization technology to ensure the capacity and capability of the solution, and to be able to assess the feasibility of the technology as a mature network virtualization technology solutions. In this document will be reviewed two SDN virtualization technology: FlowVisor and OpenVirtex, to see the characteristics, advantages and disadvantages and the feasibility of the two kinds of the application to be implemented as a SDN based VPN site-to-site solution.
From the results of this research, the author found the fact that, SDN-based network virtualization solution has advantages in terms of ease of configuration on the side of the carrier network, the easier of network virtualization functionality functionality implementation for tenant, tenant, and of course the easier network management. In addition it obtained the fact that OpenVirtex have better features featur es than FlowVisor as a virtual network SDN solution, but both still have a lot of bugs and stability issues and should be developed developed further. Key Word: Software Defined Networking, OpenFlow, Virtualization, Network hypervisor, FlowVisor, OpenVirtex, Testbed.
LEMBAR PENGESAHAN
DESAIN DAN IMPLEMENTASI VPN SITE-TO-SITE BERBASIS SDN MENGGUNAKAN NETWORK HYPERVISOR: FLOWVISOR DAN OPENVIRTEX
Oleh
Galih Nugraha Nurkahfi NIM : 23213361 (Program Magister Teknik Elektro)
Bandung, 1 Februari 2016
Menyetujui Pembimbing
Dr. Ing. Eueung Mulyana, S.T., M.Sc. NIP. 19741218 19741218 200801 1009
PEDOMAN PENGGUNAAN TESIS
Tesis S2 yang tidak dipublikasikan terdaftar dan tersedia di Perpustakaan Institut Teknologi Bandung, dan terbuka untuk umum dengan ketentuan bahwa hak cipta ada pada pengarang dengan mengikuti aturan HaKI yang berlaku di Institut Teknologi Bandung, Referensi kepustakaan diperkenankan dicatat, tetapi pengutipan atau peringkasan hanya dapat dilakukan seizin pengarang dan harus disertai dengan kebiasaan ilmiah untuk menyebutkan sumbernya.
Memperbanyak atau menerbitkan sebagian atau seluruh tesis haruslah seizin Direktur Program Pascasarjana, Institut Teknologi Bandung.
Perpustakaan yang meminjam tesis ini untuk keperluan anggotanya harus mengisi nama dan tanda tangan peminjam dan tanggal pinjam
KATA PENGANTAR
Alhamdulillahirabbil'alamin, dengan mengucapkan syukur kehadirat Allah SWT yang senantiasa memberikan petunjuk serta melimpahkan berkah dan rahmat- Nya, sehingga tesis ini dapat diselesaikan dengan judul “Desain dan Implementasi VPN Site-to-Site Site -to-Site Berbasis SDN Menggunakan Network Hypervisor: FlowVisor dan OpenVirtex". Tesis ini disusun sebagai salah satu syarat untuk memperoleh gelar magister pada jurusan Telekomunikasi, opsi Telematika dan Jaringan Komputer, program Magister Teknik Elektro, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. Ucapan terima kasih saya ucapkan kepada segenap pihak yang secara langsung maupun tidak langsung telah membantu serta memudahkan proses terselesaikannya Tesis ini. Untuk itu, penulis ingin mengucapkan terima kasih kepada : 1. Allah SWT Tuhan semesta alam yang mentakdirkan penulis untuk bisa menimba setetes dari lautan ilmunya, yang menghadirkan banyak makna di hidup penulis. 2. Rasulullah Muhammad Salallahu Alaihi Wassalam, nabi akhir zaman, suri tauladan bagi umat manusia. 3. Kedua orang tua, Bapak Sutrisno dan Ibu Maridah yang selalu memberikan dukungan tanpa lelah semenjak awal penulis menuntut ilmu, serta doa yang tak henti yang mengiringi setiap langkah-langkah penulis dalam menyelesaikan tulisan ini. 4. Lisa Ayu Larasati selaku istri tercinta dari penulis yang selalu memberikan dukungan kepada penulis selama menjalani studi. 5. Kedua mertua, Bapak Sudi Pratolo dan Ibu Rostika Lokawati yang banyak memberikan dukungan dan doanya. 6. Bapak Dr. Ing. Eueung Mulyana, selaku pembimbing yang telah memberikan bimbingan, memberikan waktunya dalam membimbing serta memberikan banyak inspirasi bagi penulis. 7. Bapak Dr. Tutun Juhana selaku Ketua Kelompok Keahlian Telematika dan Jaringan Komputer yang telah membantu penulis dalam menyediakan beasiswa, sehingga penulis bisa menyelesaikan studi dengan tanpa memikirkan biaya serta banyak menginspirasi penulis untuk menjadi seorang yang memiliki memil iki intelektualitas tinggi namun tetap rendah hati dan membumi. 8. Bapak Ir. Hardi Nusantara, MT. dan Bapak Dr. Tutun Juhana serta Bapak Rifky Hakimi
ST. MT. yang telah memberikan waktu dan perhatian untuk menguji penulis dalam sidang tesis.Dosen-dosen yang telah memberikan ilmunya selama penulis menempuh studi. 9. Staff Tata Usaha Us aha Lab Telematika, Pak Asep dan dan Pak Dadang yang telah membantu me mbantu semua administrasi dalam menempuh studi Magister serta Tesis ini. 10. Teman-teman dari Teknik Elektro Lab Telematika-Telekomunikasi Kreatif yang telah banyak memberikan makna mengena dari perjalanan menempuh studi. Ayie, Ayie, Havid, Ady, Pories, Wervyan, Rifqy dan Izzati. 11. Ghulam Faqih yang secara khusus membantu merapikan dokumen tesis milik penulis. 12. Teman-teman group whatssap Residensi Allstar yang banyak memberikan dukungan kepada penulis selama menempuh studi: Rifqy, Ayie, Havid, Vano, Arya, Ady, Pories, Firman, Dynal, Jun, Rohmat. 13. Teman-teman seangkatan kuliah S2: Cokde, Galuh, Evan, Bagus, Hamzah, Galuh, Dwina, Triadi dan Dito yang menjadi rekan-rekan seperjuangan dari awal masuk sa mpai sekarang. 14. Teman-teman residensi yang lain: Mas Mukti, Arief, Jude, Beny, Rizky, Maya, Nisa dan Suci yang juga menjadi rekan-rekan seperjuangan menempuh kuliah demi kuliah. 15. Pories Ediansyah yang secara khusus yang telah banyak memberikan masukkan dalam proses penulisan thesis ini. 16. Semua pihak yang tidak dapat disebutkan karena kekhilafan penulis selaku manusia yang telah membantu dalam proses penyelesaian Tesis ini. Penulis menyadari bahwa tesis ini masih jauh dari sempurna, untuk itu kritik dan saran sangat diharapkan. diharapkan. Pe P e n u l i s berharap berharap tulisan ini dapat menjadi menjadi sesuatu sesuatu yang yang bermanfaat, bermanfaat, menambah wawasan dan pengetahuan bagi pembacanya. Amin.
Bandung, 1 Februari 2016
Penulis
DAFTAR SINGKATAN
API Application API Application Programming Interface ARP Address ARP Address Resolution Protocol CPU Control Processing Unit ICMP Internet ICMP Internet Control Message Protocol IP Internet IP Internet Protocol LLDP Link LLDP Link Layer Discovery Protocol MAC Media MAC Media Access Control MPLS Multi MPLS Multi Protocol Label Switching NIC Network NIC Network Interface Card NFV Network NFV Network Function Virtualization OFP OpenFlow Packet OVX OpenVirtex PC Personal PC Personal Computer SDN Software Defined Networking TCP Transmission Control Protocol UDP User Datagram Protocol VLAN Virtual LAN VPLS Virtual Private Lan Service VPN virtual private network
DAFTAR ISI
ABSTRAK……………………………………………………… ABSTRAK………………………… …………………………………………………………… …………………………………i …i ABSTRACT……………………………………………………… ABSTRACT………………………… ………………………………………………………… ……………………………...iii ...iii LEMBAR PENGESAHAN…………………………… PENGESAHAN…………………………………………………………… ………………………………………….v ………….v PEDOMAN PENGGUNAAN TESIS………………………… TESIS………………………………………………………… …………………………………vi …vi KATA PENGANTAR …………………………………………………………………………...vii …………………………………………………………………………...vii DAFTAR SINGKATAN………………………… SINGKATAN…………………………………………………… ………………………………………………ix ……………………ix Bab I PENDAHULUAN...……………………………………………………………………… PENDAHULUAN...……………………………………………………………………… ..1 I.1
Latar Belakang…………………………………………………………………… Belakang…………………………………………………………………… .1
I.2
Rumusan Masalah………………………………………………………............... Masalah………………………………………………………................3 .3
I.3
Tujuan……………………………………………………… Tujuan………………………… …………………………………………………. ……………………..3 .3
I.4
Batasan Masalah………………………………………………...……………… Masalah………………………………………………...………………...4 ...4
I.5
Metoda Penelitian………………………………………………………………... Penelitian………………………………………………………………....4 .4
I.6
Sistematika Penelitian……………………… Penelitian………………………………………………… ……………………………………. …………..5 .5
Bab II TINJAUAN PUSTAKA..…………………………………………… PUSTAKA..…………………………………………………………………6 ……………………6 II.1
Jaringan Tradisional Sebelum Adanya Ad anya SDN……………………………………...6 SDN……………………………………...6
II.2
SDN, OpenFlow dan Cara Kerjanya…………………………… Kerjanya………………………………………………7 …………………7
II.3
Protokol OpenFlow………………………………………………………………10 OpenFlow………………………………………………………………10
II.4
Format Header Format Header OpenFlow……………………………………………………... OpenFlow…………………………………………………….....12 ..12
II.5
Cara Kerja OpenFlow ………………………………………………………… ....13
II.6
Reactive dan Reactive dan Proactive Proactive Flow……………………………………………………. Flow……………………………………………………. 15 II.6.1 Reactive Flow…………………………………………………………… Flow…………………………………………………………… 15 II.6.2 Proactive flow…………………………………………………………… flow…………………………………………………………… 16
I.7
Jaringan Virtual SDN………………………… S DN……………………………………………………… ………………………………... ….....16 ..16
II.8
MPLS……………………………………………………………………………. 18
II.9
VPN…………………………………………………… VPN………………………… …………………………………………………... ………………………...19 19
II.10
OpenVirtex………………………………………………… OpenVirtex……………………… ………………………………………………. …………………….21 21
II.10.1 Virtualisasi alamat IP……………………… IP…………………………………………………… ……………………………..22 II.10.2 Virtualisasi Link Virtualisasi Link dan Route dan Route……………………………………………... ……………………………………………...24 24 II.11
FlowVisor……………………………………………… FlowVisor………………… …………………………………………………….. ………………………..26 26 II.11.1 Virtualisasi jaringan………………………… jaringan…………………………………………………… …………………………....26 II.12.2 Forwarding II.12.2 Forwarding table……………………………… table………………………………... ...……………………… ………………………28 28 II.12.3 Arsitektur FlowVisor……………………………………………………. FlowVisor…………………………………………………….28 28
Bab III METODOLOGI PENELITIAN dan DESAIN PERCOBAAN….……………………...30 PERCOBAAN….……………………...30 III.1 Metodologi Penelitian………………………………………………………………30 Penelitian………………………………………………………………30 III.1.1 Studi Literatur ………………...………………………………………….31 ………………...………………………………………….31 III.1.2 Mengidentifikasi Permasalahan..………………………………………... Permasalahan..………………………………………...31 31 III.1.3 Menentukan Tujuan………….…………………… Tujuan………….………………………………………….. ……………………..31 31 III.1.4 Perancangan dan Implementasi.. Implementasi..…………………………… ……………………………..…………...32 …………...32 III.1.5 Analisis dan Hasil Penelitian..…………………………………………... Penelitian..…………………………………………...32 32 III.1.5 Penyusunan Tesis…………....……………… Tesis…………....…………………………………………...32 …………………………...32 III.2
Kebutuhan Perangkat P erangkat Keras……………………………………………………... Keras……………………………………………………...33 33
III.3
Kebutuhan Perangkat Lunak…...…………………………… Lunak…...………………………………………………... …………………...34 34 III.3.1 Software untuk Controller …………………………...…………………..35 …………………………...…………………..35 III.3.2 Software untuk switch untuk switch P dan PE……………………………. PE…………………………….…………...36 …………...36 III.3.3 Software untuk Hypervisor untuk Hypervisor ……………………………………………....36 ……………………………………………....36 III.3.4 Software untuk CE……………………………… CE………………………………………………………. ……………………….37 37 III.3.5 Software untuk host…………………………… host……………………………………………………... ………………………...37 37
III.4
Desain Topologi Jaringan……………………………………………………….. Jaringan……………………………………………………….. 37
III.5
Desain Percobaan pada Testbed ………………………………………………….41 ………………………………………………….41
III.6
Metode Pengukuran Kinerja Testbed VPN Site-to-Site………………………….43 Site-to-Site………………………….43
BAB IV Hasil PERCOBAAN dan ANALISIS………………… ANALISIS…………………... ...…………………………….. ……………………………..46 46 IV.1
Pengujian Fungsionalitas Dasar Testbed………………. estbed……………….……………………….. ………………………..44 44
IV.2
Pengujian Fungsionalitas Virtualisasi dengan Menggunakan FlowVisor….. FlowVisor…..…... …...46 46 IV.2.1 Implementasi Virtualisasi Fungsi Layanan Jaringan…………………….49
IV.2.2 Pengujian Fungsi Failover Fungsi Failover pada pada FlowVisor……………………………...50 FlowVisor……………………………...50 IV.3
Pengujian Fungsionalitas dengan OpenVirtex……...………………… Open Virtex……...…………………………... ………....54 .54 IV.3.1 Implementasi Virtualisasi Fungsi Layanan Jaringan…………………….61 IV.3.2 Pengujian Fungsi Failover Fungsi Failover pada pada OpenVirtex……………………………62 OpenVirtex……………………………62
IV.4
Pengujian Kinerja Kinerja Virtualisasi………..………… Virtualisasi………..……………………………………… ………………………………. ….71 71 IV.4.1 Pengukuran Delay Pengukuran Delay……………………………………………………….. ………………………………………………………..71 71 IV.4.2 Pengukuran Jitter Pengukuran Jitter ………………………………………………………...73 ………………………………………………………...73 IV.4.3 Pengukuran Througput Pengukuran Througput pada pada OpenVirtex dan FlowVisor..……………... FlowVisor..……………...74 74 IV.4.4 Pengukuran Througput untuk Testbed Tanpa Virtualisasi.……………… Virtualisasi.………………75 75 IV.4.5 Pengukuran CPU dan Memory dan Memory Hypervisor Hypervisor Dalam Dalam Kondisi Idle Kondisi Idle dan dan Melakukan Pemrosesan Flow Pemrosesan Flow D Data… ata…..…………………………………………... …………………………………………...76 76 IV.4.6 Pengukuran CPU dan Memory dan Memory pada pada Controller Dalam Dalam Kondisi Idle Kondisi Idle dan dan Melakukan Pemrosesan Flow Data………………………...……………………. Data………………………...…………………….77
IV.5
Bug dan Error dan Error pada pada Masing-Masing HyperVisor Masing-Masing HyperVisor ………………………………..79 ………………………………..79
BAB V KESIMPULAN dan SARAN……………………………………………… SARAN………………………………………………... ...………... ………...82 82 V.1
Kesimpulan………………………………………………… Kesimpulan…………………… ………………………………………………… ……………………82 82
V.2
Saran……………………………………………………… Saran…………………………… ……………………………………………….. ……………………..83 83
DAFTAR PUSTAKA…………………………… PUSTAKA………………………………………………………… ……………………………………………… …………………84 84 LAMPIRAN LAMPIRAN A…………………………………………………………………………… A…………………………………………………………………………… I LAMPIRAN B………………………………………………………………………. B………………………………………………………………………. XXII
DAFTAR GAMBAR
Gambar II-1 II-1 Arsitektur Sederhana SDN………………………………………………………... SDN………………………………………………………....7 .7 Gambar II-2 Breakdown II-2 Breakdown Arsitektur SDN...………………………………………………………9 SDN...………………………………………………………9 Gambar II-3 Header II-3 Header OpenFlow…………………………………………………………………12 OpenFlow…………………………………………………………………12 Gambar II-4 II-4 Cara Kerja OpenFlow…………………………………………………………….. OpenFlow……………………………………………………………..13 13 Gambar II-5 Diagram Switch OpenFlow……………………………………………………….. OpenFlow………………………………………………………..13 13 Gambar II-6 II-6 Flow Paket Data di Dalam OpenFlow 1.0………………………………………...14 1.0………………………………………...14 Gambar II-7 Mek anisme anisme Reactive Flow………………………………………………………...15 Flow………………………………………………………...15 Gambar II-8 Mekanisme Proactive Mekanisme Proactive Flow…………………………..…………………………... Flow…………………………..…………………………...16 16 Gambar II-9 Server dan Network dan Network Hypervisor ………..………………………………………….17 ………..………………………………………….17 Gambar II-10 VPN pada Jaringan O perator…………………………… perator…………………………….……………………… .………………………21 21 Gambar II-11Arsitektur Besar OpenVirtex………………….………………………………... OpenVirtex………………….……………………………….....23 ..23 Gambar II-12 Interaksi OpenVirtex dengan Controller dan dan Switch……………………………. Switch…………………………….23 23 Gambar II-13 Modifikasi Flow Modifikasi Flow oleh OpenVirtex………………………… OpenVirtex……………………………………………….24 …………………….24 Gambar II-14 Skema Link Skema Link Pada Pada OpenVirtex………………...……………… OpenVirtex………………...…………………………………. ………………….25 25 Gambar II-15 Skema Link Skema Link Virtual Virtual pada OpenVirtex………………………..………………….. OpenVirtex………………………..…………………..25 25 Gambar II-16 Slicing Topologi dengan FlowVisor ……………...……………………………...27 ……………...……………………………...27 Gambar III-1 Metodologi Penelitian……………………………………………………………. Penelitian……………………………………………………………. 30 Gambar III-2 Implementasi Testbed ……………………………………………………………..33 ……………………………………………………………..33 Gambar III-3 Topologi Jaringan Fisik Testbed ………..…………………………………………38 ………..…………………………………………38 Gambar III-4 Jaringan Virtual Tenant OpenVirtex……………………………………………...42 OpenVirtex……………………………………………...42 Gambar III-5 Jaringan Virtual Tenant FlowVisor ……………………………………………….42 ……………………………………………….42 Gambar IV-1 Topologi Fisik Testbed Multitenant ………………………………………….…..45 ………………………………………….…..45 Gambar IV-2 Topologi Logic Topologi Logic Testbed Multitenant …….……………………………………….45 …….……………………………………….45 Gambar IV-3 Sampel Flowspace Sampel Flowspace untuk untuk Tenant 1 dan Tenant 2………………………………….47 2………………………………….47 Gambar IV-4 Topologi Utama Tenant 1…………………………………………………… Tenant 1……………………………………………………... ...… …48 Gambar IV-5 Topologi Utama Tenant 2……………………………………………………… Tenant 2………………………………………………………...48 ...48
Gambar IV-6 Topologi Utama Virtualisasi Virtualisasi pada FlowVisor untuk Kedua Tenant ..………….. ..…………..51 51 Gambar IV-7 Topologi Backup Topologi Backup untuk untuk Tenant 1…………………………………..……………. Tenant 1…………………………………..…………….51 51 Gambar IV-8 Topologi Backup Topologi Backup untuk untuk Tenant 2……………………………………………… Tenant 2………………………………………………...52 ...52 Gambar IV-9 Fow baru di switch di switch P2…………………………………………………………… P2……………………………………………………………53 53 Gambar IV-10 Topologi Jaringan Virtual Tenant 1……………………………………… Tenant 1……………………………………… .……58 ……58 Gambar IV-11 Topologi Jaringan Virtual Tenant 2…………………………… 2……………………………………….…… ………….……58 58 Gambar IV-12 Flow-entry IV-12 Flow-entry Jaringan Jaringan Tenant 1 1 pada Switch virtual 1……………………………59 Gambar IV-13 Flow-entry IV-13 Flow-entry Jaringan Jaringan Virtual Tenant 1 1 pada Switch Virtu Switch Virtual al 2…………………...59 2…………………...59 Gambar IV-14 Flow-entry IV-14 Flow-entry Jaringan Virtual Tenant 2 2 pada Switch Virtual 1…………………..60 1…………………..60 Gambar IV-15 Flow-entry IV-15 Flow-entry Jaringan Virtual Tenant 2 2 pada Switch Virtual 2…………………..60 2…………………..60 Gambar IV-16 Topologi Utama dan Backup dan Backup Virtualisasi Virtualisasi pada OpenVirtex untuk Kedua tenant …………………………………………………………… …………………………………………………………… ..……………….. ..………………..64 64 Gambar IV-17 Proses Ping Sewaktu Failover Sewaktu Failover …………………………………………………. …………………………………………………. ..66 Gambar IV-18 Flow-entry IV-18 Flow-entry Jaringan Virtual Tenant 1………………………….……………… Tenant 1………………………….……………….67 .67 Gambar IV-19 Flow-entry IV-19 Flow-entry Jaringan Virtual Tenant 2……………… Tenant 2……………….. ..………………………... ………………………....68 .68 Gambar IV-20 Grafik Perbandingan untuk FlowV isor dan OpenVirtex………………………..71 OpenVirtex………………………..71 Gambar IV-21 Delay IV-21 Delay pada pada Testbed …………………………………………………………… …………………………………………………………… ...72 Gambar IV-22 Grafik Perbandingan Jitter Perbandingan Jitter ……..……………………………………………......73 ……..……………………………………………......73 Gambar IV-23 Jitter IV-23 Jitter pada pada Testbed …………………………………………………………… ...74 Gambar IV-24 Grafik Throughput pada Throughput pada FlowVisor dan OpenVirtex…………………………...75 OpenVirtex…………………………...75 Gambar IV-25 Grafik Throughput TCP dan UDP untuk Testbed …..…………………………..75 …..…………………………..75 Gambar IV-26 Grafik Hypervisor Grafik Hypervisor saat saat FlowVisor dan OpenVirtex Idle OpenVirtex Idle…………………...….. …………………...…..76 76 Gambar IV-27 Grafik Hypervisor Grafik Hypervisor pada pada saat FlowVisor dan OpenVirtex Memproses Flow Memproses Flow Data……………………………………………………………………….….. Data……………………………………………………………………….…..77 77 Gambar IV-28 Grafik Controller pada Controller pada saat FlowVisor dan OpenVirtex Idle OpenVirtex Idle…………….. ……………....…....78 …....78 Gambar IV-29 Grafik controller pada controller pada saat FlowVisor dan OpenVirtex Memproses Paket……. Paket……..79 .79 Gambar IV-30 Anomali Penggunaan Sumberdaya Komputasi pada FlowVisor ….…………….79 ….…………….79 Gambar IV-31 Error IV-31 Error pada pada Operasional FlowVisor …………………………………………….. …………………………………………….. .80
Gambar IV-32 Error IV-32 Error pada pada Penggunaan Sembarang Blok IP……………………………………81 IP……………………………………81
DAFTAR TABEL
Tabel II-1 Versioning OpenFlow..……………………………………………………………… OpenFlow..……………………………………………………………… 11 Tabel II-2 Penjelasan Header Penjelasan Header OpenFlow OpenFlow ……………………………… ……………………………………………………….12 ……………………….12 Tabel III-1 Spesifikasi Komponen Server Fisik..……………………………………………….. Fisik..……………………………………………….. 33 Tabel III-2 Spesifikasi Komponen Logic Komponen Logic Server Virtual…………… Virtual……………..………………………….. …………………………..34 34 Tabel III-3 Software untuk Software untuk controller …………………………………. ………………………………… .………………………...35 Tabel III-4 Software untuk Switch P dan PE……………………………………………………. PE……………………………………………………. 36 Tabel III-5 Software untuk HyperVisor …………………………………. ………………………………….………………………36 ………………………36 Tabel III-6 Software Untuk switch Untuk switch CE………………………………………………………….. CE………………………………………………………….. 37 Tabel III-Software untuk Host untuk Host ……………………………...……………………………………37 ……………………………...……………………………………37 Tabel III-8 Datapath III-8 Datapath Switch .........................................................................................................39 Tabel III-9 Konfigurasi Bridge Konfigurasi Bridge…………………………………………………………………..40 …………………………………………………………………..40 Tabel IV-1 Baris Konfigurasi yang Berbeda pada Setiap Instance Setiap Instance Controller. …….…..…..…..47 …….…..…..…..47 Tabel IV-2 Rute Antar Switch CE di Dalam Suatu Tenant …………………………………….. Tenant ……………………………………..48 48 Tabel IV-3 Pengujian Firewall Pengujian Firewall pada pada Masing-Masing Tenant ………………………………...…49 ………………………………...…49 Tabel IV-4 Jalur Utama Tenant pada Tenant pada FlowVisor ………………………………. ……………………………… .……………..…50 ……………..…50 Tabel IV-5 Jalur Backup Jalur Backup Tenant 1 dan Tenant 2…….. ……..…………… …………….. ..… ….………. ……….……………….52 ……………….52 Tabel IV-6 Daftar Blok IP Address IP Address Site Tenant …..……… ..………... ...………………………………….. …………………………………...53 .53 Tabel IV-7 Konfigurasi Lengkap OpenVirtex untuk Kedua Tenant ……….. ………..……...…………… ……...……………55 55 Tabel IV-8 Flow-entry IV-8 Flow-entry di di Setiap Switch untuk Tenant 1……………...……… 1……………...………..….……………..55 ……………..55 Tabel IV-9 Flow-entry IV-9 Flow-entry di di Setiap Switch untuk Tenant 2………...… 2………...…..……………. …………….…………..…56 …………..…56 Tabel IV-10 Translasi Pengalamatan untuk Tenant 1…………………………… Tenant 1……………………………..………….…..57 ………….…..57 Tabel IV-11 Translasi Pengalamatan untuk Tenant 2…………………………… Tenant 2……………………………..……………...58 ……………...58 Tabel IV-12 Pengujian Firewall Pengujian Firewall pada pada Masing-Masing Tenant ………….………. ………….……….……………...61 Tabel IV-13 Jalur Utama Maupun Backup Maupun Backup Logic Tenant pada pada OpenVirtex……… OpenVirtex………..……………62 ……………62 Tabel IV-14 Jalur Backup Jalur Backup Tenant 1 dan Tenant 2………………………………… …………………………………..……………63 Tabel IV-15 Tabel Blok IP Address IP Address untuk Setiap Site Milik Tenant …...…………..………...…66 …...…………..………...…66
Tabel IV-16 Flow IV-16 Flow Table untuk Percobaan Koneksi antar Host antar Host Dalam Satu tenant………… tenant…………..….68 Tabel IV-17 Translasi Pengalamatan untuk Tenant 1………………..……………………… Tenant 1………………..………………………..…70 Tabel IV-18 Translasi Pengalamatan untuk Tenant 2………………….. 2…………………..…………………… ……………………..…70 Tabel IV-19 Pengukuran Delay Pengukuran Delay pada pada FlowVisor dan OpenVirtex…………………………… OpenVirtex……………………………....71 ....71 Tabel IV-20 Pengkuruan Jitter Pengkuruan Jitter pada pada FlowVisor dan OpenVirtex……………………………… OpenVirtex……………………………….73 .73 Tabel IV-21 Pengkuruan Throughput pada Throughput pada FlowVisor dan OpenVirtex……………………... OpenVirtex…………………….......74 ....74 Tabel IV-22 Pengukuran Throughput TCP dan UDP pada Testbed Tanpa Virtualisasi…….......75 Virtualisasi…….......75 Tabel IV-23 Pengukuran Sumberdaya Hypervisor Sumberdaya Hypervisor S aat aat FlowVisor dan OpenVirtex Idle OpenVirtex Idle…… ……....76 ....76 Tabel IV-24 Pengukuran Sumberdaya Hypervisor Sumberdaya Hypervisor pada pada saat FlowVisor dan OpenVirtex Memproses Flow Memproses Flow Data Data…………………………………………………………… …………………………………………………………… ...77 Tabel IV-25 Pengukuran Sumberdaya Controller pada Controller pada saat OpenVirtex dan FlowVisor Idle FlowVisor Idle… ….78 Tabel IV-26 Pengukuran Sumberdaya Controller pada Controller pada saat OpenVirtex dan FlowVisor Memproses Paket…………………………… Paket………………………………………………………… …………………………………………………...78 ……………………...78
Bab I PENDAHULUAN
I.1 Latar Belakang
Internet adalah jaringan komputer global yang di atasnya berjalan berbagai macam layanan. Layanan-layanan ini memiliki karakteristik yang bervariasi dan menggunakan protokol-protokol yang berbeda-beda. Hal tersebut diatas menyebabkan kompleksitas dalam hal desain, manajemen dan operasional dari sistem jaringan komputer, ditambah lagi dengan beragamnya peralatan jaringan komputer yang diproduksi oleh vendor. Software Defined Networking(SDN) adalah suatu bentuk desain, arsitektur dan manajemen jaringan komputer yang dibuat untuk bisa b isa mengatasi permasalahan tersebut diatas. SDN S DN adalah sebuah konsep untuk memisahkan control plane, plane, management plane dari forwarding dari forwarding plane di perangkat jaringan. Konsep SDN juga dibutuhkan karena didalam dunia jaringan komputer yang sebenarnya tidak ada pemakaian yang seimbang antara control plane dengan forwarding data plane.Control plane.Control plane dan plane dan data data plane memiliki plane memiliki fungsi yang berbeda didalam penggunaanya dalam operasional jaringan komputer. Sebagai contoh dalam aplikasi network switch, forwarding plane lebih banyak terpakai sumberdayanya dibandingkan control plane. plane. Contoh lainnya adalah pada perangkat firewall perangkat firewall , Intrussion Detection System(IDS) System(IDS) dan Deep dan Deep Packet Inspection(DPI), Inspection(DPI), control plane plane lebih dominan do minan terpakai sumber dayanya dibandingkan dengan forwarding dengan forwarding plane. plane. Dari fakta diatas, SDN dapat menjadi solusi untuk suatu sistem yang bisa lebih bisa menjalankan keseimbangan antara control plane plane maupun forwarding maupun forwarding plane. plane. Selain itu dengan kemampuan jaringan SDN untuk diprogram, menjadikan jaringan tidak lagi bersifat tertutup dan kaku. Jaringan berbah menjadi lebih terbuka dan bisa diprogram untuk mengaplikasikan suatu kebutuhan yang spesifik. SDN memberikan kontrol yang lebih luas terhadap jaringan, yang memungkinkan optimalisasi dan kustomisasi serta mengurangi biaya pe mbelian dan operasional jaringan secara keseluruhan.
Openflow adalah salah satu protokol dalam SDN yang menjadi standar
de facto. facto.
yang
digunakan untuk komunikasi antara controller dan perangkat jaringan yang membuat suatu 1
jaringan dapat diprogram
berdasarkan pada spesifikasi protokolnya. Keberadaan protokol
OpenFlow telah menjadikan keistimewaan-keistimewaan pada jaringan SDN bisa ada Teknologi virtualisasi virtualisasi
telah ada sejak cukup lama, lama, namun sampai sampai sekarang, fokus dari
pengembangan teknologi virtualisasi lebih condong condong kepada virtualisasi komputer dan virtualisasi virtualisasi pada jaringan agak tertinggal di belakang. Hal ini in i menghambat kemampuan operator jaringan untuk menyediakan layanan virtualisasi jaringan yang lebih baik. tujuan ideal dari virtualisasi jaringan pada operator adalah untuk menyediakan suatu jaringan virtual, yang topologi, manajemen dan penggunaannya berada dalam kontrol penuh dari tenant yang menyewa jaringan tersebut. Keberadaan dari SDN dan protokol OpenFlow telah memungkinkan hal tersebut d iatas dilakukan.
Salah satu teknologi yang lahir dari keberadaan konsep SDN adalah network hypervisor , yang berfungsi untuk menjalankan jaringan virtual virtual diatas jaringan fisik fisik dengan cara cara menjadi penengah untuk menjalankan translasi antara jaringan fisik dan jaringan virtual , komunikasi antara jaringan virtual - Network, Network, hypervisor dan dan jaringan fisik dilakukan dengan menggunakan protokol OpenFLow. OpenFLow. Solusi virtualisasi jaringan berbasis SDN mulai banyak dikembangkan oleh para peneliti, ada ad a banyak jenis aplikasi ap likasi dengan berbagai macam karakteristiknya. karakteristiknya . Perlu ada banyak b anyak pengujian-pengujian terhadap teknologi teknologi virtualisasi berbasis SDN untuk memastikan kapabilitas dan kapabilitas solusi solusi tersebut, untuk bisa menilai menilai kelayakan teknologi diatas sebagai sebagai solusi teknologi virtualisasi jaringan. Dalam tulisan ini akan dikaji dua buah teknologi virtualisasi SDN yaitu FlowVisor dan OpenVirtex untuk melihat karakteristik, kelebihan dan kekurangan serta kelayakan kedua buah teknologi tersebut untuk diimplementasikan sebagai solusi virtualisasi jaringan berbasis SDN. FlowVisor hadir terlebih dahulu dibandingkan OpenVirtex sebagai aplikasi network hypervisor yang banyak diujicoba di banyak institusi pendidikan dan p enelitian, OpenVirtex hadir belakangan dan digadang-gadang sebagai calon pengganti FlowVisor dengan kelebihan-kelebihan fiturnya. FlowVisor merupakan suatu aplikasi network hypervisor yang bekerja
secara cukup sederhana dengan fitur-fitur: slicing topologi, bandwidth, CPU dan
protokol. Sedangkan pengembang OpenVirtex mengklaim OpenVirtex memiliki kemampuan yang lebih baik dibandingkan dengan FlowVisor.
2
Kemampuan leih dari OpenVirtex adalahadalah kemampuannya untuk menghadirkan suatu virtualisasi jaringan secara penuh. Tenant akan bisa secara leluasa untuk menjalankan fungsi kontrol terhadap jaringan virtual yang topologinya spesifik sesuai dengan kebutuhan tenant dan tidak bergantung pada bentuk jaringan fisik, selain itu tenant bisa memiliki address space sendiri.
I.2 Rumusan Masalah
Permasalahan yang diangkat pada penelitian ini adalah: 1. Bagaimana cara mengimplementasikan VPN site-to-site berbasis SDN dengan menggunakan FlowVisor dan OpenVirtex. 2. Apakah fungsionalitas dan fitur yang dimiliki oleh FlowVisor dan OpenVirtex bisa berjalan secara baik untuk bisa menjalankan layanan VPN site-to-site VPN site-to-site berbasis berbasis SDN. SDN. 3. Bagaimana kinerja dari FlowVisor dan OpenVirtex dalam segi p enggunaan sumber daya komputasi dan jaringan. 4. Network hypervisor mana yang lebih baik antara FlowVisor atau OpenVirtex untuk menjalankan VPN site-to-site berbasis SDN. dan apakah solusi tersebut sudah layak untuk diimplementasikan dalam jaringan real . 5. Apakah solusi berbasis SDN lebih baik jika dibandingkan dengan solusi jaringan tradisional untuk menjalankan layanan VPN site-to-site. VPN site-to-site.
I.3 Tujuan
Tujuan dari penelitian ini adalah: 1. Mendesain dan mengimplementasikan testbed jaringan testbed jaringan VPN site-to-site VPN site-to-site berbasis berbasis SDN yang bisa menjalankan fungsi multi tenant. 2. Menjalankan jaringan virtual di dalam testbed yang memisahkan traffic antara dua tenant yang berbeda dengan menggunakan FlowVisor dan OpenVirtex 3. Menguji dan membandingkan fungsionalitas VPN site-to-site berbasis SDN yang menggunakan network hypervisor FlowVisor dan OpenVirtex serta menganalisis kelebihan dan kekurang dari keduanya. 3
4. Menguji kinerja VPN site-to-site
berbasis SDN yang menggunakan network
hypervisor FlowVisor dan OpenVirtex yang meliputi parameter kinerja jaringan(delay, jaringan(delay, jitter, througput ) dan penggunaan sumber daya komputasi(CPU, memory). memory).
I.4 Batasan Masalah
1. Controller SDN yang digunakan secara adalah Floodlight versi 0.9 karena kestabilannya yang sudah terbukti. 2. OpenFlow OpenFlow versi terakhir yang digunakan saat penelitian berlangsung adalah versi 1.5 eksperimental dan versi stabil 1.4. Sedangkan yang digunakan saat pengujian adalah openflow openflow 1.0 karena versi ini bisa berjalan pada kedua aplikasi OpenVirtex maupun FlowVisor. 3. Fungsionalitas dari teknologi jaringan virtual yang diuji adalah: isolasi traffic, failover, penambahan aplikasi firewall aplikasi firewall untuk setiap tenant dan dan fungsi VPN site-to-site VPN site-to-site.. 4. Performa dari teknologi virtualisasi yang diuji adalah: performa jaringan virtual yang dijalankan dan penggunaan sumber daya komputasi dari penggunaan kedua buah solusi virtualisasi 5. Pengujian yang dilakukan adalah dengan metode blackbox.
I.5 Metoda Penelitian
Metoda yang dilakukan pada penelitian ini adalah: 1. Studi literatur. 2. Desain testbed dan dan pemilihan teknologi pada testbed. 3. Implementasi VPN site-to-site VPN site-to-site SDN SDN dengan menggunakan FlowVisor dan OpenVirtex. 4. Pengujian fungsionalitas dan kinerja dari testbed yang akan digunakan untuk menjalankan VPN site-to-site VPN site-to-site berbasis berbasis SDN. SDN. 5. Pengujian fungsionalitas dan kinerja dari VPN site-to-site VPN site-to-site berbasis berbasis SDN menggunakan network hypervisor FlowVisor dan OpenVirtex.
4
I.6 Sistematika Penelitian
Penulisan laporan tesis ini disusun dengan sistematika sebagai berikut:
BAB I : Pendahuluan Bab ini berisi dan menjelaskan latar belakang, perumusan masalah, tujuan dari penelitian, batasan masalah dalam penelitian, metoda penelitian, dan sistematika penulisan laporan
BAB II : Tinjauan Pustaka Bab ini membahas mengenai SDN, OpenFlow, testbed, virtualisasi jaringan, VPN, virtualisasi, network hypervisor, OpenVirtex, FlowVisor serta perangkat-perangkat untuk membangun jaringan berbasis SDN.
BAB III : Metodologi Penelitian dan Desain Percobaan Bab ini menjelaskan mengenai spesifikasi perangkat keras yang digunakan, perangkat lunak yang digunakan didalam testbed , rancangan jaringan virtual berbasis SDN dengan menggunakan network hypervisor OpenVirtex dan Flowvisor serta implementasi virtualisasi jaringan berbasis SDN di atas testbed .
BAB IV :Hasil Percobaan dan Analisis Bab ini menjelaskan mengenai metoda yang digunakan dalam pengujian, hasil pengujian dan analisis implementasi testbed virtualisasi jaringan dengan menggunakan network hypervisor OpenVirtex dan FlowVisor
BAB V: Kesimpulan dan Saran Bab ini berisi kesimpulan akhir dari penelitian ini, serta saran untuk kelanjutan penelitian berikutnya
5
Bab II TINJAUAN PUSTAKA
II.1 Jaringan Tradisional Sebelum Adanya SDN
Jaringan komputer tradisional dibuat dengan cara mengkoneksikan komputer dengan kombinasi dari kabel dan media nirkabel serta hardware jaringan. hardware jaringan. Tanpa melihat topologi topologi jaringan atau skala jaringan, hardware jaringan terdiri dari tiga buah komponen utama: aplikasi, control plane dan data plane. Control plane menyimpan informasi yang bisa digunakan untuk menangani paket data, informasi ini yang selanjutnya digunakan oleh data plane, membuat informasi ini membuntuhkan penanganan signaling penanganan signaling protocol yang rumit. Data rumit. Data plane adalah subsistem dari node jaringan yang menerima dan mengirim paket dari interface, memprosesnya sesuai dengan protokol yang digunakan untuk selanjutnya mengalami perlakuan: send perlakuan: send , drop atau forward. atau forward. Switch dan router tradisional dibuat dengan jutaan kode program dan ratusan atau bahkan ribuan kode program. Semuanya di tuliskan di atas chip yang ada pada hardware jaringan. hardware jaringan. Keterbatasan dalam melakukan pengaturan jaringan telah menciptakan beberapa masalah, termasuk kesulitan untuk mengubah penggunaan hardware, hardware, support jangka support jangka panjang, p anjang, restriksi kontrol pengguna penggun a dan banyak lagi yang lainnya. lainnya. Keberadaan SDN banyak mendorong perubahan besar pada cara seorang administrator jaringan administrator jaringan memandang jaringan yang dikelolanya. Dengan adanya SDN, data plane dan control plane bisa dipisahkan sehingga menghadirkan jaringan yang fleksibel dan bisa diprogram. Satu teknologi utama yang ada di belakang SDN adalah protokol OpenFlow yang bersifat opensource, yang berfungsi untuk komunikasi antara perangkat jaringan dan controller.
6
Gambar II-1 Arsitektur Sederhana SDN
II.2 SDN, OpenFlow dan Cara Kerjanya
Dalam arsitektur SDN, control plane dan data plane dipisahkan, infrastruktur jaringan dipisahkan dari aplikasi. Dengan pendekatan ini para pengguna p erangkat jaringan memperoleh kendali penuh dan kemampuan memprogram pada jaringan yang sebelumnya tidak ada, sehingga hal ini menjadikan administrator jaringan administrator jaringan bisa memperluas dan mengadaptasi mengadap tasi jaringan untuk kebutuhan institusi mereka dengan lebih mudah dan lebih murah. Software Defined Network (SDN) (SDN) adalah istilah yang merujuk pada konsep/paradigma kon sep/paradigma baru dalam mendesain, mengelola dan mengimplementasikan jaringan, terutama untuk mendukung kebutuhan dan inovasi di bidang ini yg semakin lama semakin kompleks. Konsep dasar SDN adalah dengan melakukan pemisahan eksplisit antara control dan forwarding dan forwarding plane, plane , serta kemudian melakukan abstraksi sistem dan mengisolasi kompleksitas yg ada pada komponen atau sub-sistem dengan mendefinisikan interface mendefinisikan interface yang yang standar. Beberapa aspek penting dari SDN adalah : a. Adanya pemisahan secara fisik/eksplisit antara forwarding/data-plane antara forwarding/data-plane dan dan control-plane. b. Antarmuka standard untuk memprogram perangkat jaringan. 7
c. Control-plane yang Control-plane yang terpusat atau adanya sistem operasi jaringan yang yang mampu membentuk peta logika dari seluruh jaringan dan kemudian memrepresentasikannya melalui sejenis API ( Application Application Programming Interface). Interface). d. Virtualisasi, yang dilakukan agar beberapa sistem operasi jaringan dapat mengkontrol bagian-bagian dari perangkat yang sama. Di dalam arsitektur SDN, control plane plane dipisahkan dari data plane, plane, network intelligence intelligence dan network state state dipusatkan secara logic, logic, dan infrastruktur jaringan dipisahkan dari aplikasi. Hasilnya, perusahaan dan operator bisa memperoleh programabilitas, otomatisasi, dan kendali pada jaringan yang belum pernah ada sebelumnya sehingga memungkinkan mereka untuk membuat jaringan yang bisa diperluas dengan mudah dan fleksibel yang siap untuk beradaptasi sesuai dengan kebutuhan bisnis. Tujuan dari SDN adalah untuk menyediakan antarmuka terbuka yang dapat mendukung pengembangan software pengembangan software yang dapat mengendalikan konektivitas suatu network resources dan aliran dari traffic traffic jaringan yang melaluinya, bersamaan dengan inspeksi dan modifikasi traffic yang mungkin dapat diterapkan pada jaringan. Pada layer terbawah, data plane terdiri dari network element yang kemampuannya dimanfaatkan oleh SDN Datapath SDN Datapath melalui Control-Data Plane interface(CDPI). interface(CDPI). Pada layer teratas, application plane mencakup berbagai macam SDN application yang saling bertukar informasi tentang requirement masing-masing melalui NorthBound interface(NBI) Drivers. Pada layer di tengah, SDN Controller menerjemahkan kebutuhan dari layer atasnya atasnya dan mengirimkan low-level control melalui SDN Datapath sambil memberikan informasi yang relevan kepada SDN applications. Management dan Admin Plane bertanggung jawab untuk menyiapkan network elements, elements, menetukan
SDN Datapath pada SDN Controller, dan melakukan konfigurasi policy yang
mendefinisikan ruang lingkup kendali yang diberikan kepada SDN controller atau SDN application. Arsitektur jaringan SDN ini dapat dijalankan berdampingan dengan jaringan nonSDN, khususnya untuk tujuan migrasi ke jaringan SDN secara keseluruhan.
8
Gambar II-2 B r eakdown akdownArsitektur SDN[3]
Control Plane diimplementasikan sebagai suatu perangkat server yang diatasnya diinstall sistem operasi jaringan dan diatasnya lagi dijalankan aplikasi jaringan, data plane plane diimplementasikan dalam bentuk infrastruktur jaringan. Melalui controller SDN ini seorang administrator jaringan jaringan dapat melakukan administrasi jaringan secara terpusat. Berikut adalah istilah-istilah penting dalam SDN yang harus d ipahami e. SDN application SDN application application adalah program yang dibuat diatas sebuah controller dan melakukan komunikasi dengan controller melalui Northbound melalui Northbound Interface (NBI). Interface (NBI). f.
SDN controller SDN controller adalah suatu sistem terpusat yang berfungsi sebagai pengontrol jaringan secara terpusat, dan menterjemahkan menterjemahkan perintah dari aplikasi jaringan ke data plane. plane.
g. SDN datapath SDN datapath adalah datapath adalah perangkat jaringan yang bisa b isa berupa fisik maupun virtual yang bekerja mengontrol forwarding mengontrol forwarding dan dan memproses paket data berdasarkan aturan yang telah d itetapkan oleh controller . 9
h. SDN Control to Data-Plane Interface (CDPI) Interface (CDPI) SDN CDPI adalah interface interface antara SDN controller dengan SDN datapath datapath yang menyediakan kontrol yang terprogram untuk seluruh operasi dalam forwarding dalam forwarding packet data, data, melakukan advertisement rute, rute, pelaporan statistik dari interface dan interface dan notifikasi. i.
SDN Northbound SDN Northbound Interfaces (NBI) Interfaces (NBI) SDN NBI adalah interface antara SDN application layer dengan dengan SDN controller .
j.
Interface Drivers Interface Drivers & Agents Setiap agents dan agents dan drivers berfungsi drivers berfungsi sebagai jembatan yang menghubungkan komunikasi antara Northern antara Northern Bridge (Application Bridge (Application Plane dengan Control Plane) dan Southern Bridge (Control Plane dengan Plane dengan Data Data Plane). Plane).
II.3 Protokol OpenFlow
OpenFlow merupakan sebuah protokol yang menjadi salah satu bagian dari SDN. OpenFlow adalah sebuah protokol SDN yang memungkinkan seorang network administrator dapat dapat mengatur jalur pengiriman paket data d ata didalam did alam sebuah switch sebuah switch.. Jaringan konvensional yang kita kenal yaitu jaringan non-OpenFow, setiap switch setiap switch hanya hanya berfungsi meneruskan paket data melalui standar kerja yang berdasarkan Network Layer. OpenFlow bersifat terbuka, sehingga bisa diadaptasi oleh semua kalangan, baik peneliti maupun vendor . Para peneliti membuat banyak penelitian terkait OpenFlow, sementara vendor banyak vendor banyak mengadaptasi OpenFlow Op enFlow untuk diterapkan pada p ada perangkat p erangkat komersial yang diproduksinya. OpenFlow adalah sebuah antarmuka terbuka untuk mengontrol forwarding table secara remote pada perangkat jaringan. Secara lebih terperinci berikut adalah nilai tambah dari keberadaan OpenFLow.
Kontrol terpusat dan dapat dijalankan pada berbagai macam perangkat I: switch, I: switch, router, wireless access point , baik yang bersifat fisik maupun virtual v irtual
Mengurangi
kompleksitas
manajemen
jaringan
komputer dengan
menghadirkan
penyederhanaan manajemen jaringan secara terpusat. Dengan adanya protokol OpenFLow OpenFLow juga, memungkinkan adanya konfigurasi dan kebijakan yang terpusat yang akan diterjemahkan ke infrastruktur dibawahnya. Konfigurasi yang harus dibuat oleh administrator juga akan berkurang, jika dalam jaringan tradisional, konfigurasi harus
10
dilakukan untuk setiap perangkat jaringan sampai ke titik akhir layanan, maka dalam jaringan berbasis SDN hal ini tidak perlu lagi dilakukan.
Meningkatkan inovasi dalam teknologi jaringan komputer, karena sifat jaringan yang menjadi terbuka dan bisa diprogram, sehingga banyak pihak bisa terlibat untuk ikut turut serta mengembangkan teknologi jaringan komputer.
Keberadaan OpenFLow membuat pengaturan jaringan bisa dilakukan lebih rinci dan terpusat.
User experience experience yang lebih baik: Dengan kontrol jaringan yang terpusat, infrastruktur jaringan SDN dapat dengan mudah beradaptasi terhadap kondisi ko ndisi jaringan secara dinamis. Misalnya pada layanan video streaming prioritas prioritas akan bisa diberkan secara langsung pada seorang pelanggan jaringan yang memiliki prioritas lebih tinggi.
Versi protokol OpenFlow yang sekarang sedang dikembangkan adalah versi 1.5 dan versi 1.4 sudah dinyatakan sebagai versi yang matang, dengan diadaptasinya versi tersebut oleh beberapa vendor yang memproduksi perangkat jaringan yang bisa menjalankan OpenFlow. Berikut adalah tabel yang menjelaskan perkembangan fitur dari versi ke versi.
Tabel II-1 Versioning OpenFlow Elemen SDN
Pemisahan control plane
Pemusatan controller
Northbound API
Kemampuan untuk diprogram Flow entries
Perubahan spesifikasi kemampuan Switch OFP
Versi OFP
Cookies - pemberian policy pemberian policy identifier ke flow ke flow entries
1.0
Vacancy events - mengontrol mengontrol table resource policy
1.4
Delegasi flow Delegasi flow learning kepada switch kepada switch
1.5
Mekanisme pemilihan controller (multi-controller (multi-controller )
1.2
Event filtering (multi-controller (multi-controller )
1.3
Bundles – Bundles – menjalankan menjalankan satu set requests bersama
1.4
Flow monitoring (multi-controller (multi-controller )
1.4
Per port priority queues – queues – per per application QoS
1.0
Per flow meters – per per application QoS
1.3
Tunnel-id field – – mendukung mendukung overlay logical ports
1.3
Groups – Groups – guna guna ulang flow ulang flow actions
1.1
Extensible fields untuk fields untuk matching dan dan rewriting headers
1.2
Table features (ekstensi) features (ekstensi)
1.3
Multiple tables flow entries
1.1
Egress tables – output output processing menggunakan menggunakan flow entries
1.5
Encapsulation action – tunnelling tunnelling menggunakan menggunakan flow entries
1.5
11
eader r OpenFlow II.4 Format H eade Berikut adalah format header dari protokol OpenFlow. Switch port
MAC Src
MAC Dst
Eth Type
VLAN ID
IP Src
IP Dst
IP Proto
Port Src
Port Dst
Gambar II-3 H eade eader r OpenFlow
Tabel berikut berisi penjelasan mengenai isi dari Header dari Header OpenFLow. Tabel II-2 Penjelasan H eade ader OpenFlow
Field Inggress Port
Bits Tergantung Implementasi
Diterapkan pada Semua paket
Keterangan Penomoran paket yang datang dari port, mulai dari 1
Dst MAC
Semua paket yang diaktifkan
Src MAC
Semua paket yang diaktifkan
Ethernet Type
Semudiaktifkana paket yang
Vlan ID
Semua paket dengan tipe ethernet 0x8100
Vlan Priority
Semua paket dengan tipe ethernet 0x8100
VLAN PCP field
Dst IP
Semua IP dan Paket ARP
Bisa dengan subnet mask
Src IP
Semua IP dan Paket ARP
Bisa dengan subnet mask
IP Protocol
Semua IP dan IP over ethernet, paket ARP
Hanya ARP dengan bit kurang dari 8 yang bisa menggunakannya
IP ToS
Semua paket IP
Menentukan nilai 8 bit yang digunakan dan ditetapkan di ToS
TCP/UDP Src Port
Semua TCP, UDP, ICMP
TCP/UDP dst Port
Semua TCP, UDP, ICMP
12
Openflow switch yang membutuhkan standar tipe dari Ethernet dan standar 802.2
II.5 Cara Kerja OpenFlow
R ule
Ac ti on
Sta ts
Packet + Byte Cou nters
Switch port
MAC Src
MAC Dst
Forward Paket ke port atau banyak p ort Enkapsulasi dan forward ke controller Drop paket Kirim ke normal pipeline processing
Eth Type
VLAN ID
IP Src
IP Dst
Gambar II-4 Cara Kerja OpenFlow
Gambar II-5 Diagram Switch Switch OpenFlow
13
IP Proto
Port Src
Port Dst
Secara sederhana cara kerja dari protokol OpenFlow dapat dijelaskan dengan diagram berikut.
Gambar II-6 Flow Paket Paket Data Di dalam OpenFlow 1.0[5]
Setiap paket data yang masuk ( packet packet in) in) akan diproses dengan cara melakukan parsing melakukan parsing terhadap header paket header paket data tersebut dan flow table yang ada di data plane switch. switch. Jika adanya kecocokan data header dengan data yang ada di flow table maka paket data akan langsung diteruskan ke tujuan. Proses pencocokan forwarding pencocokan forwarding table dan header dilakukan dilakukan secara recursive berdasarkan recursive berdasarkan atas prioritas yang telah di atur. Jika tidak ada kecocokan antara tabel forwarding tabel forwarding plane dengan data header packet data maka data dari header akan akan diteruskan langsung ke controller melalui protokol OpenFlow. Selanjutnya controller akan melihat header dari paket data tersebut dan dicocokan dengan rule dengan rule yang ada, jika ada rule rule yang sesuai maka maka controller akan mengirimkan informasi flow informasi flow ke switch ke switch untuk dimasukan ke dalam flow dalam flow table. Detail flowchart openflow v1.0 pengolahan pencocokan paket data di header fields a. Paket yang masuk ( Packet Packet In) In) dianalisa mulai dari tipe paket data ethernet . 0x8100 merupakan paket data pada interface VLAN, 0x0806 merupakan paket data pada ARP Request . 0x0800 merupakan paket data pada protokol IP b. Bila : i.
Ethernet Type menunjukan 0x8100 maka header field yang akan diproses adalah VLAN ID dan PCP
14
ii.
Ethernet Type menunjukan 0x0806 maka header field yang akan diproses adalah IP Source dan IP Destination
iii.
Ethernet Type menunjukan 0x0800 maka header field yang akan diproses Transport Layer (TCP, UDP, ICMP). Untuk IP protokol yang menunjukan 1, maka akan diproses sebagai ICMP type dan code pada code pada field field Layer 4. Untuk IP protokol yang menunjukan 6 atau 17 maka mak a akan diproses menggunakan TCP/UDP source dan destination pada destination pada field Layer 4.
active ve dan P r oacti cti ve F low II.6 R eacti II.6.1 R eacti cti ve F low
Reactive flow adalah sebuah situasi ketika sebuah flow sebuah flow baru datang kedalam sebuah perangkat switch. Dalam situasi ini switch akan melihat ke dalam flowtable, dalam flowtable, jika jika field yang ada tidak ada yang cocok dengan header paket data, maka switch akan mengirimkan sebuah (OpenFLow packet )OFP )OFP kepada controller, kemudian controller akan menginstruksikan FlowMod kepada switch untuk menciptakan sebuah baris flow baris flow baru baru pada switch. pada switch.
Gambar II-7 Mekanisme R eacti acti ve F low [7] [7]
15
cti ve F low II.6.2 P r oacti Proactive flow berbalik flow berbalik dengan tipe reactive flow, dalam tipe ini seluruh hasil kalkulasi rute di sisi controller akan langsung dikirimkan kepada switch, kepada switch, dan akan diinstal dalam bentuk flow bentuk flow table. Dalam mode ini sistem pencarian hanya akan dilakukan disisi flow disisi flow table switch yang ada dalam TCAM(Ternary TCAM(Ternary Content Addressable Memory) Memory) dengan hanya menggunakan tabel yang ada di switch akan mengurangi latency latency yang disebabkan oleh adanya komunikasi protokol OpenFlow untuk setiap flow setiap flow yang yang ada.
Gambar II-8 Mekanisme Pr oact oactii ve F low [7]
II.7 Jaringan Virtual SDN
Virtualisasi jaringan telah banyak menjadi topik riset di dalam komunitas peneliti. Dengan adanya teknologi virtualisasi jaringan, jaringan, memungkinkan adanya sejumlah jaringan yang bersifat bersifat logic yang saling terisolasi satu sama lain, yang masing-masing boleh memiliki pengalamatan yang berbeda, mekanisme forwarding mekanisme forwarding yang yang berbeda, yang kesemuanya menggunakan infrastruktur jaringan fisik yang sama. Umumnya virtualisasi ini dilakukan dengan bantuan software atau dengan komponen fisik jaringan yang khusus.
16
Untuk bisa lebih memahami virtualiasi jaringan SDN, kita harus melihat dengan lebih dekat virtualisasi komputer. Dalam virtualisasi komputer, sebuah lapisan abstaksi dijalankan diantara guest OS dan hardware untuk menghadirkan slicing dan sharing sumber daya antar guest OS yang ada. setiap guest OS akan melihat bahwa masing-masing memiliki hardware sendiri-sendiri yang terpisah. Hal yang sama juga bisa dilakukan untuk jaringan. Maka dengan cara berpikir yang sama, jaringan harus mempunyai satu buah lapisan abstraksi. Lapisan ini harus bisa membagi resource fisik jaringan berupa: link, port, switch maupun resource logicnya: link b/w, cpu switch kedalam beberapa tenant, dimana masing-masing tenant akan melihat bahwa dirinya memiliki resource hardware jaringan sendiri. Perangkat yang sekarang dideploy di jaringan komputer tradisional tidak dirancang untuk kebutuhan virtualisasi, dan tidak memiliki lapisan abstraksi hardware. hardware. Teknologi yang dijalankan sekarang ini cenderung hanya membagi resource hardware tertentu saja. contoh: MPLS memvirtualkan forwarding table, table, WDM membagi layer fisik. VLAN membagi datalink layer ataupun dengan cara enkapsulasi layer . Tidak ada suatu teknologi tunggal yang secara penuh bisa mengabstraksikan jaringan secara penuh. Sebelum adanya SDN. Selain hal diatas, keistimewaan dari jaringan virtual SDN adalah kemampuan untuk mengimplementasikan network function virtualization untuk layanan tambahan bagi para tenant yang menyewa jaringan virtual dari operator.
Dengan
adanya
NVF
implementasi
layanan
jaringan
diimplementasikan dan dikelola.
Gambar II-9 Serve Server r dan dan N etwork twork H ype yper visor [9] [9]
17
akan
lebih
mudah
II.8 MPLS
Multiprotocol Label Switching (MPLS) (MPLS) yaitu adalah teknologi penyampaian paket pada jaringan pada jaringan backbone berkecepatan tinggi. Asas kerjanya menggabungkan beberapa kelebihan dari sistem komunikasi circuit-switched dan packet-switched dan packet-switched yang yang melahirkan teknologi yang lebih baik dari keduanya. Sebelumnya, paket-paket diteruskan dengan protokol routing seperti OSPF, IS-IS, BGP, atau BGP, atau EGP. EGP. Protokol Protokol routing berada berada pada layer network dalam model OSI, sedangkan MPLS berada di antara lapisan kedua dan ketiga. Prinsip kerja MPLS ialah menggabungkan kecepatan switching pada layer 2 dengan kemampuan routing dan dan skalabilitas pada layer 3. Cara kerjanya adalah dengan menyelipkan label di antara header layer 2 dan layer 3 pada paket yang diteruskan. Label dihasilkan olehlabel-switching oleh label-switching router router dimana bertindak sebagai penghubung jaringan MPLS dengan jaringan luar. Label berisi informasi tujuan node node selanjutnya kemana paket harus dikirim. Kemudian paket diteruskan ke node berikutnya, di node node ini label paket akan dilepas dan diberi label yang baru yang berisi tujuan berikutnya. Paket-paket diteruskan dalam path yang disebut LSP disebut LSP (Label Switching Path). Komponen MPLS : a. Label Switched Path Path (LSP): Merupakan jalur yang melalui satu atau serangkaian LSR dimana paket diteruskan oleh label swapping dari dari satu MPLS node ke node ke MPLS node yang node yang lain. b. Label Switching Router : MPLS node yang mampu meneruskan paket-paket layer-3. c. MPLS MPLS Edge Node Node atau Label Edge Router (LER): MPLS node yang menghubungkan sebuah MPLS domain MPLS domain dengan dengan node yang berada di luar MPLS luar MPLS domain. d. MPLS Egress MPLS Egress Node: Node: MPLS node yang node yang mengatur traffic saat traffic saat meninggalkan MPLS domain. e. MPLS ingress MPLS ingress Node: Node: MPLS node yang node yang mengatur trafik saat akan memasuki MPLS do main. f.
MPLS label : merupakan label yang ditempatkan sebagai MPLS header.
g. MPLS node: node: node yang node yang menjalankan MPLS. MPLS node ini node ini sebagai control protocol yang akan meneruskan paket berdasarkan label. Data plane disebut juga sebagai forwarding yang bekerja untuk u ntuk proses p roses pengiriman pen giriman paket, pemberian label, enkapsulasi, dekapsulasi pada jaringan.Control jaringan.Control Plane bekerja Plane bekerja untuk memastikan memastikan pembentukan serta pertukaran informasi label. Antara control plane dan data plane memiliki tugas dan tanggung jawab saling terpisah, akan tetapi keduanya saling berhubungaan. 18
Data plane dalam menjalankan tugasnya untuk proses forwarding berpedoman forwarding berpedoman pada informasi yang disediakan oleh LSR (Label Switching Router). Router). Control Plane bertugas mengatur semua informasi mengenai penomoran label pada setiap router , bagaimana paket MPLS itu dikirimkan antar router pada jaringan MPLS.Jika dibandingkan dengan data plane, plane, control plane memiliki proses yang lebih kompleks karena control plane bisa dianalogikan sebagai otak dari router yang mengatur seluruh aktivitas data plane. plane. Informasi-informasi yang diatur oleh control plane berupa IP/MPLS databases yang digunakan untuk membentuk jaringan MPLS.
II.9 VPN
VPN adalah singkatan dari “Virtual Private Network”, merupakan suatu koneksi antara satu jaringan dengan jaringan lain secara privat melalui jaringan Internet (publik). Disebut dengan Virtual Network karena VPN menggunakan jaringan Internet sebagai media perantaranya alias koneksinya bukan secara langsung. lan gsung. Dan disebut Private Network karena VPN sifatnya privat yaitu hanya orang tertentu saja yang dapat mengaksesnya. VPN dapat digunakan p ada jaringan eksisting seperti internet untuk memfasilitasi transfer data secara privat, transfer data privat ini dilakukan dengan alasan keamanan. Solusi menggunakan jaringan public untuk melakukan transfer data yang sensitive dilakukan dengan alasan ekonomis, jauh lebih murah menggunakan jaringan public jika dibandingkan dengan menyewa sambungan tersendiri yaitu leased line dari perusahaan telekomunikasi. VPN menggunakan jaringan public juga menyediakan solusi untuk menyediakan keamanan komunikasi data antar kantor suatu perusahaan yang memiliki site yang berbeda. Terdapat tiga model arsitektur VPN yaitu: a. Host-to-host : Model ini digunakan untuk mengamankan komunikasi antara dua buah komputer. b. Host-to-gateway: Host-to-gateway: Model ini digunakan untuk mengamankan komunikasi antara satu atau lebih host untuk terhubung secara aman ke jaringan internal milik organisasi. Contoh paling mudah dari tipe ini adalah layanan VPN yang dibuat di ITB. c. Site-to-site: Site-to-site: Model ini digunakan untuk menjalankan komunikasi privat antar dua jaringan. Misalkan jaringan pada kantor pusat dan kantor cabang yang terhubung.
19
Jenis VPN yang erat kaitannya dengan penelitian yang dilakukan oleh penulis yaitu VPN yang dibuat dengan mengimplementasikan MPLS VPN. MPLS VPN bekerja pada layer 2 dan layer 3 model OSI, MPLS VPN membuat virtual leased line pada line pada jaringan milik operator. Cara-cara lain yang digunakan untuk mengimplementasikan VPN yaitu: a.
L2TP adalah standar IETF untuk pengamanan komunikasi antara client dan server. L2TP bekerja pada lapisan lapisan datalink model OSI dengan mengenkapsulasi traffic menggunakan point menggunakan point to point protocol (PPP) (PPP) yang ditransmisikan menggunakan tunnel L2TP.
b.
PPTP dikembangkan oleh perusahaan Microsoft, cara kerjanya mirip dengan L2TP namun menggunakan tunneling Generic Routing Encapsulation (GRE) untuk mentransmisikan traffic PPP.
c.
L2F dikembangkan oleh perusahaan perangkat jaringan Cisco. L2F bekerja seperti protol L2TP namun tunneling yang digunakannya adalah L2F untuk mentransmisikan traffic PPP.
d.
IPsec yang yang bekerja pada merupakan suatu suatu framework framework penerapan penerapan saluran aman yang dibuat d ibuat oleh IETF, IPsec bekerja pada layer 3 OSI. IPsec mengamankan dan melakukan autentikasi tiap paket IP yang ditransmisikan antara perangkat yang menjalankan IPsec.
e.
SSL bekerja pada layer 4 OSI dan melakukan pengamanan komunikasi dengan melakukan enkripsi pada layer transport, salah satu penggunaan yang paling popular di ITB adalah sebagai protokol yang digunakan untuk menjalankan layanan VPN host-to-gateway. Pemilihan implementasi VPN tipe ini adalah karena protokol SSL rata-rata di allow oleh firewall milik organisasi, sehingga bisa mengurangi restriksi.
20
Host Tenant 1.1
Host Tenant 2.1
CE Tenant 1.1
CE Tenant 1.2
Host Tenant 1.2
CE Tenant 2.2
Host Tenant 2.2
CE Tenant 2.1
Operator Network
Gambar II-10 VPN pada Jaringan Operator
II.10 OpenVirtex
Keberadaan teknologi virtualisasi jaringan membuat lebih dari satu tenant bisa tenant bisa mempergunakan mempergun akan infrastruktur
jaringan
fisik
yang
sama,
seakan-akan,
masing-masing
tenant
tersebut
mempergunakan jaringan komputer miliknya sendiri. OVX menghadirkan teknologi virtualisasi ini dengan cara melakukan virtualisasi terhadap topologi fisik jaringan dan memberikan pengalamatan IP address secara penuh, seakan-akan IP address tersebut dimiliki oleh tenant tersebut. Tenant bisa meminta bentuk topologi virtual yang diperlukannya kepada penyedia layanan jaringan, termasuk IP address space address space yang diinginkannya, tanpa terpengaruh dengan IP address space address space milik tenant yang lainnya. Isolasi penuh dalam d alam sistem virtualisasi yang ditawarkan oleh OVX menjadikan overlapping IP Address space Address space antar tenant bukan tenant bukan masalah lagi. Virtualisasi jaringan berbeda dengan konsep network slicing yang ditawarkan oleh solusi-solusi seperti FlowVisor. Dalam terminologi network slicing sebuah jaringan diiris menjadi beberapa bagian dengan memanfaatkan satu IP address space address space yang sama dan bahkan port bahkan port TCP/UDP TCP/UDP yang sama, masalah yang akan muncul tentu saja bandwidth yang akan terbagi antar tenant . Dalam konsep virtualisasi, sebuah jaringan virtual milik tenant tidak harus merupakan subgraph isomorphic isomorphic dari jaringan fisik, namun untuk konsep network slicing, hal ini adalah sebuah keharusan. 21
OVX mengimplementasikan virtualisasi dengan cara membuat sebuah proxy sebuah proxy yang ada diantara jaringan fisik dan network controller milik tenant, OVX melakukan rewrite terhadap OpenFlow messages untuk ditranslasikan antara network controller milik tenant yang mengirimkan pesan dan pesan OpenFlow messages OpenFlow messages yang yang berasal dari virtual dari virtual network milik milik tenant tenant .
Gambar II-11 Arsitektur Besar OpenVirtex[11]
II.10.1 Virtualisasi Alamat IP
OVX menghindari address space collision antara aliran traffic tenant dengan dengan menciptakan OVX IP address yang bersifat virtual dan physical dan physical IP IP address yang bersifat fisik untuk setiap host . Yang disebutkan pertama bersifat unik dalam satu virtual OVX network dan dan yang selanjutnya disebutkan bersifat unik dalam seluruh physical seluruh physical network seluruhnya. seluruhnya. Translasi antara IP address virtual dan fisik menjamin bahwa setiap controller
milik tenant bisa menangani flow flow milik sendiri
berdasarkan alamat tersebut, dan datapath bisa datapath bisa membedakan traffic traffic milik tenant yang berbeda beda. Translasi alamat memisahkan datapath kedalam datapath kedalam dua kelompok yaitu: a.
Edge: Edge: datapath yang datapath yang merupakan host attachment point attachment point .
b.
Core: Core: datapath yang datapath yang hanya mengkoneksikan ke datapath lainnya.
22
c.
Datapath edge bertugas edge bertugas untuk melakukan fungsi rewriting IP address.
d. Match Match pada OVX IP address address pada field nw_src dan nw_dst, lalu melakukan rewriting ke physical IP IP address, address, untuk traffic network-bound (dari (dari arah host ). ). e.
Match pada Match pada physical physical IP address, address, rewriting physical IP physical IP address ke address ke OVX IP address, address, untuk traffic host-bound traffic(ke traffic(ke arah host). Gambar berikut memperlihatkan fungsi translasi ip address dan address dan tabel selanjutnya menunjukan berbagai macam FlowMods yang mungkin yang dihasilkan oleh controller milik tenant ke ke OVX dan dari OVX ke datapath( datapath( switch fisik). switch fisik).
Gambar II-12 Interaksi OpenVirtex dengan Controller dan Switch Switch[11]
f. Packet In In dikirimkan dari virtual switch switch milik tenant ke ke controller milik tenant tanpa modifikasi. Isi dari PacketIn adalah OVX IP address. address. g. FlowMod balasan dari controller milik tenant menginstruksikan patern menginstruksikan patern matching pada pada OVX IP dan melakukan rewrite OVX rewrite OVX IP ke physical ke physical IP. IP. h. Virtual link Virtual link dipetakan dipetakan kembali ke path ke path dua dua hop yang hop yang melewati PSW2 i.
OVX menjalankan FlowMods pada physical pada physical IP IP dan melakukan rewrite melakukan rewrite ke ke OVX IP
23
II.10.2 Virtualisasi Link dan dan Route
Gambar II-13 Modifikasi F low low oleh OpenVirtex[11]
OVX merepresentasikan koneksi antara switch switch dan switch switch yang masing-masing dengan menggunakan port menggunakan port tersendiri, tersendiri, dengan menggunakan links. Links didefinisikan sebagai dua buah endpoints, yaitu pasangan dari source dari source dan destination switch/ports. Links bersifat Links bersifat bidirectional. bidirectional. Gambar berikut akan menjelaskan struktur dan hubungan antara tiga tipe links yang ada. ada.
24
Gambar II-14 Skema Link pada OpenVirtex[11]
a.
Bentuk awal, dimana dua link fisik menghubungkan port menghubungkan port fisik(lingkaran putih) pada tiga switch fisik.(ps1, ps2 dan ps3).
b.
Virtual link OVX OVX menghubungkan dua buah switch buah switch virtual OVX(vs1, vs2) melalui dua buah port virtual OVX(lingkaran hitam). hitam). Dua buah link fisik fisik antara ps1,ps2 dan ps3 sekarang di mapping ke ke satu buah link virtual OVX yang menghubungkan switch menghubungkan switch virtual vs1 dan vs2.
c.
Satu buah bigswitch OVX bigswitch OVX memiliki dua buah link fisik antara ps1,ps2 dan ps3 dan memiliki dua buah port virtual. virtual.
Gambar II-15 Skema Li nk Virtual Virtual pada OpenVirtex[11]
Pada gambar diatas, terdapat dua buah tenant . Pada bagian atas masing-masing gambar, memperlihatkan jaringan virtual OVX milik masing-masing tenant. Dan pada gambar bagian bawah terdapat gambaran dari jaringan fisik. Dari gambar diatas, bisa dilihat bahwa tenant 1 25
memiliki dua buah virtual link yaitu yaitu vlink1 dan vlink2 yang masing-masing dipetakan ke link fisik fisik sebagai berikut: vlink1: l2 dan l3 dan vlink2: l5. tenant 2 2 memiliki dua buah virtual link juga juga yaitu vlink1 dan vlink2, yang masing-masing dipetakan ke link ke link fisik fisik sebagai berikut: vlink1: l1 vlink2: l4, dan untuk bigswitch vs2 bigswitch vs2 didalamnya terdapat link fisik fisik yang menghubungkan ps2 dan ps3 yaitu l3 yang diberi warna biru.
II.11 FlowVisor
FlowVisor berada di antara hardware hardware fisik dan software yang mengontrolnya. Seperti sistem operasi yang menggunakan instruction set untuk mengontrol underlying hardware, hardware, FlowVisor menggunakan protokol OpenFlow untuk mengontrol underlying physical network . FlowVisor menghosting beberapa guest OpenFlow controller , satu controller mengontrol satu slice. FlowVisor bisa dilihat sebagai Proxy sebagai Proxy untuk untuk protokol OpenFlow antara controller dan dan hardware switch. witch. FlowVisor menggunakan protokol OpenFlow untuk sistem komunikasi antara hardware jaringan dan dirinya serta antara dirinya dan pengontrol yang masing-masing akan berinteraksi dengan jaringan yang di virtualkan.
II.11.1 Virtualisasi Jaringan
Untuk dapat melakukan virtualisasi jaringan, kita perlu mengetahui resource apa saja yang bisa dibagi. a.
Flow traffic Suatu jaringan virtual bisa dibuat tidak hanya berdasarkan suatu kebutuhan topologi tertentu saja, tapi bisa juga berdasarkan jenis traffic yang berjalan berdasarkan identitas layer2(komunikasi
host
tertentu),
layer3(komunikasi
subnet
tertentu)
ataupun
layer4(komunikasi aplikasi tertentu) b.
Bandwidth Tiap jaringan virtual bisa diberikan sejumlah bandwidth tertentu bandwidth tertentu untuk suatu link virtual virtual yang dimilikinya. dimilikinya. Ada dua pengertian dari slicing dari slicing bandwidth disini, bandwidth disini, yang pertama adalah slicing bandwidth bandwidth sebagai fungsi turunan dari slicing topologi. Dalam pengertian ini, 26
topologi dibagi berdasarkan saluran, dan contoller akan mengatur siapa-siapa saja yang bisa melewati slice melewati slice berdasarkan berdasarkan kebutuhan bandwidth. bandwidth.
Gambar II-16 Slicing Topologi dengan Flowvisor[9]
c.
Topologi
Tiap jaringan virtual memiliki suatu topologi sendiri berdasarkan topologi fisik( switch dan switch dan port port ). ). d.
CPU 27
Tiap jaringan virtual bisa mendefinisikan prosentase resource switch switch yang bisa digunakannya. Fitur ini masih bersifat pengembangan dan mengandalkan juga pengembangan yang dilakukan oleh pihak vendor perangkat perangkat keras switch, fitur dasar yang diperlukan o leh perangkat keras adalah rate limiters, limiters, untuk membatasi rate komunikasi rate komunikasi OFP suatu tenant tertentu tertentu dan process schedulling process schedulling untuk menjadwalkan proses untuk menangani event-event seperti: seperti:
New flow message: message: ketika suatu paket datang dan tidak ada flow ada flow entry yang match di flow di flow
table maka switch maka switch akan akan mengirim flow mengirim flow message ke controller untuk untuk meminta entry baru entry baru di flow di flow table.
Controller request : OpenFlow controller mengirim pesan ke switch untuk mengubah entry
flow table ataupun melakukan query statistik.
II.11.2 Forwarding Table
Untuk virtualisasi dari jaringan OpenFlow SDN dan isolasi flow isolasi flow,, network virtualization layer yang yang disebut FlowVisor di jalankan diantara controller OpenFlow dan perangkat fisik jaringan. FlowVisor bekerja sebagai proxy controller untuk perangkat fisik jaringan. FlowVisor telah diadaptasi secara luas karena kesederhanaan dan kemudahan untuk digunakan, namun FlowVisor memiliki beberapa kelemahan Yaitu: a. Overhead proses, proses, karena pesan kontrol yang dienkapsulasi dan di dekapsulasi dua kali. b. Implementasi FlowVisor yang bisa menggunakan protokol OpenFlow versi 1.0 II.11. 3 Arsitektur FlowVisor
Seperti lapisan virtualisasi dalam sebuah komputer. FlowVisor berada diantara hardware fisik hardware fisik dan software dan software yang yang mengontrolnya. Seperti sistem operasi yang menggunakan instruction set untuk untuk mengontrol underlying hardware, hardware, FlowVisor menggunakan protokol OpenFlow untuk men gontrol underlying physical network . FlowVisor menghosting beberapa guest beberapa guest OpenFlow OpenFlow controller , satu controller mengontrol mengontrol satu slice satu slice.. FlowVisor bisa dilihat sebagai proxy sebagai proxy untuk untuk protokol OpenFLow antara controller dan dan hardware switch. switch. a. Slice:Adalah Slice:Adalah istilah lain untuk satu jaringan virtual yang didefinisikan oleh FlowVisor, satu slice berisi slice berisi satu set flowspace set flowspace
28
b. FlowSpace:Berisi FlowSpace:Berisi serangkaian regular expresion expresion yang mendefinisikan kategori flow kategori flow yang masuk kedalam suatu kategori slice. slice. Misalkan: slice-http: berisi flowspace flowspace yang mendefinisikan aturan port 80 dan port 443 yang masing-masing akan dikontrol trafficnya trafficnya oleh suatu controller tersendiri. Slice-tenant1, Slice-tenant1, berisi flowspace yang mendefinisikan port port dan switch dan switch yang yang masuk kedalam suatu jaringan virtual milik tenant . c. Pengaturan routing FlowVisor: FlowVisor: harus dilakukan secara static secara static,, berdasarkan port_in, buatlah actionnya berdasarkan actionnya berdasarkan port_out d. Versi OpenFlow yang didukung oleh FlowVisor adalah versi 1.0 dan versi sesudahnya tidak dikenali.
29
Bab III METODOLOGI PENELITIAN dan DESAIN PERCOBAAN
Sebelum melakukan analisis fungsionalitas dan kinerja teknologi virtualisasi berbasis SDN sebagai solusi virtualisasi berbasis SDN terlebih dahulu perlu ada suatu desain sistem, desain topologi jaringan pemilihan perangkat keras, pemilihan perangkat lunak. Desain topologi dibuat dengan mempertimbangkan ketersediaan sumber daya perangkat keras namun tetap mengacu kepada topologi real jaringan real jaringan milik penyedia jaringan dan d an konektivitasnya dengan jaringan milik tenant. Perangkat keras dipilih berdasarkan ketersediaan di lab, dengan mempertimbangkan kebutuhan minimal fungsi perangkat lunak yang akan dipakai dan juga desain topologi yang akan diimplementasikan didalam percobaan. Pemilihan perangkat lunak dilakukan berdasarkan fungsifungsi yang diperlukan, kompatibilitas dengan perangkat lunak yang lain serta sistem operasi, selain itu pemilihan versi perangkat lunak juga dilakukan atas dasar kestabilan dari perangkat lunak terkait.
III.1 Metodologi Penelitian
Dalam penyusunan dan penulisan tesis ini menggunakan beberapa metodologi, yaitu sebagai berikut:
Menetapkan tujian tujian riset
Perancangan dan implementasi percobaan
Identifikasi permasalahan
Studi literatur:
Gambar III-1 Metodologi Penelitian
30
Pembuatan analisis
III.1.1Studi III.1.1 Studi Literatur
Studi literatur dilakukan untuk mendapatkan berbagai macam sumber yang terdiri dari konsep, implementasi, pengujian, serta aspek non teknis berkaitan dengan kontribusi apa yang bisa diberikan oleh penulis dalam penelitian. Selain itu studi literatur dilakukan untuk mendapatkan kondisi nyata kebutuhan akan solusi solusi virtualisasi virtualisasi berbasis berbasis SDN. Penulis melakukan studi literatur, dari berbagai sumber: ebook , jurnal, internet, diskusi dan sumber lainnya yang memiliki keterkaitan dengan virtualisasi pada software pada software defined networking (SDN). (SDN). Dari hasil studi literatur didapatkan informasi sebagai pedoman untuk menerapkan menerapkan teknologi virtualisasi virtualisasi berbasis SDN di lingkungan testbed .
III.1.2 Mengidentifikasi Permasalahan
Dalam tahap mengidentifikasi permasalahan dilakukan pencarian terhadap permasalahan yang ada kemudian diangkat sebagai topik dari d ari penelitian. Berdasarkan studi literatur yang sudah dilakukan terdapat permasalahan yang bisa diangkat dalam penelitian ini, khususnya permasalahan mengenai peranan OpenFlow dalam penerapanan penerapan an virtualisasi di jaringan berbasis SDN. Ada cukup banyak solusi virtualisasi berbasis SDN yang diujicoba di level lab, namun ada satu buah solusi yang banyak digunakan pada banyak testbed yaitu FlowVisor, dan ada satu buah solusi lain yang dianggap sebagai pengganti dari FlowVisor yaitu OpenVirtex yang digadang-gadang memiliki fitur dan performa yang lebih baik. Hal ini memunculkan juga pertanyaan bisakah solusi virtualisasi SDN ini dipakai sebagai teknologi untuk layanan VPN.
III.1.3 Menentukan Tujuan
Setelah mengidentifikasikan permasalahan, langkah selanjutnya dalah menentukan tujuan dari penelitian dan penyusunan tesis ini agar agar penelitian tesis tetap tetap fokus fokus dalam menjawab permasalahan permasalahan yang sudah diidentifikasi pada tahap sebelumnya. Tujuan dari penelitian ini adalah perancangan dan implementasi testbed untuk menjalankan virtualisasi jaringan SDN multi tenant, untuk menentukan kapabilitas, kelebihan dan kekurangan dari solusi virtualisasi FlowVisor dan OpenVirtex. 31
III.1.4 Perancangan dan Implementasi
Pada tahap ini dilakukan perancangan dan implementasi dari testbed yang akan dibangun. Perancangan testbed dibuat sesederhana mungkin mengikuti ketersediaan sumber daya perangkat keras namun menyerupai topologi yang sesungguhnya dari layanan jaringan virtual yang dijalankan oleh operator, sehingga dapat memberikan hasil yang valid dalam penelitian. Perancangan dan implementasi dalam penelitian serta penyusunan tesis ini dilakukan dengan beberapa tahap yaitu sebagai berikut: a. Melakukan survei terhadap perangkat lunak yang akan diperlukan dalam implementasi b. Melakukan pengujian terhadap perangkat lunak yang
sudah ditentukan sebelum
mengimplementasikannya c. Membuat rancangan dari topologi jaringan yang akan digunakan pada implementasi d. Mengimplementasikan rancangan topologi menggunakan perangkat lunak yang sudah ditentukan e. Pengujian terhadap rancangan yang sudah dibuat.
III.1.5 Analisis dan Hasil Penelitian
Pada tahapan ini dilakukan analisis terhadap rancangan yang sudah diimplementasikan.Analisa tersebut meliputi bagaimana kinerja dan fungsionalitas dari FlowVisor dan OpenVirtex untuk mendukung layanan virtualisasi, apa kelebihan dan kekurangan keduanya, dan bagaimana kesiapan solusi virtualisasi berbasis SDN untuk diterapkan dalam skala system produksi.
III.1.6 Penyusunan Tesis
Tahapan ini adalah tahapan terakhir dalam penelitain yaitu membuat laporan tesis. Pada penyusunan laporan tesis harapannya adalah bisa seabgai keluaran untuk menjabarkan serta menyampaikan topik penelitian di hadapan pembimbing p embimbing serta penguji. Selain itu memberikan jalan dan celah untuk mengembangkan penelitian selanjutnya.
32
Pemilihan perangkat lunak
Desain topologi jaringan
Desain percobaan pada testbed
Pemilihan perangkat keras Gambar III-2 Implementasi Testbed
III.2
Kebutuhan Perangkat Keras
Pada penyusunan tesis ini dibutuhkan perangkat keras dan perangkat lunak untuk mensimulasikan bagaimana teknologi virtualisasi diterapkan dengan dukungan protokol OpenFlow. Perangkat keras yang dipergunakan dalam tesis ini menggunakan enam belas buah mesin server mesin server virtual. terdiri dari enam jenis yaitu openflow controller dan dan openflow switch. switch. Enam jenis ini mengikuti kebutuhan dari lab testbed yang disesuaikan dengan situasi nyata. Perangkat keras yang dipergunakan dalam tesis ini menggunakan dua buah mesin server mesin server yang yang dijadikan sebagai virtual machine server untuk semua perangkat lab. Untuk menjalankan virtualisasi di masing-masing server, aplikasi virtualisasi yang digunakan adalah VMware ESXi 5.0 untuk server untuk server fisik pertama dan Virtual Box 4.3.16 untuk server untuk server fisik kedua. kedua. Server fisik fisik kedua digunakan untuk meng-hosting meng-hosting controller dan hypervisor sedangkan server sedangkan server fisik pertama digunakan untuk meng-hosting meng-hosting sisanya. sisanya.
Tabel III-1 Spesifikasi Komponen serve server r fisik fisik
Nomor Komponen Server Fisik 1
Spesifikasi
CPU
Xeon 3.10 GHz @ 4 Core
Memory
8 GB DDR3 Non-ECC
Hardisk
1 TB Sata
33
2
Network Interface
Intel 1 GbE
Vendor
Rainer
CPU
I Core-5@ 2 Core
Memory
4 GB DDR3
Hardisk
1 TB Sata
Network Interface
Intel 1 GbE
Vendor
Intel
Adapun alasan penggunaan perangkat virtual dilakukan karena keterbatasan perangkat fisik yang ada di lab, ketiadaan switch ketiadaan switch yang bisa menjalankan protokol OpenFlow dan juga keterbatasan jumlah network interface card yang yang dimiliki oleh PC yang ada di Lab. Berikut adalah spesifikasi dari seluruh komponen lab, berikut adalah spesifikasi server spesifikasi server virtual virtual yang digunakan.
Tabel III-2 Spesifikasi Komponen Logic Server Virtual Virtual
No
III.3
Nama template template virtual virtual server
CPU
Memory
Hardisk
1
OpenVswitch untuk P dan PE
2 core
1 GB
15 GB
2
OpenVirtex
2 core
1 GB
15 GB
3
Controller
2 core
1 GB
15 GB
4
CE
1 core
512 MB
15 GB
5
Host
1 core
256 MB
1 GB
Kebutuhan Perangkat Lunak
Ubuntu merupakan salah satu distro distro Linux yang berbasiskan sistem operasi Debian dan didistribusikan sebagai perangkat lunak bebas. Ubuntu dirancang untuk kepentingan penggunaan 34
pribadi, namun versi server versi server Ubuntu Ubuntu juga tersedia, dan telah dipakai secara luas. Proyek Ubuntu resmi disponsori oleh Canonical Ltd. Tujuan dari distribusi Linux Ubuntu adalah membawa semangat yang terkandung di dalam filosofi Ubuntu ke dalam dunia perangkat lunak. Ubuntu adalah sistem operasilengkap operasilengkap berbasis Linux, tersedia secara bebas, dan mempunyai dukungan baik yang berasal dari komunitas maupun tenaga ahli profesional.
JDK adalah Java yang dikembangkan oleh Oracle sedangkan OpenJDK adalah Java versi open source yang dikembangkan oleh komunitas. Jika menggunakan distro linux, anda dapat memilih menggunakan OpenJDK. JDK / OpenJDK berisi komponen yang digunakan untuk membuat program, compile, compile, dan menjalankan program Java. Didalam JDK terdapat JRE (Java Runtime Environment), JRE ini yang dapat menjalankan program Java karena didalam JRE terdapat JVM (Java Virtual Machine).
Tiny Core adalah salah satu varian Linux yang berkonsentrasi untuk memberikan kemampuan Sistem Operasi dengan ukuran berkas sekecil mungkin. Tiny Core bisa didapat mulai dari versi teks yang disebut Core, Tiny Core yang sud ah punya Graphical User Interface atau Core Plus yang disertai kemampuan deteksi perangkat keras WiFi dan aplikasi untuk remaster kumpulan extensi yang diikutkan dalam penyebarannya.
Iperf adalah salah satu tool untuk untuk mengukur troughput bandwidth dalam bandwidth dalam sebuah link network , agar bisa dilakukan pengukuran diperlukan Iperf yang terinstall point-to-poin terinstall point-to-point, t, baik di sisi server maupun client . Iperf sendiri bisa digunakan untuk mengukur performansi link dari sisi TCP maupun UDP.
III.3.1 Software untuk Controller Tabel III-3 Softw Software untuk Controller
No
Nama program
Versi
Fungsi dari program
1
Ubuntu
14.04
Sebagai sistem operasi
35
2
OpenJDK
1.7
Sebagai framework Sebagai framework yang menjalankan program openflow controller
3
Floodlight
0.9
Sebagai program openflow controller
Switch h P dan PE III.3.2 Software untuk Switc Tabel III-4 Softw Software untuk Switc Switch h P dan PE
No
Nama program
Versi
Fungsi dari program
1
Linux Ubuntu
14.04
Sebagai sistem operasi
2
OpenvSwitch
2.3
Sebagai virtual switch openflow yang mendukung hingga openflow versi 1.4
III.3.3 Software untuk H ype yper visor
Tabel III-5 Softw Software untuk HyperVisor
No
Nama Program
Versi
Fungsi dari Program
1
Linux Ubuntu
14.04
Sebagai sistem operasi
2
OpenJDK
1.7
3
OpenVirtex
0.0-MAINT
Network HyperVisor untuk virtualisasi
4
Python
2.7.6
Sebagai antarmuka OpenVirtex
5
Flowvisor
1.0.8
Network HyperVisor untuk virtualisasi
Sebagai framework Sebagai framework yang menjalankan program Network HyperVisor OpenVirtex
36
Swi tch CE III.3.4 Software untuk Swi Tabel III-6 Softw Software untuk Switch Switch CE
No
Nama program
Versi
Fungsi dari program
1
Linux Ubuntu
14.04
Sebagai sistem operasi
Softwa ar e untuk Host III.3.5 Softw Tabel III-7 Softw Software untuk Host
III.4
No
Nama program
Versi
Fungsi dari program
1
Linux Tiny core
6.4.1
Sebagai sistem operasi
2
Iperf3
3.1.1
Tools pengujian antar host milik client
Desain Topologi Jaringan
Topologi jaringan yang dibuat, didesain agar bisa memodelkan topologi pada jaringan milik penyedia layanan yang terdiri dari core dan edge serta topologi jaringan milik tenant yang terhubung dengan jaringan milik penyedia layanan. Dalam topologi ini ada dua buah tenant yaitu yaitu tenant 1 dan tenant 2 yang memiliki dua buah office di dua buah area yang berbeda, kedua tenant tersebut memerlukan koneksi jaringan privat antara kedua buah office yang dimilikinya. Berikut adalah topologi jaringannya.
37
Network controller
OVX Hypervisor
OOB Management linkt11
Host Tenant 1.1
linkt12
CE Tenant 1.1
CE Tenant 1.2
Host Tenant 1.2
linkc3
linkc1 link2
link3 SwitchP2
link1
link7 link4
Sw itc hPE1
link6 link5
SwitchP1
SwitchP4
Sw itc hPE2
linkc4
linkc2 Linkt22 SwitchP3
linkt21 CE Tenant 2.2
Host Tenant 2.1
CE Tenant 2.1
Gambar III-3 Topologi Jaringan Fisik Testbed
38
Dalam rancangan topologi testbed ini, jaringan milik operator o perator menggunakan topologi layer 2, tidak ada konfigurasi ip address yang setiap perangkatnya. Setiap perangkat switch OpenFlow memiliki satu buah alamat pengenal yang mirip dengan alamat layer 2, 2, alamat ini disebut dengan datapath ID(DPID), datapath ID(DPID), berikut adalah datapath ID dari masing-masing.
atapath ath Switch Swi tch Tabel III-8 D atap Nama Perangkat Perangkat
Datapath ID Datapath ID
P1 P2 P3 P4 PE1 PE2
00:00:00:00:00:01:01:00 00:00:00:00:00:01:02:00 00:00:00:00:00:01:03:00 00:00:00:00:00:01:04:00 00:00:00:00:00:02:01:00 00:00:00:00:00:02:02:00
Host Tenant 2.2
Dalam rancangan topologi testbed ini, jaringan milik operator o perator menggunakan topologi layer 2, tidak ada konfigurasi ip address yang setiap perangkatnya. Setiap perangkat switch OpenFlow memiliki satu buah alamat pengenal yang mirip dengan alamat layer 2, 2, alamat ini disebut dengan datapath ID(DPID), datapath ID(DPID), berikut adalah datapath ID dari masing-masing.
atapath ath Switch Swi tch Tabel III-8 D atap Nama Perangkat Perangkat
Datapath ID Datapath ID
P1 P2 P3 P4 PE1 PE2
00:00:00:00:00:01:01:00 00:00:00:00:00:01:02:00 00:00:00:00:00:01:03:00 00:00:00:00:00:01:04:00 00:00:00:00:00:02:01:00 00:00:00:00:00:02:02:00
Jaringan pada sisi Operator menggunakan jaringan komputer berbasis SDN sedangkan pada sisi tenant menggunakan jaringan komputer tradisional. Konektifitas antara switch dan controller menggunakan out of band (OOB), (OOB), yaitu jaringan khusus yang diperuntukan sebagai jalur komunikasi untuk keperluan manajemen jaringan seperti monitoring dan konfigurasi. Dengan adanya OOB maka konfigurasi yang harus dilakukan akan lebih sederhana, karena tidak perlu ada routing tradisional yang harus dikonfigurasi di sisi perangkat switch. Tanpa adanya OOB maka perangkat switch yang digunakan harus menggunakan perangkat switch hybrid, yang bisa mempergunakan routing tradisional untuk melewatkan traffic protocol OpenFlow dan traffic lainnya akan dilewatkan melalui mekanisme pemilihan rute datapath. Masing-masing switch Masing-masing switch baik baik P, PE didalam jaringan virtual SDN memiliki spek dan fitur yang sama, hal ini berbeda dengan jaringan tradisional. Ketika operator menjalankan layanan VPN berbasis MPLS, router P dan PE memiliki fungsi dan spek yang berbeda, router PE berfungsi untuk menjalankan VRF(VPN routing VRF(VPN routing and forwarding ) dan komunikasi iBGP antar router PE. Router P berfungsi menjalankan label switching dan internal routing protocol . Dalam jaringan virtual SDN switch SDN switch PE akan memiliki akses langsung dari controller milik tenant baik tenant baik secara langsung pada FlowVisor maupun secara virtual penuh pada OpenVirtex. Berikut adalah konfigurasi lengkap dari bridge OpenVswitch yang dibuat dalam percobaan ini.
Tabel III-2 Konfigurasi Br idge idge
No
Router Interface OpenFlow bridge
Bridge hardware address
Konfigurasi bridge
1
P1
Eth1, 00:00:00:01:01:00 eth2, eth3, eth4
ovs-vsctl add-br vmbr0 ovs-vsctl add-port vmbr0 eth1 ovs-vsctl add-port vmbr0 eth2 ovs-vsctl add-port vmbr0 eth3 ovs-vsctl add-port vmbr0 eth4 ovs-vsctl set bridge vmbr0 otherconfig:hwaddr=00:00:00:01:01:00
2
P2
Eth1,eth2
00:00:00:01:02:00
ovs-vsctl add-br vmbr0 ovs-vsctl add-port vmbr0 eth1 ovs-vsctl add-port vmbr0 eth2 ovs-vsctl set bridge vmbr0 otherconfig:hwaddr=00:00:00:01:02:00
3
P3
Eth1, eth2 00:00:00:01:03:00
ovs-vsctl add-br vmbr0 ovs-vsctl add-port vmbr0 eth1 ovs-vsctl add-port vmbr0 eth2 ovs-vsctl set bridge vmbr0 otherconfig:hwaddr=00:00:00:01:03:00
4
P4
Eth1, 00:00:00:01:04:00 eth2, eth3, eth4
ovs-vsctl add-br vmbr0 ovs-vsctl add-port vmbr0 eth1 ovs-vsctl add-port vmbr0 eth2 ovs-vsctl add-port vmbr0 eth3 ovs-vsctl add-port vmbr0 eth4 ovs-vsctl set bridge vmbr0 otherconfig:hwaddr=00:00:00:01:04:00
5
PE1
Eth1, eth2, eth3
00:00:00:02:01:00
ovs-vsctl add-br vmbr0 ovs-vsctl add-port vmbr0 eth1 ovs-vsctl add-port vmbr0 eth2 ovs-vsctl add-port vmbr0 eth3 ovs-vsctl set bridge vmbr0 otherconfig:hwaddr=00:00:00:02:01:00
6
PE2
Eth1, eth2, eth3
00:00:00:02:02:00
ovs-vsctl add-br vmbr0 ovs-vsctl add-port vmbr0 eth1 ovs-vsctl add-port vmbr0 eth2 ovs-vsctl add-port vmbr0 eth3 ovs-vsctl set bridge vmbr0 otherconfig:hwaddr=00:00:00:02:02:00
III.5 Desain Percobaan pada Testbed
Dalam percobaan secara garis besar b esar ada beberapa tahap yang dilakukan, yaitu pengujian untuk testbed, pengujian untuk OpenVirtex dan pengujian untuk FlowVisor. Untuk pengujian testbed, hal yang dilakukan adalah melakukan pengujian fungsionalitas switch fungsionalitas switch OpenFlow dan datapath. Pada pengujian FlowVisor, dilakukan pengujian, fungsionalitas virtualisasi, pengujian fungsionalitas koneksi end-to-end host di suatu tenant, pengujian fungsionalitas layanan aplikasi di atas controller SDN, pengujian fungsionalitas failover, implementasi aplikasi firewall, sebagai pembuktian kapabilitas untuk menjalankan network function virtualization(NFV) virtualization(NFV) untuk masing-masing tenant dan pengujian penggunaan sumberdaya hypervisor dan pengujian delay akibat proses tambahan pada hypervisor . Pengujian fungsionalitas OpenVirtex dilakukan persis sama dengan pengujian yang dilakukan pada FlowVisor. Pengujian fungsionalitas switch fungsionalitas switch OpenFlow, dilakukan satu per satu pada switch pada switch yang ada pada testbed dengan cara menyambungkan seluruh swith yang ada menjadi suatu topologi testbed dan kemudian menghubungkan semuanya dengan controller dan kemudian menjalankan modul topologi serta switch pada controller untuk bisa membuat peta jaringan utuh serta membentuk rute antar host. Proses ping kemudian dilakukan antar host milik tenant dan melihat flow melihat flow yang terbentuk pada switch pada switch OpenFlow. Pengujian fungsionalitas pada OpenVirtex dan FlowVisor pertama kali di lakukan dengan cara membuat konfigurasi dua buah jaringan virtual milik masing-masing tenant.
konfigurasi
jaringan virtual pada OpenVirtex dilakukan dengan membuat dua buah switch virtual yang masing-masing berasal dari hasil virtualisasi switch virtualisasi switch PE1 dan PE2, sebut saja vPE1 dan vPE2, diantara keduanya kemudian dihubungkan dengan link virtual yang sejatinya adalah jaringan fisik yang berada di antara PE1 dan PE2. Berikut adalah gambar dari konfigurasi virtualisasi yang dilakukan.
SDN Controller
OOB Management
Rout er CE te nant
Rout er CE te nant
PC tenant
Vlink
v PE1
vPE2
Gambar III-4 Jaringan Virtual Tenant OpenVirtex
Setelah jaringan virtual di jalankan, pengujian selanjutnya adalah pengujian link failover dan fungsi penambahan layanan aplikasi untuk tenant, serta pengujian koneksi end to end antar host milik tenant yang berbeda site. berbeda site. Pengujian penggunaan sumber daya komputasi pada server pada server network hypervisor dilakukan untuk mengetahui seberapa besar masing-masing network hypervisor menghabiskan sumber daya CPU dan memory untuk bisa menjalankan flow menjalankan flow yang diperlukan untuk menghubungkan kedua site milik tenant. Pengujian delay yang ditimbulkan oleh keberadaan hypervisor dilakukan untuk mengetahui seberapa besar delay yang ditimbulkan oleh penambahan proses yang dilakukan oleh network hypervisor. Untuk FlowVisor pengujian yang dilakukan adalah sama, namun dengan topologi jaringan virtual yang tidak bisa sama, karena fitur dari OpenVirtex yang bisa melakukan virtualisasi secara penuh, termasuk kemampuan untuk membuat link virtual yang tidak dimiliki oleh FlowVisor, serta keharusan dari jaringan virtual pada FlowVisor yang harus merupakan graph isomorph dari jaringan fisik. Namun secara tujuan dan fungsionalitas akan sama, yaitu membuat konektifitas antara kedua site tenant. Tenant 1 akan melewati switch P2 sementara tenant 2 akan melewati switch P3. Berikut adalah gambar dari jaringan virtual yang dibentuk oleh FLowVisor.
SDN Controller
OOB Management
PC T en a nt
Rout er T ena nt
Ro ut er T en a nt 1.2
Sw itc h P E1
SwitchP1
Sw itc h P2/ P3
S w itc h P4
Gambar III-5 Jaringan Virtual Tenant FlowVisor
S w itc h PE2
PC T ena n t
Si te-to -to-Sit -Si te III.6 Metode Pengukuran Kinerja Testbed VPN Sit Pada tahap ini dilakukan perancangan pengukuran performansi testbed yang diatasnya dijalankan virtualisasi untuk layan VPN site-to-site. site-to-site. Pengujian dilakukan dari segi performa jaringan, overhead komunikasi OFP akibat dari keberadaan network hypervisor serta penggunaan sumber daya komputasi baik di sisi controller maupun hypervisor. Dalam penelitian ini hal yang diukur adalah throughput, delay dan jitter untuk mengukur performa jaringan serta overhead OFP, dan penggunaan CPU dan memory pada controller maupun hypervisor untuk mengukur penggunaan sumberdaya komputasi sebagai akibat adanya proses yang dijalankan oleh hypervisor dan interaksinya dengan komponen.n yang lainnya. Implementasi pengukuran kinerja jaringan menggunakan ping dan iperf dengan parameter sebagai berikut: a. Pengukuran delay dan jitter menggunakan perangkat lunak ping sebanyak 10 paket dengan parameter default dan dilakukan sebanyak sepuluh kali percobaan, sehingga ada 100 data untuk setiap jenis solusi yang diimplementasi. b. Pengukuran throughput menggunakan perangkat lunak iperf dengan menggunakan ukuran paket 1 GB, pengambilan data setiap interval 20 detik dan dilakukan sebanyak 10 kali per percobaan dan diulang diulang sebanyak 10 kali, sehingga terdapat 10 sampel. c. Pengukuran sumber daya komputasi dilakukan di sisi hypervisor maupun controller dengan jumlah percobaan sebanyak 10 kali, perangkat lunak yang digunakan adalah htop, dan nilai pengukuran yang dilakukan adalah prosentase dari penggunaan sumber daya.
Bab IV HASIL PERCOBAAN dan ANALISIS
Untuk mengetahui fungsionalitas dan performa dari sistem yang dibuat, maka penulis melakukan dua jenis pengujian yaitu pengujian fungsionalitas dan pengujian performa. Pengujian fungsionalitas bertujuan untuk mengetahui apakah seluruh fungsi sistem yang sebelumnya telah didefinisikan berjalan dengan benar, sedangkan pengujian performa bertujuan untuk untuk mengetahui mengetahui dan membandingkan seberapa besar jumlah sumber sumber daya jaringan dan sumber daya komputasi yang diperlukan oleh sis tem untuk menjalankan fungsi layananan VPN site-to-site beserta. Pengujian fungsionalitas terdiri dari 3 bagian yaitu, pengujian fungsionalitas dasar testbed, pengujian fungsionalitas virtualisasi dengan menggunakan FlowVisor dan pengujian fungsionalitas virtualisasi dengan menggunakan OpenVirtex.
IV.1 Pengujian Fungsionalitas Dasar Testbed Penelitian ini berhasil mengimplementasikan testbed jaringan jaringan SDN yang terdiri dari core dan edge network penyedia layanan, dan jaringan milik tenant 1 dan tenant 2. 2. Jaringan milik penyedia layanan(switch P dan switch PE) menggunakan teknologi SDN sedangkan jaringan milik tenant (router (router CE dan dan host ) menggunakan teknologi jaringan tradisional. Bisa dilihat hasilnya dari gambar yang berasal dari menu topologi di sisi controller, perangkat milik penyedia layanan akan terdeteksi sebagai switch SDN, sedangkan perangkat router milik tenant yaitu CE akan terlihat sebagai host bagi host bagi controller SDN milik tenant. Sedangkan host milik tenant tidak terlihat. Topologi fisik testbed yang digunakan untuk menguji dua buah aplikasi virtualisasi dapat dilihat pada gambar IV-1 Topologi fisik testbed multitenant . Sedangkan topologi yang terbaca di sisi controller bisa controller bisa terlihat pada gambar IV-2 I V-2 Topologi logic testbed multitenant
Network controller
OVX Hypervisor
OOB Management linkt11
HostTenant1.1
linkt12
CE Tenant 1.1
CE Tenant 1.2
HostTenant1.2
linkc3
linkc1 link2
link3 SwitchP2
link1
link7 link4
Sw itc h PE1
link6 link5
SwitchP1
SwitchP4
Sw itc hPE2
linkc4
linkc2
Linkt22 SwitchP3
linkt21 CE Tenant 2.2
HostTenant2.1
HostTenant2.2
CE Tenant 2.1
Gambar IV-1 Topologi Fisik T estbed stbed Multi M ultite tenant nant
Gambar IV-2 Topologi Logic T Logic T estbe estbed d Multi M ultite tenant nant
Switch yang terlihat pada gambar IV-1 maupun IV-2 yang bersesuaian. Dihubungkan melalui link fisik testbed. Topologi logic bisa logic bisa terbentuk karena adanya protokol (link layer discovery protocol ) LLDP, sebuah protokol layer 2 yang berfungsi untuk melakukan pemetaan perangkat layer 2 didalam sebuah jaringan SDN. Setiap switch Setiap switch akan mengirimkan pesan LLDP ke setiap port aktif yang dimilikinya, yang kemudian akan dipetakan menjadi switch-switch tetangga.
Informasi ini kemudian akan dikirimkan ke controller oleh seluruh switch seluruh switch yang terkoneksi ke controller. Controller kemudian akan mengolah informasi tersebut dan membuat peta utuh jaringan berdasarkan dpid switch dpid switch dan link-link dan link-link yang menghubungkan menghubungkan switch-switch switch-switch tersebut. Untuk menjalankan pengujian virtualisasi, baik dengan menggunakan OpenVirtex maupun Flowvisor, akan digunakan dua buah instance controller yang berada didalam satu buah server buah server yang sama namun dengan konfigurasi port yang berbeda. Berikut adalah baris konfigurasi controller floodlight yang berbeda di kedua instance. instance. Dua buah controller dijalankan didalam sebuah server yang sama untuk menghemat resource. Dalam implementasi sesungguhnya, sebuah controller untuk setiap tenant bisa tenant bisa dibuat didalam sebuah virtual machine yang berbeda yang dikelola langsung oleh tenant.
Tabel IV-1 Baris Konfigurasi yang Berbeda pada Setiap I nstance nstance C ontr ontr oller oller
1
2
FloodlightProvider.openflowport
10000
20000
net.floodlightcontroller.restserver.RestApiServer.httpPort
10001
20001
net.floodlightcontroller.restserver.RestApiServer.httpsPort
8082
8083
IV.2 Pengujian Fungsionalitas Virtualisasi dengan Menggunakan FlowVisor
Selanjutnya untuk bisa jalankan langkah-langkah berikut untuk bisa menjalankan FlowVisor sesuai dengan kebutuhan konfigurasi yang sudah dijelaskan pada bab sebelumnya. Langkah pertama adalah dengan melakukan konfigurasi awal Flowvisor.dengan menginisiasi konfigurasi FlowVisor. Langkah selanjutnya adalah melakukan slicing melakukan slicing topologi untuk tenant1 dan tenant 2. Slicing artinya adalah melakukan pembagian topologi jaringan fisik berdasarkan kriteria protokol, pembagian bisa berdasarkan layer fisik(port), layer datalink (alamat (alamat fisik), layer 3(alamat 3(alamat IP) maupun layer 4(protokol 4(protokol transport dan port aplikasi) slicing yang dilakukan disini adalah slicing adalah slicing topologi berdasarkan port dan alamat layer2. Slicing topologi fisik murni dilakukan pada perangkat switch perangkat switch yang hanya digunakan oleh satu tenant saja, sedangkan slicing sedangkan slicing berdasarkan port dan alamat fisik fisik dilakukan pada perangkat perangkat switch yang digunakan oleh kedua tenant. Slicing utama untuk topologi tenant1 tenant1 terdiri dari switch: switch: PE1, P1, P2, P4, PE2 dan tenant 2 terdiri dari switch. dari switch.:: PE1, P1 P4, PE2, bisa dilihat di sini, switch P1 dan P4 dilewati oleh traffic tenant 1 maupun tenant maupun tenant 2. Sementara 2. Sementara untuk jalur backup masing-masing tenant akan dimasukan switch P2 untuk tenant1 dan switch P3 untuk tenant2. Dalam pembuatan topologi jaringan di FlowVisor, virtual link tidak bisa dibuat, sehingga controller milik tenant
bisa langsung mengakses perangkat core milik penyedia layanan. Dalam gambar bisa dilihat sampel flowspace sampel flowspace yang yang terbentuk, untuk kedua tenant. Selengkapnya bisa dilihat di lampiran.
Configured Flow entries: {"force-enqueue": -1, "name": "switch-pe1-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 1, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:19:c5:4e", "dl_src": "00:0c:29:de:79:31", "in_port": 1}} {"force-enqueue": -1, "name": "switch-pe1-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 2, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:19:c5:4e", "dl_src": "00:0c:29:de:79:31", "in_port": 1}} Gambar IV-3 Sampel F lowspace 2 lowspace untuk Tenant 1 dan Tenant 2
Secara singkat masing-masing field masing-masing field bisa bisa dijelaskan sebagai berikut: a. Name: nama dari flowspace dari flowspace b. Slice-action
Slice-name: Slice-name: slice yang menjadi pemilik dari flow-space, flow-space, hal ini berkaitan dengan controller yang digunakan untuk mengatur flow flow untuk setiap flowmatch.
Permission: Permission: pengaturan hak untuk controller untuk setiap flow-match. Dalam penelitian ini permission ini permission yang diberikan adalah 7 yang artinya, flow artinya, flow terkait bisa didelegasikan ke controller dan kemudian controller boleh menginstall flow menginstall flow entry terkait di sisi switch.
Priority: Priority: mengatur prioritas flow-space yang akan digunakan untuk suatu flow yang match ke lebih dari satu buah flow-space. buah flow-space.
Dpid: datapath id datapath id untuk perangkat switch perangkat switch terkait. Match: Match: i. Wildcards: Wildcards: jumlah flow jumlah flow yang match dengan flow-space. dengan flow-space. ii. dl_type: tipe payload yang diangkut, dalam hal ini 2048 artinya adalah IP. iii. dl_src, dl_dst dan in_port berkaitan dengan alamat datalink asal dan tujuan serta source serta source port terkait.
Langkah selanjutnya adalah kita melihat topologi yang terbentuk via GUI controller Floodlight. Baik untuk tenant 1 maupun tenant 2.
Gambar IV-4 Topologi Utama Tenant 1
Gambar IV-5 Topologi Utama Tenant 2 2
Selanjutnya kita bisa melihat rute yang dibentuk oleh kalkulasi modul switch milik controller Floodlight berdasarkan dpid. Tabel IV-2 Rute antar Switch Switch CE di Dalam Suatu Tenant
Tenant 1
[{"switch":"00:00:00:00:00:02:01:00","port":3},{"switch":"00:00:00:00:00:02:01:00","port":1},{"swit ch":"00:00:00:00:00:01:01:00","port":1},{"switch":"00:00:00:00:00:01:01:00","port":4},{"switch":"00 :00:00:00:00:01:04:00","port":4},{"switch":"00:00:00:00:00:01:04:00","port":3},{"switch":"00:00:00: 00:00:02:02:00","port":1},{"switch":"00:00:00:00:00
Tenant 2
[{"switch":"00:00:00:00:00:02:01:00","port":2},{"switch":"00:00:00:00:00:02:01:00","port":1},{"swit ch":"00:00:00:00:00:01:01:00","port":1},{"switch":"00:00:00:00:00:01:01:00","port":4},{"switch":"00 :00:00:00:00:01:04:00","port":4},{"switch":"00:00:00:00:00:01:04:00","port":3},{"switch":"00:00:00: 00:00:02:02:00","port":1},{"switch":"00:00:00:00:00:02:02:00","port":2}]
IV.2.1 Implementasi Virtualisasi Fungsi Layanan Jaringan
Implementasi
virtualisasi
fungsi
layanan
jaringan
dilakukan
dengan
cara
mengimplementasikan firewall mengimplementasikan firewall untuk setiap tenant , aplikasi yang dibuat sangat sederhana yaitu dengan sebuah script yang menjalankan firewall dan melakukan blocking untuk traffic yang datang dari suatu jaringan milik tenant. Implementasi tenant. Implementasi layanan aplikasi firewall aplikasi firewall bisa bisa dijalankan dengan baik, percobaan dilakukan dengan cara menyalakan aplikasi firewall pada tenant 1, yang secara default akan mendrop seluruh koneksi, dan melihat kondisi koneksi antar host dalam tenant 1, lalu membandingkannya dengan tenant 2. Sebelum firewall diaktifkan, koneksi antar host dalam tenant 1 bisa dijalankan, dan ketika firewall di tenant 1 diaktifkan. Koneksi pada tenant 1 mengalami drop sdeangkan pada tenant 2 masih bisa berjalan. Berikut adalah langkah-langkah yang dilakukan: a. Cek modul firewall: modul firewall: curl http://localhost:10001/wm/firewall/module/status/json {"result" : "firewall disabled"} b. Jalankan firewall: curl http://localhost:10001/wm/firewall/module/enable/json {"status" : "success", "details" : "firewall running"}
c. Cek kondisi koneksi pada kedua sisi tenant
Tabel IV-3 Pengujian F i rewa rewall pada Masing-Masing Tenant
Tenant 1 Ping berhenti: oot@RouterCETenant11:/home/galih# ping -c 10 10.0.0.2 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. From 10.0.0.1 icmp_seq=10 Destination Host Unreachable --- 10.0.0.2 ping statistics --10 packets transmitted, 0 received, 100% packet loss, time 8098ms
Tenant 2 Ping tetap berjalan: root@RouterCETenant21:/home/galih# ping -c 10 20.0.0.2 PING 20.0.0.2 (20.0.0.2) 56(84) bytes of data. 64 bytes from 20.0.0.2: icmp_seq=1 ttl=64 time=20.0 ms 64 bytes from 20.0.0.2: icmp_seq=2 ttl=64 time=2 ms 64 bytes from 20.0.0.2: icmp_seq=3 ttl=64 time=1.22 ms 64 bytes from 20.0.0.2: icmp_seq=4 ttl=64 time=0.564 ms 64 bytes from 20.0.0.2: icmp_seq=5 ttl=64 time=0.987 ms 64 bytes from 20.0.0.2: icmp_seq=6 ttl=64 time=1.21 ms 64 bytes from 20.0.0.2: icmp_seq=7 ttl=64 time=1.00 ms
64 bytes from 20.0.0.2: icmp_seq=8 ttl=64 time=1.22 ms 64 bytes from 20.0.0.2: icmp_seq=9 ttl=64 time=1.12 ms 64 bytes from 20.0.0.2: icmp_seq=10 ttl=64 time=0.678 ms --- 20.0.0.2 ping statistics --10 packets transmitted, 10 received, 0% packet loss, time 8013ms rtt min/avg/max/mdev = 0.564/3.455/20.0/9.874 ms
loverr pada FlowVisor IV.2.2 Pengujian Fungsi F ai love Langkah selanjutnya adalah melakukan pengujian failover pada FlowVisor. Pengujian ini ditujukan untuk mengetahui apakah fungsi failover bisa dijalankan dengan menggunakan FlowVisor. Langkah pertama yang dilakukan adalah dengan melihat jalur yang digunakan untuk menyampaikan paket data antar host yang terhubung ke jaringan. Langkah pertama adalah melihat jalur utama milik masing-masing tenant. Terlihat pada tabel berikut, jalur yang ditempuh untuk tenant1 maupun tenant 2 adalah sama.
Tabel IV-4 Jalur Utama Tenant pada pada FlowVisor
Tenant 1
#curl http://localhost:10001/wm/topology/route/00:00:00:00:00:02:01:00/2/00:00:00:0 0:00:02:02:00/2/json
[{"switch":"00:00:00:00:00:02:01:00","port":2},{"switch":"00:00:00:00:00:02:01:00 ","port":1},{"switch":"00:00:00:00:00:01:01:00","port":1},{"switch":"00:00:00:00:00 :01:01:00","port":4},{"switch":"00:00:00:00:00:01:04:00","port":4},{"switch":"00:00 :00:00:00:01:04:00","port":3},{"switch":"00:00:00:00:00:02:02:00","port":1},{"switc h":"00:00:00:00:00:02:02:00","port":2}]
Tenant 2
#curl http://localhost:20001/wm/topology/route/00:00:00:00:00:02:01:00/3/00:00:00:0 0:00:02:02:00/3/json
[{"switch":"00:00:00:00:00:02:01:00","port":3},{"switch":"00:00:00:00:00:02:01:00 ","port":1},{"switch":"00:00:00:00:00:01:01:00","port":1},{"switch":"00:00:00:00:00 :01:01:00","port":4},{"switch":"00:00:00:00:00:01:04:00","port":4},{"switch":"00:00
:00:00:00:01:04:00","port":3},{"switch":"00:00:00:00:00:02:02:00","port":1},{"switc h":"00:00:00:00:00:02:02:00","port":3}]
Jika di visualisasikan bisa dilihat dalam gambar berikut
SDN Controller
OOB Management
PC T ena nt 1.1
PC T ena nt 1.2
linkc3
linkc1
lin k1
Router P E1
Link7
lin k6
Router P1
Router P4
Rout er PE 2
Gambar IV-6 Topologi Utama Virtualisasi pada FlowVisor untuk Kedua Tenant
Langkah Selanjutnya lakukan pemutusan link antara P1 dan P4, dan l ihat rute baru yang dibuat, bisa dilihat bahwa jalur ja lur baru yang dipilih oleh tenant 1 adalah melalui P2, sedangkan untuk tenant 2 adalah melalui P3, sesuai dengan konfigurasi yang dilakukan.
SDN Controller
OOB Management
Rout er T ena nt 1.1
Router T ena nt 1.2
linkc3
linkc1 lin k2
lin k3 Switch P2
link1
Sw itc h PE1
link6
SwitchP1
Switch P4
Gambar IV-7 Topologi Backup untuk Tenant 1
Sw itc h P E2
SDN Controller
OOB Management
link1
link6 l in k4
Sw itch P E1
lin k5
Switch P1
Switch P4
Sw itc h PE2
linkc4
linkc2
Switch P3
Router Tenant 2.2
Router Tenant 2.1
Gambar IV-8 Topologi Backup untuk Tenant 2
Tabel IV-5 Jalur Backup Te T enant 1 dan Tenant 2
Tenant 1 1
#curl http://localhost:10001/wm/topology/route/00:00:00:00:00:02:01:00/2/00:00:00:0 0:00:02:02:00/2/json [{“switch”:”00:00:00:00:00:02:01:00 [{“switch”:”00:00:00:00:00:02:01:00”,”port”:2},{“switch” ”,”port”:2},{“switch”:”00:00:00:00:00:02 :”00:00:00:00:00:02:01:00 :01:00 ”,”port”:1},{“switch”:”00:00:00:00:00 ”,”port”:1},{“switch”:”00:00:00:00:00:01:01:00”,”port” :01:01:00”,”port”:1},{“switch”:”00:00:0 :1},{“switch”:”00:00:00:00:0 0:00:0 0:01:01:00”,”port”:2},{“switch”:”00:00:00 0:01:01:00”,”port”:2},{“switch”:”00:00:00:00:00:01:02:00”,” :00:00:01:02:00”,”port”:1},{“switch”:”0 port”:1},{“switch”:”00: 0: 00:00:00:00:01:02:00”,”port”:2} :00”,”port”:2},{“switch”:”00:00:00:00:00:01:04:00”,”port”:1},{“s ,{“switch”:”00:00:00:00:00:01:04:00”,”port”:1},{“s witch”:”00:00:00:00:00:01:04:00”,”por witch”:”00:00:00:00:00:01:04:00”,”port”:3},{“switch”:”0 t”:3},{“switch”:”00:00:00:00:00:02:02 0:00:00:00:00:02:02:00”,”p :00”,”p ort”:1},{“switch”:”00:00:00:00:00 ort”:1},{“switch”:”00:00:00:00:00:02:02:00”,”port”:2 :02:02:00”,”port”:2}] }]
Tenant 2
#curl http://localhost:20001/wm/topology/route/00:00:00:00:00:02:01:00/3/00:00:00:0 0:00:02:02:00/3/json [{“switch”:”00:00:00:00:00:02:01:00 [{“switch”:”00:00:00:00:00:02:01:00”,”port”:3},{“switch”:”00:0 ”,”port”:3},{“switch”:”00:00:00:00:00:02:01 0:00:00:00:02:01:00 :00 ”,”port”:1},{“switch”:”00:00:00:00:00 ”,”port”:1},{“switch”:”00:00:00:00:00:01:01:00”,”port” :01:01:00”,”port”:1},{“switch”:”00:00:0 :1},{“switch”:”00:00:00:00:0 0:00:0 0:01:01:00”,”port”:3},{“switch”:”00:00:00 0:01:01:00”,”port”:3},{“switch”:”00:00:00:00:00:01:03:00”,” :00:00:01:03:00”,”port”:1},{“switch”:”0 port”:1},{“switch”:”00: 0: 00:00:00:00:01:03:00”,”port”:2},{“switch”:”00:00:00:00:00:01:04:00”,”port”:1},{“s 00:00:00:00:01:03:00”,”port”:2} ,{“switch”:”00:00:00:00:00:01:04:00”,”port”:1},{“s witch”:”00:00:00:00:00:01:04:00”,”por witch”:”00:00:00:00:00:01:04:00”,”port”:2},{“switch”:”0 t”:2},{“switch”:”00:00:00:00:00:02:02 0:00:00:00:00:02:02:00”,”p :00”,”p ort”:1},{“switch”:”00:00:00:00:00 ort”:1},{“switch”:”00:00:00:00:00:02:02:00”,”port”:3 :02:02:00”,”port”:3}] }]
Selama proses pemutusan link utama, ping terhenti dan baru bisa berjalan lagi, setelah proses ping di restart di sisi host. Hal ini dikarenakan walaupun rute baru sudah di kalkulasi, flow baru tidak langsung l angsung di push ke perangkat ke perangkat switch OpenFlow. Sehingga entry flow baru flow baru tidak akan terbentuk di perangkat switch yang menjadi jalur baru. Entry flow baru flow baru akan diberikan d iberikan begitu idle_timeout suatu flow tercapai di sisi switch dan dihapus. Kemudian setelah ping dilakukan kembali, maka perangkat switch akan mengirimkan flow_messages ke controller untuk meminta flow entry, dan yang diberikan adalah flow entry yang dihasilkan dari hasil
kalkulasi jalur baru. Dari hasil ini bisa disimpulkan bahwa failover tidak berhasil di lakukan untuk percobaan dengan FlowVisor, hal ini dikarenakan FlowVisor secara default tidak bisa menjalankan langsung proses pengaturan link dan langsung menyerahkan fungsi tersebut kepada controller . Sementara modul switching pada controller Floodlight tidak mendukung push flow baru flow baru secara otomatis ketika link utama mati. Bisa dilihat bahwa di perangkat switch perangkat switch P2 terbentuk flow terbentuk flow baru. baru. root@OpenVSwitch-P2:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x20000000000000, duration=383.05s, table=0, n_packets=383, n_bytes=37534, idle_timeout=5, idle_age=0, priority=1,ip,in_port=1,dl_src=00:0c:29:56:21:76,dl_dst=00:0c:29:ed:25:c6,nw_src=10.0.0.1,nw_dst=10.0.0.2 actions=output:2 cookie=0x20000000000000, duration=383.065s, table=0, n_packets=383, n_bytes=37534, idle_timeout=5, idle_age=0, priority=1,ip,in_port=2,dl_src=00:0c:29:ed:25:c6,dl_dst=00:0c:29:56:21:76,nw_src=10.0.0.2,nw_dst=10.0.0.1 actions=output:1
Gambar IV-9 F low Baru di Switch Switch P2
Pengujian selanjutnya adalah memastikan fungsi dari VPN site-to-site bisa site-to-site bisa dijalankan, yaitu dengan cara melakukan ping antar host yang berada di belakang router di masing-masing site masing-masing site milik suatu tenant , pengujian ini dilakukan dengan melakukan konfigurasi host-host yang berada
di belakang router CE milik tenant dengan dengan address space sebagai space sebagai berikut:
Tabel IV-6 Daftar Blok IP Addres Addresss Sit Si te Tena Tenant nt
Tenant
site
Blok ip address
Tenant 1
Site 1
192.168.112.0/24
Tenant 1
Site 2
192.168.113.0/24
Tenant 2
Site 1
192.168.114.0/24
Tenant 2
Site 2
192.168.115.0/24
Proses ping berhasil dilakukan antara host yang berada dalam satu tenant, yang membuktikan bahwa fungsionalitas VPN site-to-site bisa dijalankan dengan baik oleh FlowVisor. Namun karena idle_timeout dengan nilai 0 yang diset pada FlowVisor kita tidak mengamati flow mengamati flow entry baik yang bersifat fisik disisi switch disisi switch maupun yang bersifat logic di sisi controller . Keterangan lebih lengkap bisa dilihat pada lampiran.
IV.3 Pengujian Fungsionalitas dengan OpenVirtex
Selanjutnya untuk bisa jalankan langkah-langkah berikut untuk bisa menjalankan OpenVirtex sesuai dengan kebutuhan konfigurasi yang sudah dijelaskan pada bab sebelumnya. Langkah pertama adalah dengan menjalankan daemon OpenVirtex. Langkah selanjutnya adalah melakukan pembuatan topologi virtual untuk tenant1 dan tenant 2. Pembuatan topologi virtual artinya adalah membuat topologi t opologi dengan komponen switch, komponen switch, link dan port yang bersifat virtual. Masing-masing tenant akan diberikan komponen jaringan virtual yang memiliki identitas berbeda dengan perangkat fisik. HyperVisor OpenVirtex akan menjalankan proses translasi identitas perangkat maupun flow. maupun flow. Sehingga jaringan fisik akan tersembunyikan dari controller milik tenant. Dan tenant seolah-olah mengelola jaringan fisik sendiri dengan bebas. Implementasi yang dilakukan adalah dengan membuat virtual link antar PE sehingga core network milik penyedia layanan akan tidak terlihat disisi tenant. Kedua buah tenant akan memiliki address space virtual yang sama yaitu blok IP address 10.0.0.0/16. Dan address space fisik yang berbeda yaitu blok IP address 1.0.0.0/16 untuk tenant 1 dan 2.0.0.0/16 untuk tenant 2. 2. Id perangkat virtual milik masing-masing tenant bisa tenant bisa sama antar tenant . Berikut adalah langkah-langkah dalam mengimplementasikan jaringan virtual berbasis OpenVirtex: a. buat jaringan virtual masing-masing tenant dan masukan perangkat switch PE1 dan PE2 kedalam jaringan yang baru dibuat. buat virtual port di switch PE1 dan PE2 masing-masing di port pertama dan kedua. b. sambungkan antara kedua virtual port antara kedua switch virtual dan antar switch virtual ke host. Untuk hubungan antar switch, switch, gunakan datapath id virtual switch yang switch yang di buat dari switch dari switch 1 1 dan switch dan switch 2. 2. c. hubungkan port virtual, dan definisikan berapa jumlah backup link yang ingin di kalkulasi berdasarkan algoritma SPF. d. Hubungkan antara switch switch PE ke host, host di sini adalah perangkat router CE milik tenant , host diberi akses ke port virtual dengan id 2 di setiap switchnya, switchnya, identitas yang digunakan adalah datapath id virtual switch dan switch dan mac address host yang yang dihubungkan. e. Jalankan jaringan virtual milik tenant 1 dan tenant 2. Berikut adalah tabel yang berisi konfigurasi lengkap untuk kedua buah tenant.
Tabel IV-7 Konfigurasi Lengkap OpenVirtex untuk Kedua Tenant
Tenant 1
python ovxctl.py -n createNetwork tcp:167.205.64.67:10000 10.0.0.0 16 python ovxctl.py -n createSwitch 1 00:00:00:00:00:02:01:00 python ovxctl.py -n createSwitch 1 00:00:00:00:00:02:02:00 python ovxctl.py -n createPort 1 00:00:00:00:00:02:01:00 1 python ovxctl.py -n createPort 1 00:00:00:00:00:02:01:00 2 python ovxctl.py -n createPort 1 00:00:00:00:00:02:02:00 1 python ovxctl.py -n createPort 1 00:00:00:00:00:02:02:00 2 python ovxctl.py -n connectLink 1 00:a4:23:05:00:00:00:01 1 00:a4:23:05:00:00:00:02 1 spf 1 python ovxctl.py -n connectHost 1 00:a4:23:05:00:00:00:01 2 00:0c:29:19:c5:4e python ovxctl.py -n connectHost 1 00:a4:23:05:00:00:00:02 2 00:0c:29:de:79:31 python ovxctl.py -n startNetwork 1
Tenant 2
python ovxctl.py -n createNetwork tcp:167.205.64.67:20000 10.0.0.0 16 python ovxctl.py -n createSwitch 2 00:00:00:00:00:02:01:00 python ovxctl.py -n createSwitch 2 00:00:00:00:00:02:02:00 python ovxctl.py -n createPort 2 00:00:00:00:00:02:01:00 1 python ovxctl.py -n createPort 2 00:00:00:00:00:02:01:00 3 python ovxctl.py -n createPort 2 00:00:00:00:00:02:02:00 1 python ovxctl.py -n createPort 2 00:00:00:00:00:02:02:00 3 python ovxctl.py -n connectLink 2 00:a4:23:05:00:00:00:01 1 00:a4:23:05:00:00:00:02 1 spf 1 python ovxctl.py -n connectHost 2 00:a4:23:05:00:00:00:01 2 00:0c:29:56:21:76 python ovxctl.py -n connectHost 2 00:a4:23:05:00:00:00:02 2 00:0c:29:ed:25:c6 python ovxctl.py -n startNetwork 2
Berikut adalah tabel flow tabel flow yang terbentuk di masing-masing switch, masing-masing switch, bisa bisa dilihat juga jalur utama yang dipilih oleh tenant 1 adalah melalui P1-P4
Tabel IV-8 F low-entry low-entry di Setiap Switch Switch untuk T enant enant 1
PE1
root@OpenVSwitch-PE1:/home/galih# ovs-ofctl dump-flow vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x100000003, duration=829.884s, table=0, n_packets=852, n_bytes=82546, idle_timeout=5, idle_age=2, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:04 actions=mod_nw_src:10.0.0.2,mod_nw_dst:10.0.0.1,mod_dl_src:00:0c:29:de:79:31,mod_ dl_dst:00:0c:29:19:c5:4e,output:2 cookie=0x100000002, duration=829.892s, table=0, n_packets=853, n_bytes=82644, idle_timeout=5, idle_age=1, priority=0,in_port=2,vlan_tci=0x0000,dl_src=00:0c:29:19:c5:4e,dl_dst=00:0c:29:de:79:31 actions=mod_nw_dst:1.0.0.4,mod_nw_src:1.0.0.3,mod_dl_src:a4:23:05:01:00:00,mod_dl_ dst:a4:23:05:10:00:02,output:1
P1
root@OpenVSwitch-P1:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x100000000, duration=637.284s, table=0, n_packets=656, n_bytes=63528, idle_timeout=5, idle_age=2, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:02 actions=output:4 cookie=0x100000000, duration=637.271s, table=0, n_packets=655, n_bytes=63430, idle_timeout=5, idle_age=0, priority=0,in_port=4,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:04 actions=output:1
P4
root@OpenVSwitch-P4:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x100000000, duration=753.573s, table=0, n_packets=775, n_bytes=75076, idle_timeout=5, idle_age=1, priority=0,in_port=4,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:02 actions=output:3 cookie=0x100000000, duration=753.559s, table=0, n_packets=774, n_bytes=74978, idle_timeout=5, idle_age=1, priority=0,in_port=3,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:04 actions=output:4
PE2
root@OpenVSwitch-PE2:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x100000003, duration=898.31s, table=0, n_packets=924, n_bytes=89488, idle_timeout=5, idle_age=2, priority=0,in_port=2,vlan_tci=0x0000,dl_src=00:0c:29:de:79:31,dl_dst=00:0c:29:19:c5:4e actions=mod_nw_dst:1.0.0.3,mod_nw_src:1.0.0.4,mod_dl_src:a4:23:05:01:00:00,mod_dl_ dst:a4:23:05:10:00:04,output:1 cookie=0x100000002, duration=898.324s, table=0, n_packets=925, n_bytes=89586, idle_timeout=5, idle_age=0, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:02 actions=mod_nw_src:10.0.0.1,mod_nw_dst:10.0.0.2,mod_dl_src:00:0c:29:19:c5:4e,mod_ dl_dst:00:0c:29:de:79:31,output:2
Tabel IV-9 F low-entry 2 low-entry di Setiap Switch Switch untuk Tenant 2
P1
root@OpenVSwitch-P1:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x200000000, duration=169.46s, table=0, n_packets=302, n_bytes=29558, idle_timeout=5, idle_age=2, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:02 actions=output:4 cookie=0x200000000, duration=169.449s, table=0, n_packets=302, n_bytes=29558, idle_timeout=5, idle_age=1,
priority=0,in_port=4,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:04 actions=output:1
P4
root@OpenVSwitch-P4:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x200000000, duration=191.221s, table=0, n_packets=346, n_bytes=33870, idle_timeout=5, idle_age=2, priority=0,in_port=3,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:04 actions=output:4 cookie=0x200000000, duration=191.232s, table=0, n_packets=346, n_bytes=33870, idle_timeout=5, idle_age=0, priority=0,in_port=4,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:02 actions=output:3
PE1
root@OpenVSwitch-PE1:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x200000003, duration=214.969s, table=0, n_packets=393, n_bytes=38476, idle_timeout=5, idle_age=1, priority=0,in_port=3,vlan_tci=0x0000,dl_src=00:0c:29:56:21:76,dl_dst=00:0c:29:ed:25:c6 actions=mod_nw_dst:2.0.0.3,mod_nw_src:2.0.0.2,mod_dl_src:a4:23:05:02:00:00,mod_dl_ dst:a4:23:05:10:00:02,output:1 cookie=0x200000002, duration=214.963s, table=0, n_packets=393, n_bytes=38476, idle_timeout=5, idle_age=0, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:04 actions=mod_nw_src:10.0.0.2,mod_nw_dst:10.0.0.1,mod_dl_src:00:0c:29:ed:25:c6,mod_ dl_dst:00:0c:29:56:21:76,output:3
PE2
root@OpenVSwitch-PE2:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x200000003, duration=239.661s, table=0, n_packets=442, n_bytes=43278, idle_timeout=5, idle_age=3, priority=0,in_port=3,vlan_tci=0x0000,dl_src=00:0c:29:ed:25:c6,dl_dst=00:0c:29:56:21:76 actions=mod_nw_dst:2.0.0.2,mod_nw_src:2.0.0.3,mod_dl_src:a4:23:05:02:00:00,mod_dl_ dst:a4:23:05:10:00:04,output:1 cookie=0x200000002, duration=239.677s, table=0, n_packets=442, n_bytes=43278, idle_timeout=5, idle_age=1, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:02 actions=mod_nw_src:10.0.0.1,mod_nw_dst:10.0.0.2,mod_dl_src:00:0c:29:56:21:76,mod_ dl_dst:00:0c:29:ed:25:c6,output:3
Bisa dilihat pada perangkat switch perangkat switch yang terhubung langsung ke tenant ada modifikasi datalink address maupun network address milik tenant 1 yang berasal dari dan ke arah tenant. Konversi yang terjadi adalah sebagai berikut. Tabel IV-10 Translasi Pengalamatan untuk Tenant 1
Fisik 00:0c:29:19:c5:4e 00:0c:29:de:79:31 10.0.0.1 10.0.0.2
Virtual a4:23:05:10:00:04 a4:23:05:01:00:00 1.0.0.3 1.0.0.4
Tabel IV-11 Translasi Pengalamatan untuk Tenant 2
Fisik 00:0c:29:56:21:76 00:0c:29:ed:25:c6 10.0.0.1 10.0.0.2
Virtual a4:23:05:02:00:00 a4:23:05:10:00:02 2.0.0.1 2.0.0.2
Berikut adalah gambar dari jaringan virtual yang terbentuk, hasil ini bisa dilihat lewat GUI controller beserta flow-entry beserta flow-entry logicnya. logicnya.
Gambar IV-10 Topologi Jaringan Virtual Tenant 1 1
Gambar IV-11 Topologi Jaringan Virtual Tenant 2 2
Gambar IV-12 F low-entry low-entry Jaringan Virtual Tenant 1 pada Switch Switch Virtual 1
Gambar IV.13 F low-entry 1 pada Switc low-entry Jaringan Virtual Te T enant 1 Switch h Virtual 2
Gambar IV-14 F low-entry 2 pada Switch low-entry Jaringan Virtual Tenant 2 Switch Virtual 1
Gambar IV-15 F low-entry 2 pada Switch low-entry Jaringan Virtual Tenant 2 Switch Virtual 2
Bisa kita lihat flow-entry lihat flow-entry dengan dengan menggunakan OpenVirtex bisa dilihat baik di switch maupun GUI controller sedangkan pada FlowVisor hal ini tidak bisa dilakukan karena FlowVisor melakukan override terhadap nilai idle_timeout dari controller yang semula di set bernilai 5 menjadi 0, sehingga tidak ada cache_flow dan setiap kali ada flow harus ada flow_message yang dikirim ke controller dari switch, dari switch, untuk menginstall flow. Nilai flow. Nilai ini tidak
bisa diubah dari sisi konfigurasi dan hal ini sangat mempengaruhi performa sistem secara keseluruhan.
IV.3.1 Implementasi Virtualisasi Fungsi Layanan Jaringan
Implementasi layanan aplikasi firewall bisa dilakukan, percobaan dilakukan dengan cara menyalakan aplikasi firewall aplikasi firewall pada pada tenant 1, yang secara default akan a kan mendrop seluruh koneksi, dan melihat kondisi koneksi antar host dalam tenant 1, lalu membandingkannya membandingkannya dengan tenant 2. Sebelum firewall diaktifkan, koneksi antar host dalam tenant 1 bisa dijalankan, dan ketika firewall di tenant 1 diaktifkan. Koneksi pada tenant 1 mengalami drop sdeangkan pada tenant 2 masih bisa berjalan. Berikut adalah langkah-langkah yang dilakukan: a. Cek modul firewall: modul firewall: curl http://localhost:10001/wm/firewall/module/status/json {"result" : "firewall disabled"} b. Jalankan firewall: curl http://localhost:10001/wm/firewall/module/enable/json {"status" : "success", "details" : "firewall running"}
c. Cek kondisi koneksi pada kedua sisi tenant
Tabel IV-12 Pengujian F i rewa rewall pada Masing-Masing Tenant
Tenant 1 1 Ping berhenti: oot@RouterCETenant11:/home/galih# ping -c 10 10.0.0.2 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. From 10.0.0.1 icmp_seq=9 Destination Host Unreachable From 10.0.0.1 icmp_seq=10 Destination Host Unreachable --- 10.0.0.2 ping statistics --10 packets transmitted, 0 received, +2 errors, 100% packet loss, time 9070ms pipe 2
Tenant 2 2 Ping tetap berjalan: root@RouterCETenant21:/home/galih# ping -c 10 10.0.0.2 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. 64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=40.0 ms 64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=3.42 ms 64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.982 ms 64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=0.946 ms 64 bytes from 10.0.0.2: icmp_seq=5 ttl=64 time=0.990 ms 64 bytes from 10.0.0.2: icmp_seq=6 ttl=64 time=1.09 ms 64 bytes from 10.0.0.2: icmp_seq=7 ttl=64 time=1.04 ms 64 bytes from 10.0.0.2: icmp_seq=8 ttl=64 time=1.08 ms 64 bytes from 10.0.0.2: icmp_seq=9 ttl=64 time=1.04 ms 64 bytes from 10.0.0.2: icmp_seq=10 ttl=64 time=1.06 ms --- 10.0.0.2 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9010ms rtt min/avg/max/mdev = 0.946/5.175/40.085/11.658 ms
IV.3.2 Pengujian Fungsi F ai love loverr pada OpenVirtex
Langkah selanjutnya adalah melakukan pengujian failover pada OpenVirtex. Pengujian ini ditujukan untuk mengetahui apakah fungsi failover bisa dijalankan dengan menggunakan OpenVirtex. Langkah pertama yang dilakukan adalah dengan melihat jalur yang digunakan untuk menyampaikan paket data antar host yang terhubung ke jaringan. Langkah pertama adalah melihat jalur utama milik masing-masing tenant. Terlihat pada tabel berikut, jalur yang ditempuh untuk tenant1 maupun tenant 2 adalah sama, baik untuk jalur utama maupun jalur backup karena jalur backup tersembunyi di sisi HyperVisor OpenVirtex.
Tabel IV-13 Jalur Utama Maupun B ackup Logi c Tenant pada OpenVirtex Tenant pada
Tenant 1 1
Tenant 2 2
#curl http://localhost:10001/wm/topology/route/00:a4:23:05:00:00:00:01/2/ 00:a4:23:05:00:00:00:02/2/json [{"switch":"00:a4:23:05:00:00:00:01","port":2},{"switch":"00:a4:23:05:00:00:00:01" ,"port":1},{"switch":"00:a4:23:05:00:00:00:02","port":1},{"switch":"00:a4:23:05:00: 00:00:02","port":2}] #curl http://localhost:20001/wm/topology/route/00:a4:23:05:00:00:00:01/2/ 00:a4:23:05:00:00:00:02/2/json [{"switch":"00:a4:23:05:00:00:00:01","port":2},{"switch":"00:a4:23:05:00:00:00:01" ,"port":1},{"switch":"00:a4:23:05:00:00:00:02","port":1},{"switch":"00:a4:23:05:00: 00:00:02","port":2}]
Jika di visualisasikan bisa dilihat dalam gambar berikut
SDN Controller
OOB Management
V irt ual sw itc h1
V irt ual sw itc h 2
PC Tenant 2.2
Router Tenant 2.1
Gambar IV-16 Topologi Utama dan Backup Virtualisasi pada OpenVirtex untuk Kedua Tenant
Langkah Selanjutnya lakukan pemutusan link antara P1 dan P4, dan l ihat rute baru yang dibuat, bisa dilihat bahwa jalur baru yang dipilih oleh tenant 1 dan tenant 2.
Tabel IV-14 Jalur B ackup ackup T enant 1 dan Tenant 2 PE1
root@OpenVSwitch-PE1:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x200000002, duration=334.747s, table=0, n_packets=438, n_bytes=42734, idle_timeout=5, idle_age=1, priority=0,in_port=3,vlan_tci=0x0000,dl_src=00:0c:29:56:21:76,dl_dst=00:0c:29:ed:25:c 6 actions=mod_nw_dst:2.0.0.3,mod_nw_src:2.0.0.2,mod_dl_src:a4:23:05:02:00:00,mod_ dl_dst:a4:23:05:10:00:02,output:1 cookie=0x100000002, duration=339.085s, table=0, n_packets=495, n_bytes=48206, idle_timeout=5, idle_age=0, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:0 4 actions=mod_nw_src:10.0.0.2,mod_nw_dst:10.0.0.1,mod_dl_src:00:0c:29:de:79:31,mo d_dl_dst:00:0c:29:19:c5:4e,output:2 cookie=0x100000004, duration=339.06s, table=0, n_packets=495, n_bytes=48206, idle_timeout=5, idle_age=0, priority=0,in_port=2,vlan_tci=0x0000,dl_src=00:0c:29:19:c5:4e,dl_dst=00:0c:29:de:79:3 1 actions=mod_nw_dst:1.0.0.4,mod_nw_src:1.0.0.3,mod_dl_src:a4:23:05:01:00:00,mod_ dl_dst:a4:23:05:10:00:02,output:1 cookie=0x200000004, duration=334.747s, table=0, n_packets=439, n_bytes=42832, idle_timeout=5, idle_age=0, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:0 4 actions=mod_nw_src:10.0.0.2,mod_nw_dst:10.0.0.1,mod_dl_src:00:0c:29:ed:25:c6,mod _dl_dst:00:0c:29:56:21:76,output:3
P1
root@OpenVSwitch-P1:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x200000000, duration=405.696s, table=0, n_packets=510, n_bytes=49714, idle_timeout=5, idle_age=3, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:0 2 actions=output:3 actions=output:3 cookie=0x200000000, duration=405.686s, table=0, n_packets=511, n_bytes=49812, idle_timeout=5, idle_age=1, priority=0,in_port=3,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:0 4 actions=output:1 actions=output:1 cookie=0x100000000, duration=410.009s, table=0, n_packets=636, n_bytes=62024, idle_timeout=5, idle_age=0, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:0 2 actions=output:3 actions=output:3 cookie=0x100000000, duration=410.024s, table=0, n_packets=636, n_bytes=62024, idle_timeout=5, idle_age=0, priority=0,in_port=3,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:0 4 actions=output:1 actions=output:1
P2
root@OpenVSwitch-P2:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4):
P3
root@OpenVSwitch-P3:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x20000000000000, duration=383.05s, table=0, n_packets=383, n_bytes=37534, idle_timeout=5, idle_age=0, priority=0,ip,in_port=1,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:02 actions=output:2 cookie=0x20000000000000, duration=383.02s, table=0, n_packets=383, n_bytes=37534, idle_timeout=5, idle_age=0, priority=0,in_port=2,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:04 actions=output:1 cookie=0x20000000000000, duration=315.05s, table=0, n_packets=302, n_bytes=37332, idle_timeout=5, idle_age=0, priority=0,ip,in_port=1,dl_src=a4:23:05:10:00:02,dl_dst=a4:23:05:02:00:00 actions=output:2 cookie=0x20000000000000, duration=315.05s, table=0, n_packets=302, n_bytes=37332, idle_timeout=5, idle_age=0, priority=0,in_port=2,dl_src=a4:23:05:10:00:04,dl_dst=a4:23:05:01:00:00 actions=output:1
P4
root@OpenVSwitch-P4:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x200000000, duration=384.772s, table=0, n_packets=489, n_bytes=47694, idle_timeout=5, idle_age=2, priority=0,in_port=3,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:0 4 actions=output:2 cookie=0x100000000, duration=389.096s, table=0, n_packets=594, n_bytes=57908, idle_timeout=5, idle_age=0, priority=0,in_port=2,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:0 2 actions=output:3 cookie=0x100000000, duration=389.111s, table=0, n_packets=594, n_bytes=57908, idle_timeout=5, idle_age=0, priority=0,in_port=3,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:0 4 actions=output:2
cookie=0x200000000, duration=384.782s, table=0, n_packets=488, n_bytes=47596, idle_timeout=5, idle_age=1, priority=0,in_port=2,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:0 2 actions=output:3 PE2
root@OpenVSwitch-PE2:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x200000004, duration=349.339s, table=0, n_packets=453, n_bytes=44204, idle_timeout=5, idle_age=3, priority=0,in_port=3,vlan_tci=0x0000,dl_src=00:0c:29:ed:25:c6,dl_dst=00:0c:29:56:21:7 6 actions=mod_nw_dst:2.0.0.2,mod_nw_src:2.0.0.3,mod_dl_src:a4:23:05:02:00:00,mod_ dl_dst:a4:23:05:10:00:04,output:1 cookie=0x200000002, duration=349.352s, table=0, n_packets=452, n_bytes=44106, idle_timeout=5, idle_age=1, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00:0 2 actions=mod_nw_src:10.0.0.1,mod_nw_dst:10.0.0.2,mod_dl_src:00:0c:29:56:21:76,mo d_dl_dst:00:0c:29:ed:25:c6,output:3 cookie=0x100000003, duration=353.671s, table=0, n_packets=524, n_bytes=51048, idle_timeout=5, idle_age=0, priority=0,in_port=2,vlan_tci=0x0000,dl_src=00:0c:29:de:79:31,dl_dst=00:0c:29:19:c5:4 e actions=mod_nw_dst:1.0.0.3,mod_nw_src:1.0.0.4,mod_dl_src:a4:23:05:01:00:00,mod_ dl_dst:a4:23:05:10:00:04,output:1 cookie=0x100000004, duration=353.671s, table=0, n_packets=524, n_bytes=51048, idle_timeout=5, idle_age=0, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00:0 2 actions=mod_nw_src:10.0.0.1,mod_nw_dst:10.0.0.2,mod_dl_src:00:0c:29:19:c5:4e,mod _dl_dst:00:0c:29:de:79:31,output:2
Selama proses pemutusan link utama, ping tidak terhenti sama sekali dan tidak ada packet ada packet loss, loss, flow baru langsung di push ke perangkat ke perangkat switch OpenFlow. Sehingga entry flow baru flow baru akan terbentuk di perangkat switch perangkat switch yang menjadi jalur baru. Dari hasil ini bisa disimpulkan bahwa link failover berhasil failover berhasil dilakukan untuk percobaan dengan dengan OpenVirtex, hal ini dikarenakan fitur link failover milik OpenVirtex.yang membuat kalkulasi link backup ketika membuat virtual link. link. Bisa dilihat bahwa di perangkat switch P3 terbentuk flow baru. Namun tidak semua percobaan berhasil, dari sekian banyak percobaan link failover ada beberapa kali proses gagal dengan output error di sisi log OpenVirtex. Dengan konfigurasi yang sama ternyata sistem mengalai inkonsistensi prilaku.
64 bytes from 10.0.0.2: icmp_seq=882 ttl=64 time=1976 ms 64 bytes from 10.0.0.2: icmp_seq=883 ttl=64 time=967 ms 64 bytes from 10.0.0.2: icmp_seq=884 ttl=64 time=2.17 ms 64 bytes from 10.0.0.2: icmp_seq=885 ttl=64 time=1.02 ms 64 bytes from 10.0.0.2: icmp_seq=886 ttl=64 time=0.890 ms 64 bytes from 10.0.0.2: icmp_seq=887 ttl=64 time=1.17 ms 64 bytes from 10.0.0.2: icmp_seq=888 ttl=64 time=0.895 ms 64 bytes from 10.0.0.2: icmp_seq=889 ttl=64 time=1.07 ms 64 bytes from 10.0.0.2: icmp_seq=890 ttl=64 time=0.969 ms 64 bytes from 10.0.0.2: icmp_seq=891 ttl=64 time=1.05 ms 64 bytes from 10.0.0.2: icmp_seq=892 ttl=64 time=0.869 ms 64 bytes from 10.0.0.2: icmp_seq=893 ttl=64 time=0.840 ms 64 bytes from 10.0.0.2: icmp_seq=894 ttl=64 time=0.874 ms 64 bytes from 10.0.0.2: icmp_seq=895 ttl=64 time=0.809 ms 64 bytes from 10.0.0.2: icmp_seq=896 ttl=64 time=0.677 ms 64 bytes from 10.0.0.2: icmp_seq=897 ttl=64 time=0.890 ms 64 bytes from 10.0.0.2: icmp_seq=898 ttl=64 time=2.30 ms 64 bytes from 10.0.0.2: icmp_seq=899 ttl=64 time=1.56 ms 64 bytes from 10.0.0.2: icmp_seq=900 ttl=64 time=0.978 ms 64 bytes from 10.0.0.2: icmp_seq=901 ttl=64 time=0.949 ms 64 bytes from 10.0.0.2: icmp_seq=902 ttl=64 time=0.899 ms 64 bytes from 10.0.0.2: icmp_seq=903 ttl=64 time=0.864 ms 64 bytes from 10.0.0.2: icmp_seq=904 ttl=64 time=801 ms 64 bytes from 10.0.0.2: icmp_seq=905 ttl=64 time=1042 ms 64 bytes from 10.0.0.2: icmp_seq=906 ttl=64 time=42.1 ms 64 bytes from 10.0.0.2: icmp_seq=907 ttl=64 time=2.71 ms 64 bytes from 10.0.0.2: icmp_seq=908 ttl=64 time=1.51 ms 64 bytes from 10.0.0.2: icmp_seq=909 ttl=64 time=2.12 ms 64 bytes from 10.0.0.2: icmp_seq=910 ttl=64 time=1.56 ms 64 bytes from 10.0.0.2: icmp_seq=911 ttl=64 time=2.68 ms 64 bytes from 10.0.0.2: icmp_seq=912 ttl=64 time=1.03 ms
Gambar IV-17 Proses Ping Sewaktu F ailove ailover
Dari hasil ping diatas tidak terlihat perbedaan yang signifikan dalam hal delay time, time, agak sulit untuk melihat mana proses ping yang terjadi pada saat failover terjadi. Pengujian selanjutnya adalah memastikan fungsi dari VPN site-to-site bisa dijalankan, pengujian ini dilakukan dengan melakukan konfigurasi host-host yang berada di belakang router CE milik tenant dengan address space sebagai space sebagai berikut, address space yang digunakan adalah address space yang sama dengan yang digunakan oleh percobaan dengan Flowvisor, sebagaimana terlihat pada tabel berikut:
Tabel IV-15 Tabel blok IP Addres Addresss Untuk Setiap Sit Si te Milik Tenant
Tenant
site
Blok ip address
Tenant 1
Site 1
192.168.112.0/24
Tenant 1
Site 2
192.168.113.0/24
Tenant 2
Site 1
192.168.114.0/24
Tenant 2
Site 2
192.168.115.0/24
Proses ping berhasil dilakukan antara host yang berada dalam satu tenant, yang membuktikan bahwa fungsionalitas VPN site-to-site bisa dijalankan dengan baik oleh OpenVirtex, ping dilakukan antara host didalam satu tenant, flow tenant, flow entry fisik dan logic bisa logic bisa dilihat pada pad a gambar berikut.
Gambar IV-18 F low-entry 1 low-entry Jaringan Virtual Tenant 1
Gambar IV-19 F low-entry 2 low-entry Jaringan Virtual Tenant 2
Tabel IV-16 F low table Dalam Satu Tenant table untuk Percobaan Koneksi Antar Ho H ost Dalam
PE1
root@OpenVSwitch-PE1:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x200000003, duration=79738.878s, table=0, n_packets=84502, n_bytes=8105636, idle_timeout=5, idle_age=2, hard_age=65534, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00: 02 actions=mod_nw_src:192.168.115.2,mod_nw_dst:192.168.114.2,mod_dl_src:00:0c:29: ed:25:c6,mod_dl_dst:00:0c:29:56:21:76,output:3 cookie=0x200000002, duration=79738.887s, table=0, n_packets=84506, n_bytes=8105990, idle_timeout=5, idle_age=1, hard_age=65534, priority=0,in_port=3,vlan_tci=0x0000,dl_src=00:0c:29:56:21:76,dl_dst=00:0c:29:ed:25: c6 actions=mod_nw_dst:2.0.0.7,mod_nw_src:2.0.0.6,mod_dl_src:a4:23:05:02:00:00,mod _dl_dst:a4:23:05:10:00:04,output:1 cookie=0x100000002, duration=81332.208s, table=0, n_packets=167234, n_bytes=16209116, idle_timeout=5, idle_age=1, hard_age=65534, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00: 04 actions=mod_nw_src:192.168.113.2,mod_nw_dst:192.168.112.2,mod_dl_src:00:0c:29: de:79:31,mod_dl_dst:00:0c:29:19:c5:4e,output:2 cookie=0x100000003, duration=81332.192s, table=0, n_packets=167234, n_bytes=16209116, idle_timeout=5, idle_age=1, hard_age=65534, priority=0,in_port=2,vlan_tci=0x0000,dl_src=00:0c:29:19:c5:4e,dl_dst=00:0c:29:de:79: 31 actions=mod_nw_dst:1.0.0.4,mod_nw_src:1.0.0.5,mod_dl_src:a4:23:05:01:00:00,mod _dl_dst:a4:23:05:10:00:02,output:1
P1
root@OpenVSwitch-P1:/home/galih# ovs-ofctl dump-flows vmbr0
NXST_FLOW reply (xid=0x4): cookie=0x100000000, duration=81411.186s, table=0, n_packets=167396, n_bytes=16224840, idle_timeout=5, idle_age=3, hard_age=65534, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00: 02 actions=output:4 cookie=0x200000000, duration=79817.868s, table=0, n_packets=84665, n_bytes=8121420, idle_timeout=5, idle_age=1, hard_age=65534, priority=0,in_port=4,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00: 02 actions=output:1 cookie=0x200000000, duration=79817.883s, table=0, n_packets=84669, n_bytes=8121774, idle_timeout=5, idle_age=1, hard_age=65534, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00: 04 actions=output:4 cookie=0x100000000, duration=81411.199s, table=0, n_packets=167396, n_bytes=16224840, idle_timeout=5, idle_age=1, hard_age=65534, priority=0,in_port=4,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00: 04 actions=output:1
P2 P3 P4
root@OpenVSwitch-P4:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x100000000, duration=81462.388s, table=0, n_packets=167501, n_bytes=16235016, idle_timeout=5, idle_age=2, hard_age=65534, priority=0,in_port=4,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00: 02 actions=output:3 cookie=0x200000000, duration=79869.069s, table=0, n_packets=84770, n_bytes=8131596, idle_timeout=5, idle_age=1, hard_age=65534, priority=0,in_port=3,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00: 02 actions=output:4 cookie=0x200000000, duration=79869.084s, table=0, n_packets=84774, n_bytes=8131950, idle_timeout=5, idle_age=1, hard_age=65534, priority=0,in_port=4,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00: 04 actions=output:3 cookie=0x100000000, duration=81462.399s, table=0, n_packets=167501, n_bytes=16235016, idle_timeout=5, idle_age=1, hard_age=65534, priority=0,in_port=3,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00: 04 actions=output:4
PE2
root@OpenVSwitch-PE2:/home/galih# ovs-ofctl dump-flows vmbr0 NXST_FLOW reply (xid=0x4): cookie=0x200000003, duration=79779.253s, table=0, n_packets=84585, n_bytes=8113694, idle_timeout=5, idle_age=0, hard_age=65534, priority=0,in_port=3,vlan_tci=0x0000,dl_src=00:0c:29:ed:25:c6,dl_dst=00:0c:29:56:21: 76 actions=mod_nw_dst:2.0.0.6,mod_nw_src:2.0.0.7,mod_dl_src:a4:23:05:02:00:00,mod _dl_dst:a4:23:05:10:00:02,output:1 cookie=0x100000002, duration=81372.584s, table=0, n_packets=167316, n_bytes=16217076, idle_timeout=5, idle_age=1, hard_age=65534, priority=0,in_port=2,vlan_tci=0x0000,dl_src=00:0c:29:de:79:31,dl_dst=00:0c:29:19:c5: 4e actions=mod_nw_dst:1.0.0.5,mod_nw_src:1.0.0.4,mod_dl_src:a4:23:05:01:00:00,mod _dl_dst:a4:23:05:10:00:04,output:1 cookie=0x100000003, duration=81372.577s, table=0, n_packets=167316, n_bytes=16217076, idle_timeout=5, idle_age=1, hard_age=65534,
priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:01:00:00,dl_dst=a4:23:05:10:00: 02 actions=mod_nw_src:192.168.112.2,mod_nw_dst:192.168.113.2,mod_dl_src:00:0c:29: 19:c5:4e,mod_dl_dst:00:0c:29:de:79:31,output:2 cookie=0x200000002, duration=79779.273s, table=0, n_packets=84589, n_bytes=8114048, idle_timeout=5, idle_age=0, hard_age=65534, priority=0,in_port=1,vlan_tci=0x0000,dl_src=a4:23:05:02:00:00,dl_dst=a4:23:05:10:00: 04 actions=mod_nw_src:192.168.114.2,mod_nw_dst:192.168.115.2,mod_dl_src:00:0c:29: 56:21:76,mod_dl_dst:00:0c:29:ed:25:c6,output:3
Bisa kita lihat dari tabel diatas, ip address milik host masing-masing tenant akan digantikan oleh ip address baru yang di berikan oleh OVX. Berikut adalah translasi yang terjadi.
Tabel IV-17 Translasi Pengalamatan untuk Tenant 1
Fisik
Virtual
00:0c:29:19:c5:4e
a4:23:05:10:00:04
00:0c:29:de:79:31
a4:23:05:01:00:00
192.168.112.2
1.0.0.4
192.168.113.2
1.0.0.5
Tabel IV-18 Translasi Pengalamatan untuk Tenant 2
Fisik
Virtual
00:0c:29:56:21:76
a4:23:05:02:00:00
00:0c:29:ed:25:c6
a4:23:05:10:00:02
10.0.0.1
2.0.0.6
10.0.0.2
2.0.0.7
Dari hasil diatas bisa bis a ditarik kesimpulan bahwa seluruh ip address yang address yang ada didalam suatu blok akan ditranslasikan kepada ip address fisik yang pool yang ditentukan oleh milik site milik site suatu tenant akan konfigurasi OpenVirtex, sementara mac address yang akan ditranslasikan adalah mac address dari interface router CE yang terhubung ke jaringan SDN milik operator.
IV.4 Pengujian Kinerja Virtualisasi
Berikut adalah hasil pengukuran kinerja jaringan yang meliputi throughput, delay, jitter. Packet loss. Serta pengukuran penggunaan sumber daya komputasi yang meliputi penggunaan CPU dan Memory. Pengukuran secara umum. dilakukan untuk tiga kondisi yaitu kondisi tanpa adanya HyperVisor, dengan FlowVisor dan OpenVirtex. Masling-masing pengukuran dilakukan dengan menggunakan aplikasi Iperf. Pengukuran dilakukan 100 kali untuk pengujian delay dan jitter, 10 kali untuk pengukuran throughput, packet loss dan penggunaan sumber daya komputasi. masing-masing. Data mentah bisa dilihat pada lampiran.
IV.4.1 Pengukuran Delay Tabel IV-19 Pengukuran Delay pada pada FlowVisor dan OpenVirtex
Hypervisor
Kondisi Tanpa CacheFlow
Flowvisor
Dengan CacheFlow Tanpa CacheFlow
OpenVirtex
Delay 2.417908257 Tidak bisa dicari 26.18408163
Dengan CacheFlow
2.00922
Grafik Perbandingan Delay 30
26.18408163
25 ) 20 s m ( y 15 a l e D 10
5
2.417908257
2.00922
0 0
Tanpa Ca CacheFlow
Dengan Ca CacheFlow
Flowvisor Delay
2 .4 1 7 9 0 8 2 5 7
Tanpa Ca CacheFlow
Dengan Ca CacheFlow
OpenVirtex 0
2 6 .1 8 4 0 8 1 6 3
2 .0 0 9 2 2
Gambar IV-20 Grafik Perbandingan Delay untuk untuk FlowVisor dan OpenVirtex
Dari hasil pengukuran diatas bisa dilihat bahwa secara umum keberadaan cache flow di sisi perangkat switch akan menurunkan waktu untuk melakukan forwarding data, karena ketika
cache flow diaktifkan maka ketika ada flow ada flow data yang masuk ke switch ke switch tidak harus selalu ada proses untuk menanyakan rute kepada controller, akses ke controller hanya dilakukan ketika tidak ada flow entry yang match untuk suatu flow data yang masuk. Bisa kita lihat dengan keberadaan cache flow tidak ada perbedaan yang signifikan antara proses forwarding untuk virtualisasi berbasis OpenVirtex maupun ketika testbed diuji tanpa adanya Hypervisor untuk menjalankan virtualisasi. Untuk pengujian dengan FlowVisor hal ini tidak bisa dilakukan karena secara konfigurasi nilai idle_timeout=0 tidak bisa diubah. Ketika cache flow dimatikan, maka setiap kali ada flow ada flow data yang datang ke perangkat switch perangkat switch maka switch maka switch akan selalu bertanya kepada controller mengenai flow mengenai flow table terkait dengan rute yang harus dilewati oleh flow data tersebut. Bisa kita lihat delay yang meningkat sangat signifikan pada penggunaan virtualisasi menggunakan OpenVirtex. Bila dibandingkan dengan FlowVisor, proses yang dijalankan didalam OpenVirtex lebih kompleks, dengan intensitas proses yang tinggi tinggi untuk keperluan translasi antara controller milik tenant dengan HyperVisor OpenVirtex dan perangkat fisik jaringan, sehingga waktu yang diperlukan cukup tinggi. Sementara pada FlowVisor fungsi utamanya adalah untuk melakukan proses penyampaian flow_message dari perangkat switch perangkat switch ke controller dan sebaliknya, jelas overhead proses overhead proses lebih kecil dan waktu yang diperlukan juga lebih kecil. Jika dibandingkan dengan delay yang terjadi pada testbed terjadi kenaikan delay pada delay pada OpenVirtex dan FlowVisor
Delay pada pad a Testbed Testbed 1.4
1.21971
1.2 1 ) s m 0.8 ( y a 0.6 l e D 0.4 0.2 0 Delay
Testbed 1.21971
Gambar IV-21 Delay pada Testbed
J itte er IV.4.2 Pengukuran Jitt Tabel IV-20 Pengkuruan J itte pada FlowVisor dan OpenVirtex itter pada
HyperVisor
Kondisi
Jitter
Tanpa CacheFlow Flowvisor
8.91146247 Tidak bisa dicari
Dengan CacheFlow
OpenVirtex
Tanpa CacheFlow
19.36699603
Dengan CacheFlow
0.818936582
Grafik Perbandingan Jitter 25 19.36699603
20 ) s 15 m ( r e t t 10 i J
8.91146247
5
1.743338117 0
0
Tanpa Ca CacheFlow
Dengan CacheFlow
Tanpa Ca CacheFlow
Flowvisor Jitter
8 .9 1 1 4 6 2 4 7
Dengan CacheFlow
OpenVirtex 0
1 9 .3 6 6 9 9 6 0 3
1 .7 4 3 3 3 8 1 1 7
Gambar IV-22 Grafik Perbandingan J itte itter
Pada pengukuran jitter pengukuran jitter bisa bisa kita lihat dengan menggunakan OpenVirtex OpenVirtex nilai jitter nilai jitter juga juga lebih besar jika dibandingkan dengan FlowVisor FlowVisor dalam kondisi cache flow di non aktifkan , jika dilihat data mentah dari keduanya bisa dilihat bahwa variasi nil ai round trip time delay juga delay juga cukup besar, hal ini berbeda ketika cache flow diaktifkan. Dari hal ini bisa disimpulkan bahwa ada variasi waktu proses yang besar yang dijalankan pada Hypervisor, pada Hypervisor, terutama pada OpenVirtex, OpenVirtex, hal ini sebenarnya bukan hal yang baik karena untuk jenis transaksi proses yang sama waktu prosesnya bisa sangat berbeda. Untuk sistem yang stabil waktu proses transaksi yang sama dengan kondisi jaringan yang sama akan dikerjakan dengan waktu yang variasinya tidak terlalu besar. Jika dibandingkan dengan delay yang terjadi pada testbed terjadi kenaikan jitter pada jitter pada OpenVirtex dan FlowVisor.
Grafik Jitter pada testbed 0.9
0.818936582
0.8 0.7 ) s m ( r e t t i J
0.6 0.5 0.4 0.3 0.2 0.1 0
Jitter
Testbed
0.818936582
Gambar IV-23 J itte itter pada Testbed
IV.4.3 Pengukuran Throughput pada OpenVirtex dan FlowVisor
Pengukuran througput dilakukan dengan bantuan tools iperf. Pengukuran Througput yang dilakukan bisa dilihat bahwa sistem bekerja secara benar dengan kondisi trhougput TCP lebih kecil dibandingkan dengan UDP, hal ini dikarenakan overhead pada overhead pada protokol TCP lebih besar dibandingkan dengan UDP. Pengukuran troughput dilakukan dengan kondisi cache flow dijalankan untuk OpenVirtex, namun tidak dijalankan pada penggunaan FlowVisor. Terjadi penurunan nilai throughput TCP pada OpenVirtex jika dibandingkan dengan FlowVisor dan testbed tanpa virtualisasi. Walaupun dengan penggunaan FlowVisor cache flow dimatikan namun ternyata penurunan throughput paling throughput paling besar tetap terjadi pada penggunaan OpenVirtex. Secara keseluruhan jika dibandingkan dengan throughput testbed tanpa virtualisasi terjadi penurunan throughput.
Tabel IV-21 Pengkuruan Throughput pada pada FlowVisor dan OpenVirtex
HyperVisor Flowvisor OpenVirtex
Protokol
Throughput
TCP
922.4
UDP
993.7
TCP
912.4
UDP
993.2
Throughput 1000 980 960 940 920
Throughput
900 880 860 T CP
UDP
TC P
Flowvisor
UDP
OpenVirtex
Gambar IV-24 Grafik Throughput pada FlowVisor dan OpenVirtex
IV.4.4 Pengukuran Througput untuk untuk Testbed Tanpa Virtualisasi Tabel IV-22 Pengkuruan Throughput TCP dan UDP pada testbed tanpa virtualisasi
Hypervisor
Protokol
Throughput
Flowvisor
TCP
922.4
OpenVirtex
TCP
912.4
Flowvisor
UDP
993.7
OpenVirtex
UDP
993.2
Throughput 1000 980 960 940 Throughput
920 900 TC P
UDP Testbed
Gambar IV-25 Grafik Throughput TCP dan UDP untuk Testbed
Memory H yper visor isor dalam Kondisi I dle dan Melakukan IV.4.5 Pengukuran CPU dan Mem Pemrosesan F low Data low Data
Pengujian dilakukan dengan melewatkan data antara dua ujung tenant, kondisi yang dibuat adalah dengan kondisi cache flow dimatikan untuk FlowVisor dan cache flow dinyalakan untuk OpenVirtex. Pada kondisi idle proses idle proses OpenVirtex OpenVirtex sudah menghabiskan CPU dan memory memory yang berukuran lebih besar dibandingkan dengan FlowVisor, hal ini karena program OpenVirtex lebih kompleks dibandingkan dengan FlowVisor. Pada saat memproses flow memproses flow data data bisa kita lihat penggunaan CPU untuk OpenVirtex lebih meningkat lebih besar jika dibandingkan dengan FLowVisor, walaupun perbandingan yang dilakukan dengan kondisi berlawanan dimana cache flow dimatikan pada FlowVisor dan dinyalakan pada OpenVirtex bisa dilihat bahwa penggunaan sumberdaya komputer komputer untuk OpenVirtex masih lebih besar dibandingkan dengan FlowVisor.
Tabel IV-23 Penggunaan sumberdaya H ype Saat FlowVisor dan OpenVirtex I dle yper visor Saat
Grafik Hypervisor saat OpenVirtex dan FlowVisor Idle Aplikasi
kuantitas
CPU
Memory
Openvirtex
Avarage
0.7
20
Flowvisor
Avarage
0.3
6.9
Gambar IV-26 Grafik H ype saat FlowVisor dan OpenVirtex I dle yper visor saat
Tabel IV-24 Penggunaan Sumberdaya Hypervisor saat OpenVirtex dan FlowVisor Memproses F low low Data
Grafik Hypervisor saat OpenVirtex dan Flowvisor Menerima Paket Aplikasi
CPU
Memory
Openvirtex
Avarage
1.33
20
Flowvisor
Avarage
1.27
6.93
Gambar IV-27 Grafik H ype Data yper visor pada saat FlowVisor dan OpenVirtex Memproses F low low Data
Memory pada Controller Dalam Kondisi I dle dan IV.4.6 Pengukuran CPU dan Mem Melakukan Pemrosesan F low Data low Data
Pada saat idle penggunaan idle penggunaan sumber daya daya memori untuk OpenVirtex OpenVirtex dan FlowVisor tidak terlalu signifikan, namun ada sedikit perbedaan dalam hal penggunaan CPU. OpenVirtex tampak melakukan proses komunikasi lebih intensif dalam kondisi idle jika dibandingkan dengan FlowVisor. Pada kondisi memforward paket, controller untuk FlowVisor lebih menghabiskan sumber daya jika dibandingkan dengan OpenVirtex, hal ini dikarenakan karena proses pemilihan rute seluruhnya dilakukan sepenuhnya sepenuhnya oleh controller, sedangkan pada OpenVirtex, proses forwarding proses forwarding pada pada link virtual dilakukan pada OpenVirtex.
Tabel IV-25 Pengukuran Sumberdaya Controller pada saat OpenVirtex dan FlowVisor I dle
Grafik saat OpenVirtex dan Flowvisor Idle Aplikasi
CPU
Memory
Openvirtex
Avarage
1.62
30.8
Flowvisor
Avarage
1.024
29.1
Gambar IV-28 Grafik Controller pada saat FlowVisor dan OpenVirtex O penVirtex I dle
Tabel IV-26 Pengukuran Sumberdaya Controller pada saat OpenVirtex dan FlowVisor F lowVisor Memproses Paket
Grafik saat OpenVirtex dan Flowvisor F lowvisor Saat Memproses Paket Aplikasi
CPU
Memory
Openvirtex
Avarage
2.2
30.8
Flowvisor
Avarage
1.92
56.1
Gambar IV-29 Grafik Controller pada saat FlowVisor dan OpenVirtex Memproses Paket
IV.5 B ug dan Error pada pada Masing-Masing H ype yper visor visor
Dalam implementasi jaringan virtual SDN dengan menggunakan FlowVisor, terdapat dua buah error yaitu penggunaan sumber daya komputasi oleh proses Java, yang menyebabkan memory penuh dan tidak bisa didealokasi secara otomatis. Hal ini disebabkan karena gagalnya Java garbage collector untuk membuang objek yang sudah tidak dipakai, hal ini menyebabkan proses penyampaian data ke tujuan tidak bisa dilakukan secara lancar, berikut adalah gambar yang menunjukan penggunaan memory dan CPU yang cukup besar, hal tersebut terjadi berkalikali.
Error lain lain yang terjadi dalam percobaan ini adalah FlowVisor mengalami inkonsistensi dalam prilaku forwarding data, untuk konfigurasi yang sama, terkadang FlowVisor tidak bisa melakukan fungsinya sebagai mana mestinya. Dalam implementasi jaringan virtual SDN dengan menggunakan OpenVirtex terdapat dua jenis error yang terjadi, yaitu inkonsistensi prilaku forwarding data. Untuk konfigurasi yang sama, terkadang OpenVirtex tidak bisa melakukan fungsinya sebagai mana mestinya, error log yang menyatakan bahwa virtual source port unknown hal ini cukup sering terjadi dalam percobaan yang dilakukan.
04:03:20.996 [pool-5-thread-21] ERROR OVXPacketIn - Virtual Src Port Unknown: 00:00:00:00:00:01:04:00:66560, port 4 with this match OFMatch[in_port=4,dl_dst=a4:23:05:10:00:02,dl_src=a4:23:05:01:00:00,dl_type=0x806,dl_vlan=0xffff,dl_vl an_pcp=0,nw_dst=10.0.0.2,nw_src=10.0.0.1,nw_proto=2,nw_tos=0]; dropping packet 04:03:21.355 [pool-5-thread-3] ERROR OVXPacketIn - Virtual Src Port Unknown: 00:00:00:00:00:01:04:00:66560, port 4 with this match OFMatch[in_port=4,dl_dst=a4:23:05:10:00:02,dl_src=a4:23:05:01:00:00,dl_type=0x800,dl_vlan=0xffff,dl_vl an_pcp=0,nw_dst=1.0.0.5,nw_src=1.0.0.7,nw_proto=1,nw_tos=0,tp_dst=0,tp_src=8]; dropping packet 04:03:21.998 [pool-5-thread-14] ERROR OVXPacketIn - Virtual Src Port Unknown: 00:00:00:00:00:01:04:00:66560, port 4 with this match OFMatch[in_port=4,dl_dst=a4:23:05:10:00:02,dl_src=a4:23:05:01:00:00,dl_type=0x806,dl_vlan=0xffff,dl_vl an_pcp=0,nw_dst=10.0.0.2,nw_src=10.0.0.1,nw_proto=2,nw_tos=0]; dropping packet Gambar IV-31 Error pada Operasional FlowVisor
Error lain yang terjadi adalah pada saat percobaan failover, dari lima kali percobaan yang dilakukan, terjadi empat kali error yang menyebabkan failover tidak bisa dilakukan dengan baik, error yang terjadi menyebabkan rute baru tidak bisa di push di push ke perangkat switch perangkat switch sehingga tidak bisa terjadi failover . Dari log yang terlihat, informasi error yang yang sama seperti gambar IV-31 juga terjadi pada kasus failover. Setelah failover. Setelah mencari informasi lebih jauh di situs resmi maupun mailing-list FlowVisor, memang ada beberapa laporan bug dan dan error yang sama seperti yang penulis alami. Masalah Masala h lain terkait dengan penggunaan OpenVirtex adalah subnet adalah subnet mask untuk IP address tenant tidak boleh menggunakan selain 10.0.0.0/16, 20.0.0.0/16 dan seterusnya, ketika blok IP address lain yang digunakan, maka akan terjadi error karena kegagalan mapping IP address ke blok IP address OVX(1.0.0.0/16, 2.0.0.0/16 2.0.0.0/16 dan seterusnya). set erusnya).
18:17:00.692 [pool-5-thread-19] ERROR OVXPacketIn - Virtual Src Port Unknown: 00:00:00:00:00:00:00:05:5, port 1 with this match OFMatch[in_port=1,dl_dst=ff:ff:ff:ff:ff:ff,dl_src=42:3a:ae:41:fe:ae,dl_type=0x800,dl_vlan=0xffff,dl_vlan_pcp =0,nw_dst=255.255.255.255,nw_src=0.0.0.0,nw_proto=17,nw_tos=4,tp_dst=67,tp_src=68]; dropping packet 18:17:00.820 [pool-5-thread-11] WARN OVXPacketIn - PacketIn packetIn:bufferId=632ofmsg:v=1;t=PACKET_IN;l=88;x=0 does not belong to any virtual network; dropping and installing a temporary drop rule
18:17:01.111 [pool-5-thread-4] ERROR OVXPacketIn - Virtual Src Port Unknown: 00:00:00:00:00:00:00:02:2, port 1 with this match OFMatch[in_port=1,dl_dst=ff:ff:ff:ff:ff:ff,dl_src=46:70:14:b3:1f:13,dl_type=0x800,dl_vlan=0xffff,dl_vlan_pcp =0,nw_dst=255.255.255.255,nw_src=0.0.0.0,nw_proto=17,nw_tos=4,tp_dst=67,tp_src=68]; dropping packet 18:17:02.392 [pool-5-thread-29] ERROR OVXPacketIn - Virtual Src Port Unknown: 00:00:00:00:00:00:00:02:2, port 2 with this match OFMatch[in_port=2,dl_dst=ff:ff:ff:ff:ff:ff,dl_src=d6:80:11:43:f4:a7,dl_type=0x800,dl_vlan=0xffff,dl_vlan_pcp =0,nw_dst=255.255.255.255,nw_src=0.0.0.0,nw_proto=17,nw_tos=4,tp_dst=67,tp_src=68]; dropping packet Gambar IV-32 Error pada Penggunaan Sembarang Blok IP
Dari percobaan yang dilakukan bisa disimpulkan bahwa FlowVisor sebagai apl ikasi virtualisasi berbasis SDN yang sudah lebih dahulu ada, ternyata masih memiliki bug yang cukup mengganggu kerja sistem. OpenVirtex sebagai aplikasi yang diproyeksikan akan menggantikan FlowVisor sebagai aplikasi virtualisasi berbasis SDN memiliki fitur yang lebih mendukung untuk perkembangan teknologi virtualisasi berbasis SDN namun masih memiliki cukup banyak error .
Bab V KESIMPULAN dan SARAN
V.1 Kesimpulan
Adapun kesimpulan yang dapat ditarik pada penelitian mengenai implementasi virtualisasi berbasis FlowVisor dan OpenVirtex yaitu. 1. Pengujian fungsi utama dari virtualisasi berbasis SDN yaitu: Pemisahan traffic antar tenant dan pengaturan jaringan virtual oleh controller milik tenant serta menjalankan konektivitas antar host yang berbeda site dalam satu tenant bisa dilakukan oleh FlowVisor maupun OpenVirtex, sesuai dengan spesifikasi fitur yang tertera pada dokumentasi kedua aplikasi. 2. Pengaturan Address space space dan topologi bisa lebih leluasa dilakukan pada OpenVirtex yang memiliki skema virtualisasi penuh, sesuai dengan spesifikasi fitur yang tertera pada dokumentasi aplikasi OpenVirtex. Selain itu virtualisasi penuh menghindarkan tenant untuk memiliki kontrol langsung ke perangkat jaringan milik penyedia layanan, yang artinya memenuhi constrain kemanan. 3. Failover bisa berjalan pada OpenVirtex dibandingkan dengan FlowVisor, dimana tidak ada traffic yang terputus pada saat link utama putus pada percobaan dengan OpenVirtex, dan hal ini berbeda dengan pada saat menggunakan FlowVisor. Hal ini sesuai dengan spesifikasi fitur yang tertara pada dokumentasi kedua aplikasi. 4. Pada implementasi virtualisasi dengan menggunakan OpenVirtex, topologi jaringan SDN virtual bisa diatur dengan lebih leluasa jika dibandingkan dengan virtualisasi berbasis FlowVisor. 5. Implementasi layanan jaringan virtual pada operator ja ringan lebih mudah dibuat dengan teknologi virtualisasi berbasis SDN, karena penyedia layanan cukup menyediakan topologi switching dengan konfigurasi yang lebih minim dibandingkan dengan implementasi virtualisasi pada jaringan tradisional. 6. OpenVirtex menjanjikan solusi virtualisasi berbasis SDN yang lebih baik untuk masa depan dibandingkan dengan FlowVisor, namun sampai saat, s olusi ini belum layak la yak untuk diimplementasikan pada jaringan real mengingat masih banyak bug dan error yang terjadi serta stabilitas dari sistem yang berjalan, seperti yang terlihat pada bagian analisis dan hasil percobaan.
7. Dari pengujian penggunaan sumber daya komputasi baik pada server controller maupun server hypervisor didapatkan hasil sebagai berikut: a. Implementasi virtualisasi dengan dengan menggunakan menggunakan OpenVirtex dibandingan dengan FlowVisor menghasilkan rasio delay 1086 delay 1086 %, jumlah ini mengindikasikan bahwa overhead akibat proses dan protokol protokol OpenFlow pada OpenVirtex jauh lebih besar dibandingkan dengan FlowVisor. b. Pada kondisi idle server HyperVisor OpenVirtex lebih banyak memakan sumber daya, dengan penggunaan CPU: 0.7 % berbanding berbanding 0.3 % dan penggunaan penggunaan memory 20 % berbanding 6.9 % c. Penggunaan CPU pada server hypervisor naik 0.63 % untuk penggunaan OpenVirtex sedangkan pada FlowVisor naik 0.97 % d. Penggunaan memory pada server hypervisor, tidak mengalami perubahan pada penggunaan OpenVirtex sedangkan sedangkan pada FlowVisor mengalami kenaikan 0.03 %. %. e.
Penggunaan CPU pada controller naik 0.58 % untuk OpenVirtex dan 0.68 % untuk FlowVisor.
f. Penggunaan memory pada
controller, tidak mengalami perubahan pada
penggunaan OpenVirtex sedangkan pada FlowVisor naik dengan signifikan si gnifikan 27%, hal ini dikarenakan FlowVisor berinteraksi lebih intensif dengan controller dan mengandalkan controller untuk mengatur seluruh rute.
V.2 Saran
Adapun saran yang dapat diberikan untuk pengembangan penelitian ini kedepannya antara lain 1. Percobaan bisa dilakukan pada level hardware yang lebih tinggi tinggi agar bisa mengukur kinerja secara lebih presisi. 2. Perangkat keras dan jumlah titik pengujian harus ditambah disesuaikan dengan tingkat kebutuhan untuk pengukuran yang lebih real seperti di sistem produksi. 3. Riset bisa dilanjutkan untuk menguji fungsionalitas lain yang belum teruji dari kedua buah solusi virtualisasi FlowVisor dan OpenVirtex. 4. Perlu lebih banyak kontribusi pengembangan kedua aplikasi ini untuk bisa masuk ke level implementasi pada jaringan real .
DAFTAR PUSTAKA
[1] Sakir Sezer et al., "Are We Ready for SDN? Implementation Challenges for Software Defined Networks," IEEE Networks," IEEE Communications Magazine Magazine,, vol. 51, no. 7, pp. 36-43, July 2013.
[2] ONF.SDN Architecture Overview. White Paper. [Online]. https://www.opennetworking.org/images/stories/downloads/sdnresources/technicalreports/SDN-architecture-overview-1.0.pdf. [3] Thomas D. Nadeau, Nadeau, Ken Gray, “SDN: Software Defined Networks”, O’Reilly Media, 2013
[4] “OpenFlow
Architecture
Overview”.[Online].
https://www.opennetworking.or https://www.opennetworking.or g/images/stories/downloads/sdn/images/stories/downloads/sdn-resources/technicalresources/technicalreports/SDN-architecture-overview-1.0.pdf.
[5]“OpenFlow Controller Model”.[Online]. http://www.virtualnetwork.com/blog/2013/08/centralized-vs-distributed-vs-hybrid-sdnwhich-is-the-best-approach-for-todays-networks/.
[6] Pories Ediansyah, "Desain dan Implementasi Testbed Openflow ITB", Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung, Oktober 2014, Bandung, Indonesia.
[7]”OpenFlow Documentation”.[Online]. http://openflow.stanford.edu.
[8] Ali Al-Shabibi, Al-Shabibi, Mark de Leenheer, Ayaka Koshibe, Matteo Gerola, “OpenVirtex: Make your virtual SDN programmable”,HotSDN 2014, Chicago USA, August 2014.
[9] Rob Sherwood, Glen Gibb, Kok Kiong Yap, “FlowVisor A Network Virt ualization Layer”, Deutsche Telecom Inc, Inc, Stanford University, October 2009, USA.
[10]Rosen, Eric, Arun Viswanathan, and Ross Callon.” Multiprotocol Label Switching Architecture”.[Online]. http://www.hjp.at/doc/rfc/rfc3031.
[11]”Open Virtex Documentation”.[Online]. http://ovx.onlab.us/documentation/. http://ovx.onlab.us/docum entation/.
[12]Randy Zhang, Micah Bartel, “BGP Design and Implementation”, Cisco Press 2004.
[13]Andreas Blenk, Arsany Basta, Martin Reisslein, “Survey on Network Virtualization Hypervisors for Software Defined Networking”, IEEE Networking”, IEEE Communications Magazine Magazine,, vol. 51, no. 7, pp. 36-43, October 2015
[15]R.Doriguzzi-Corin, [15]R.Doriguzzi-Corin, E.Salvadori, M. Sune, “A Datapath -centric Virtualization for OpenFlow Network”, Third European Workshop on Software -Defined Networks, 2014.
[16] "Big Switch Network Community: Project Flood light", http://www.projectfloodlight.org/floodlight. [Online]. http://www.projectfloodlight.org/floodlight. [Online].
[17]Sdncentral., (2014). “What’s Software Defined Networking (SDN)”.[Online]. www.sdncentral.com/what-the-definitions-of-software-defined-networking-sdn.
[18]”FlowVisor Documentation”. [Online]. https://github.com/OPENNETWORKINGLAB/flowvisor/wiki.
[19]Nick McKeown, Tom Anderson, Hari Balakrishnan, “ OpenFlow: Enabling Innovation in Campus Networks”, Networks”, ACM SIGCOMM Computer Communication Review, Volume 38 Issue 2, 69-74, 2008
Lampiran A Pembuatan Virtualisasi Menggunakan Menggunakan FlowVisor dan OpenVirtex
CLI untuk implementasi Virtualisasi dengan FlowVisor
1.
Jalankan flowvisor daemon: a. Inisiasi konfigurasi flowvisor dalam bentuk json fvconfig generate /etc/flowvisor/config.json Masukan password untuk fvadmin: Berikut adalah konfigurasi dasar dari flowvisor { "flowvisor": [ { "api_webserver_port": 8080, "db_version": 2, "host": "localhost", "log_ident": "flowvisor", "checkpointing": false, "listen_port": 6633, "logging": "DEBUG", "run_topology_server": false, "log_facility": "LOG_LOCAL7", "version": "flowvisor-1.4.0", "config_name": "default", "api_jetty_webserver_port": 8081, "default_flood_perm": "fvadmin", "track_flows": false, "stats_desc_hack": false } ] } 2. Arahkan controller masing-masing switch ke ip address Hypervisor Flowvisor yaitu 167.205.64.68 port 6633 ovs-vsctl set-controller vmbr0 tcp:167.205.64.68:6633 c. Jalankan # fvconfig load /etc/flowvisor/config.json #/etc/init.d/flowvisor start root@Hypervisor:/home/galih# ps ax | grep flow 2725 pts/0 S 0:00 sudo -u flowvisor /usr/sbin/flowvisor 2726 pts/0 Sl 0:02 java -server -Xms100M -Xmx2000M -XX:OnError=flowvisor-crash-logger XX:+UseConcMarkSweepGC XX:+UseConcMarkSweep GC -Dorg.flowvisor.config_dir=/etc/flowvisor Dorg.flowvisor.install_dir=/usr/libexec/flowvisor -Dderby.system.home=/usr/share/db/flowvisor Dfvlog.configuration=/etc/flowvisor/fvlog.config -Dorg.flowvisor.config_dir=/etc/flowvisor Dorg.flowvisor.install_dir=/usr/libexec/flowvisor -Dderby.system.home=/usr/share/db/flowvisor Dfvlog.configuration=/etc/flowvisor/fvlog.config - Djavax.net.ssl.keyStore=/etc/flowvisor/mySSLKeyS Djavax.net.ssl.keyStore=/etc/flowvisor/mySSLKeyStore tore -Djavax.net.ssl.keyStorePassword=CHANGEME_PASSW -Djavax.net.ssl.keyStorePassword=CHA NGEME_PASSWD D -cp /usr/libexec/flowvisor/openflow.jar:/usr/libexec/flowvisor/xmlrpc-client3.1.3.jar:/usr/libexec/flowvisor/xmlrpc-common-3.1.3.jar:/usr/libexec/flowvisor/xmlrpc-server3.1.3.jar:/usr/libexec/flowvisor/commons-logging-1.1.jar:/usr/libexec/flowvisor/ws-commons-util1.0.2.jar:/usr/libexec/flowvisor/jsse.jar:/usr/libexec/flowvisor/asm-3.0.jar:/usr/libexec/flowvisor/cglib2.2.jar:/usr/libexec/flowvisor/commons-codec-1.4.jar:/usr/libexec/flowvisor/commons-collections3.2.1.jar:/usr/libexec/flowvisor/commons-dbcp-1.4.jar:/usr/libexec/flowvisor/commons-pool1.5.6.jar:/usr/libexec/flowvisor/gson-2.0.jar:/usr/libexec/flowvisor/jetty-continuation7.0.2.v20100331.jar:/usr/libexec/flowvisor/jetty-http-7.0.2.v20100331.jar:/usr/libexec/flowvisor/jetty-
I
io-7.0.2.v20100331.jar:/usr/libexec/flowvisor/jetty-security7.0.2.v20100331.jar:/usr/libexec/flowvisor/jetty-server-7.0.2.v20100331.jar:/usr/libexec/flowvisor/jettyutil-7.0.2.v20100331.jar:/usr/libexec/flowvisor/servlet-api2.5.jar:/usr/libexec/flowvisor/derby.jar:/usr/libexec/flowvisor/derbytools.jar:/usr/libexec/flowvisor/jna.j ar:/usr/libexec/flowvisor/syslog4j-0.9.46-bin.jar:/usr/libexec/flowvisor/log4j1.2.16.jar:/usr/libexec/flowvisor/jsonrpc2-base-1.30.jar:/usr/libexec/flowvisor/jsonrpc2-server1.8.jar:/usr/libexec/flowvisor/flowvisor.jar org.flowvisor.FlowVisor 2.
Lihat konfigurasi awal root@Hypervisor:/home/galih# fvctl get-config Password: { "api_jetty_webserver_port": 8081, "api_webserver_port": 8080, "checkpointing": false, "config_name": "default", "db_version": "2", "enable-topo-ctrl": true, "flood-perm": { "dpid": "all", "slice-name": "fvadmin" }, "flow-stats-cache": 30, "flowmod-limit": { "fvadmin": { "00:00:00:00:00:01:01:00": "00:00:00:00:00:01:01:00": - 1, "00:00:00:00:00:01:02:00": "00:00:00:00:00:01:02:00": - 1, "00:00:00:00:00:01:03:00": "00:00:00:00:00:01:03:00": - 1, "00:00:00:00:00:01:04:00": "00:00:00:00:00:01:04:00": - 1, "00:00:00:00:00:02:01:00": "00:00:00:00:00:02:01:00": - 1, "00:00:00:00:00:02:02:00": "00:00:00:00:00:02:02:00": - 1, "any": null } }, "host": "localhost", "log_facility": "LOG_LOCAL7", "log_ident": "flowvisor", "logging": "NOTE", "stats-desc": false, "track-flows": false, "version": "flowvisor-1.4.0" }
3.
Lihat konfigurasi secara default a. slice secara default, hanya ada admin slice root@Hypervisor:/home/galih# fvctl list-slices Password: Configured slices: fvadmin --> enabled 2. Tidak ada flowspace secara default root@Hypervisor:/home/galih# fvctl list-flowspace Password: Configured Flow entries: None c. Pastikan semua switch telah terkoneksi root@Hypervisor:/home/galih# fvctl list-datapaths
II
Password: Connected switches: 1 : 00:00:00:00:00:01:01:00 00:00:00:00:00:01:01:00 2 : 00:00:00:00:00:01:02:00 00:00:00:00:00:01:02:00 3 : 00:00:00:00:00:01:03:00 00:00:00:00:00:01:03:00 4 : 00:00:00:00:00:01:04:00 00:00:00:00:00:01:04:00 5 : 00:00:00:00:00:02:01:00 00:00:00:00:00:02:01:00 6 : 00:00:00:00:00:02:02:00 00:00:00:00:00:02:02:00 d. Pastikan semua link up root@Hypervisor:/home/galih# sudo -u flowvisor fvctl list-links sudo: unable to resolve host Hypervisor Password: [ { "dstDPID": "00:00:00:00:00:01:02:00", "00:00:00:00:00:01:02:00", "dstPort": "1", "srcDPID": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "srcPort": "2" }, { "dstDPID": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "dstPort": "1", "srcDPID": "00:00:00:00:00:01:02:00", "00:00:00:00:00:01:02:00", "srcPort": "2" }, { "dstDPID": "00:00:00:00:00:01:02:00", "00:00:00:00:00:01:02:00", "dstPort": "2", "srcDPID": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "srcPort": "1" }, { "dstDPID": "00:00:00:00:00:02:02:00", "00:00:00:00:00:02:02:00", "dstPort": "1", "srcDPID": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "srcPort": "3" }, { "dstDPID": "00:00:00:00:00:01:03:00", "00:00:00:00:00:01:03:00", "dstPort": "1", "srcDPID": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "srcPort": "3" }, { "dstDPID": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "dstPort": "2", "srcDPID": "00:00:00:00:00:01:02:00", "00:00:00:00:00:01:02:00", "srcPort": "1" }, { "dstDPID": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "dstPort": "3", "srcDPID": "00:00:00:00:00:02:02:00", "00:00:00:00:00:02:02:00", "srcPort": "1" }, { "dstDPID": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00",
III
"dstPort": "3", "srcDPID": "00:00:00:00:00:01:03:00", "00:00:00:00:00:01:03:00", "srcPort": "1" }, { "dstDPID": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "dstPort": "1", "srcDPID": "00:00:00:00:00:02:01:00", "00:00:00:00:00:02:01:00", "srcPort": "1" }, { "dstDPID": "00:00:00:00:00:02:01:00", "00:00:00:00:00:02:01:00", "dstPort": "1", "srcDPID": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "srcPort": "1" } ] 4.
Slicing Topologi untuk Tenant 1: PE1, P1, P2, P4, PE2 dan Tenant2: Pe1, P1, P3, P4, PE2, buktikan disini bahwa slice harus sama dengan graph network fisik. a. Slicing network tenant1 sudo -u flowvisor f vctl add-slice tenant1 tcp:167.205.64.67:100 tcp:167.205.64.67:10000 00
[email protected] Atau #fvctl createSlice tenant1 t cp:167.205.64.67:10000 cp:167.205.64.67:10000
[email protected] 2. Slicing network tenant 2 sudo -u flowvisor f vctl add-slice tenant2 tcp:167.205.64.67:20000 tcp:167.205.64.67:20000
[email protected] #fvctl createSlice tenant2 tcp:167.205.64.67:200 tcp:167.205.64.67:20000 00
[email protected] List tenant root@Hypervisor:/home/galih# sudo -u flowvisor fvctl list-slices sudo: unable to resolve host Hypervisor Password: Configured slices: fvadmin --> enabled tenant1 --> enabled tenant2 --> enabled
5.
Pembuatan flowspace, yaitu sebuah aturan yang akan menyalurkan suatu jenis flow dengan kategori tertentu(ip address/network address, protocol layer4, untuk dimasukan kedalam suatu kategori slice terntentu. Dan akan dicontroll oleh suatu pengontrol tertentu saja) dalam hal ini akan digunakan slice berdasarkan port. untuk switch yang lainnya yang memiliki t enant berbeda di setiap port atau ada port yang disharing oleh tenant yang berbeda untuk mengalirkan traffic, berhubung ada port yang dishare, maka ada identitas tambahan yang dijadikan sebagai filter yaitu identitas dst dan src network layer, namun karena ada share port antar traffic kedua tenant, maka dst dan src network layer harus berbeda, k arena hal tersebut maka dst dan src nya harus berbeda, maka dari itu dalam flowvisor tidak boleh ada identitas layer2,3 dan 4 yang sama. Patokannya tetap pada port a. Untuk traffic tenant 1: PE1-P1-P2-P4-PE2 dan tenant2: PE1-P1-P3-P4-PE2 #switch-pe1 #port1-tenant 1 in_port=1,nw_src=10.0.0.1,nw_dst 10.0.0.2 tenant1=7 fvctl add-flowspace switch-pe1-po rt1 00:00:00:02:01:00 1 in_port=1,nw_src=10.0.0.2,nw_dst 10.0.0.1 tenant1=7 #port1-tenant 2 fvctl add-flowspace switch-pe1-po rt1 00:00:00:02:01:00 1 in_port=1,nw_src=20.0.0.1,nw_dst 20.0.0.2 tenant1=7 fvctl add-flowspace switch-pe1-po rt1 00:00:00:02:01:00 1 in_port=1,nw_src=20.0.0.2,nw_dst 20.0.0.1 tenant1=7 #port2-tenant1
IV
fvctl add-flowspace switch-pe1-port2 00:00:00:02:01:00 00:00:00:02:01:00 1 in_port=2 tenant1=7 #port3-tenant2 fvctl add-flowspace switch-pe1-port3 00:00:00:02:01:00 00:00:00:02:01:00 1 in_port=3 tenant2=7 #switch-pe2 #port1-tenant 1 fvctl add-flowspace switch-pe2-po rt1 00:00:00:02:02:00 1 in_port=1,nw_src=10.0.0.1,nw_dst 10.0.0.2 tenant1=7 fvctl add-flowspace switch-pe2-po rt1 00:00:00:02:02:00 1 in_port=1,nw_src=10.0.0.2,nw_dst 10.0.0.1 tenant1=7 #port1-tenant 2 fvctl add-flowspace switch-pe2-po rt1 00:00:00:02:02:00 1 in_port=1,nw_src=20.0.0.1,nw_dst 20.0.0.2 tenant2=7 fvctl add-flowspace switch-pe2-po rt1 00:00:00:02:02:00 1 in_port=1,nw_src=20.0.0.2,nw_dst 20.0.0.1 tenant2=7 #port2-tenant1 fvctl add-flowspace switch-pe2-port2 00:00:00:02:02:00 00:00:00:02:02:00 1 in_port=2 tenant1=7 #port3-tenant2 fvctl add-flowspace switch-pe2-port3 00:00:00:02:02:00 00:00:00:02:02:00 1 in_port=3 tenant2=7 #switch-p1 #port1-tenant 1 fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 00:00:00:01:01:00 1 in_port= 1,nw_src=10.0.0.1,nw_dst 1,nw_src=10.0.0.1,nw_dst 10.0.0.2 tenant1=7 fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 00:00:00:01:01:00 1 in_port= 1,nw_src=10.0.0.2,nw_dst 1,nw_src=10.0.0.2,nw_dst 10.0.0.1 tenant1=7 #port1-tenant 2 fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 00:00:00:01:01:00 1 in_port= 1,nw_src=20.0.0.1,nw_dst 1,nw_src=20.0.0.1,nw_dst 20.0.0.2 tenant2=7 fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 00:00:00:01:01:00 1 in_port= 1,nw_src=20.0.0.2,nw_dst 1,nw_src=20.0.0.2,nw_dst 20.0.0.1 tenant2=7 #port2-tenant1 fvctl add-flowspace switch-p1-port2 00:00:00:01:01:00 00:00:00:01:01:00 1 in_port=2 tenant1=7 #port3-tenant2 fvctl add-flowspace switch-p1-port3 00:00:00:01:01:00 00:00:00:01:01:00 1 in_port=3 tenant2=7
#switch-p2 #port1-tenant1 fvctl add-flowspace switch-p2-port1 00:00:00:01:02:00 00:00:00:01:02:00 1 in_port=1 tenant1=7 #port2-tenant1 fvctl add-flowspace switch-p2-port2 00:00:00:01:02:00 00:00:00:01:02:00 1 in_port=2 tenant1=7 #switch-p3 #port1-tenant2 fvctl add-flowspace switch-p3-port1 00:00:00:01:03:00 00:00:00:01:03:00 1 in_port=1 tenant2=7 #port2-tenant2 fvctl add-flowspace switch-p3-port2 00:00:00:01:03:00 00:00:00:01:03:00 1 in_port=2 tenant2=7
#switch-p4 #port3-tenant 1 fvctl add-flowspace switch-p4-port3 00:00:00:01:04:00 00:00:00:01:04:00 1 in_port= 3,nw_src=10.0.0.1,nw_dst 3,nw_src=10.0.0.1,nw_dst 10.0.0.2 tenant1=7 fvctl add-flowspace switch-p4-port3 00:00:00:01:01:00 00:00:00:01:01:00 1 in_port= 3,nw_src=10.0.0.2,nw_dst 3,nw_src=10.0.0.2,nw_dst 10.0.0.1 tenant1=7 #port3-tenant 2
V
fvctl add-flowspace switch-p4-port3 00:00:00:01:04:00 00:00:00:01:04:00 1 in_port= 3,nw_src=20.0.0.1,nw_dst 3,nw_src=20.0.0.1,nw_dst 20.0.0.2 tenant2=7 fvctl add-flowspace switch-p4-port3 00:00:00:01:04:00 00:00:00:01:04:00 1 in_port= 3,nw_src=20.0.0.2,nw_dst 3,nw_src=20.0.0.2,nw_dst 20.0.0.1 tenant2=7 #port1-tenant1 fvctl add-flowspace switch-p4-port1 00:00:00:01:04:00 00:00:00:01:04:00 1 in_port=1 tenant1=7 #port2-tenant2 fvctl add-flowspace switch-p4-port2 00:00:00:01:04:00 00:00:00:01:04:00 1 in_port=2 tenant2=7 b. Untuk traffic tenant1 dan tenant2: PE1-P1-P4-PE2 #switch-pe1 #port1-tenant 1 sudo -u flowvisor fvct l add-flowspace switch-pe1-port1 00:00:00:02:01:00 1 in_port=1,nw_src=10.0.0.2,nw_dst=10.0.0.1 tenant1=7 fvctl add-flowspace switch-pe1-port1 00:00:00:02:01:00 1 in_port=1,nw_src=10.0.0.1, in_port=1,nw_src=10.0.0.1,nw_dst=10.0.0.2 nw_dst=10.0.0.2 tenant1=7 #port1-tenant 2 sudo -u flowvisor fvct l add-flowspace switch-pe1-port1 00:00:00:02:01:00 1 in_port=1,nw_src=20.0.0.1,nw_dst=20.0.0.2 tenant1=7 fvctl add-flowspace switch-pe1-port1 00:00:00:02:01:00 1 in_port=1,nw_src=20.0.0.2, in_port=1,nw_src=20.0.0.2,nw_dst=20.0.0.1 nw_dst=20.0.0.1 tenant1=7 #port2-tenant1 sudo -u flowvisor fvctl add-flowspace switch-pe1-port2 00:00:00:02:01:00 00:00:00:02:01:00 1 in_port=2 tenant1=7 #port3-tenant2 sudo -u flowvisor fvctl add-flowspace switch-pe1-port3 00:00:00:02:01:00 00:00:00:02:01:00 1 in_port=3 tenant2=7 #switch-pe2 #port1-tenant 1 fvctl add-flowspace switch-pe2-port1 00:00:00:02:02:00 1 in_port=1,nw_src=10.0.0.2, in_port=1,nw_src=10.0.0.2,nw_dst=10.0.0.1 nw_dst=10.0.0.1 tenant1=7 sudo -u flowvisor fvct l add-flowspace switch-pe2-port1 00:00:00:02:02:00 1 in_port=1,nw_src=10.0.0.1,nw_dst 10.0.0.2 tenant1=7 #port1-tenant 2 fvctl add-flowspace switch-pe2-port1 00:00:00:02:02:00 1 in_port=1,nw_src=20.0.0.2, in_port=1,nw_src=20.0.0.2,nw_dst=20.0.0.1 nw_dst=20.0.0.1 tenant2=7 sudo -u flowvisor fvct l add-flowspace switch-pe2-port1 00:00:00:02:02:00 1 in_port=1,nw_src=20.0.0.1,nw_dst=20.0.0.2 tenant2=7 #port2-tenant1 sudo -u flowvisor fvctl add-flowspace switch-pe2-port2 00:00:00:02:02:00 00:00:00:02:02:00 1 in_port=2 tenant1=7 #port3-tenant2 sudo -u flowvisor fvctl add-flowspace switch-pe2-port3 00:00:00:02:02:00 00:00:00:02:02:00 1 in_port=3 tenant2=7 #switch-p1 #port1-tenant 1 sudo -u flowvisor fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 1 in_port=1,nw_src=10.0.0.1,nw_dst=10.0.0.2 tenant1=7 fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 00:00:00:01:01:00 1 in_port= 1,nw_src=10.0.0.2,nw_dst=10.0.0.1 1,nw_src=10.0.0.2,nw_dst=10.0.0.1 tenant1=7 #port1-tenant 2 sudo -u flowvisor fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 1 in_port=1,nw_src=20.0.0.1,nw_dst=20.0.0.2 tenant2=7 fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 00:00:00:01:01:00 1 in_port= 1,nw_src=20.0.0.2,nw_dst=20.0.0.1 1,nw_src=20.0.0.2,nw_dst=20.0.0.1 tenant2=7 #port4-tenant 1
VI
fvctl add-flowspace switch-p1-port4 00:00:00:01:01:00 00:00:00:01:01:00 1 in _port=4,nw_src=10.0.0.1,n _port=4,nw_src=10.0.0.1,nw_dst=10.0.0.2 w_dst=10.0.0.2 tenant1=7 sudo -u flowvisor fvctl add-flowspace switch-p1-port4 00:00:00:01:01:00 1 in_port=4,nw_src=10.0.0.2,nw_dst=10.0.0.1 tenant1=7 #port4-tenant 2 fvctl add-flowspace switch-p1-port4 00:00:00:01:01:00 00:00:00:01:01:00 1 in _port=4,nw_src=20.0.0.1,n _port=4,nw_src=20.0.0.1,nw_dst=20.0.0.2 w_dst=20.0.0.2 tenant2=7 Ssudo -u flowvisor fvctl add-flowspace switch-p1-port4 00:00:00:01:01:00 1 in_port=4,nw_src=20.0.0.2,nw_dst=20.0.0.1 tenant2=7 #switch-p4 #port3-tenant 1 fvctl add-flowspace switch-p4-port3 00:00:00:01:04:00 00:00:00:01:04:00 1 in_port= 3,nw_src=10.0.0.1,nw_dst=10.0.0.2 3,nw_src=10.0.0.1,nw_dst=10.0.0.2 tenant1=7 sudo -u flowvisor fvctl add-flowspace switch-p4-port3 00:00:00:01:04:00 1 in_port=3,nw_src=10.0.0.2,nw_dst=10.0.0.1 tenant1=7 #port3-tenant 2 fvctl add-flowspace switch-p4-port3 00:00:00:01:04:00 00:00:00:01:04:00 1 in_port= 3,nw_src=20.0.0.1,nw_dst=20.0.0.2 3,nw_src=20.0.0.1,nw_dst=20.0.0.2 tenant2=7 sudo -u flowvisor fvctl add-flowspace switch-p4-port3 00:00:00:01:04:00 1 in_port=3,nw_src=20.0.0.2,nw_dst=20.0.0.1 tenant2=7 #port4-tenant 1 sudo -u flowvisor fvctl add-flowspace switch-p4-port4 00:00:00:01:04:00 1 in_port=4,nw_src=10.0.0.1,nw_dst=10.0.0.2 tenant1=7 fvctl add-flowspace switch-p4-port4 00:00:00:01:04:00 00:00:00:01:04:00 1 in_port= 4,nw_src=10.0.0.2,nw_dst=10.0.0.1 4,nw_src=10.0.0.2,nw_dst=10.0.0.1 tenant1=7 #port4-tenant 2 sudo -u flowvisor fvctl add-flowspace switch-p4-port4 00:00:00:01:04:00 1 in_port=4,nw_src=20.0.0.1,nw_dst=20.0.0.2 tenant2=7 fvctl add-flowspace switch-p4-port4 00:00:00:01:04:00 00:00:00:01:04:00 1 in_port= 4,nw_src=20.0.0.2,nw_dst=20.0.0.1 4,nw_src=20.0.0.2,nw_dst=20.0.0.1 tenant2=7
Mac address ce-21: Mac address ce-22: Mac address ce-11: Mac address ce-12:
00:0c:29:56:21:76 00:0c:29:ed:25:c6 00:0c:29:19:c5:4e 00:0c:29:de:79:31
#switch-pe1(ok) #port1-tenant 1 sudo -u flowvisor fvct l add-flowspace switch-pe1-port1 00:00:00:02:01:00 1 in_port=1,dl_src=00:0c:29:de:79:31,dl_dst=00:0c:29:19:c5:4e,dl_type= in_port=1,dl_src=00:0c:29:de:79:31 ,dl_dst=00:0c:29:19:c5:4e,dl_type=0x0800 0x0800 tenant1=7 fvctl add-flowspace switch-pe1-port1 00:00:00:02:01:00 1 in_port=1,dl_src=00:0c:29:19:c5:4e,dl_dst=00:0c:29:de:79:31 in_port=1,dl_src=00:0c:29:19:c5:4e ,dl_dst=00:0c:29:de:79:31,dl_type=0x0800 ,dl_type=0x0800 tenant1=7 #port1-tenant 2 sudo -u flowvisor fvct l add-flowspace switch-pe1-port1 00:00:00:02:01:00 1 in_port=1,dl_src=00:0c:29:56:21:76,dl_dst=00:0c:29:ed:25: in_port=1,dl_src=00:0c:29:56:2 1:76,dl_dst=00:0c:29:ed:25:c6,dl_type=0x0800 c6,dl_type=0x0800 tenant2=7 fvctl add-flowspace switch-pe1-port1 00:00:00:02:01:00 1 in_port=1,dl_src=00:0c:29:ed:25:c6,dl_dst=00:0c:29:56:21:76 in_port=1,dl_src=00:0c:29:ed:25:c6,d l_dst=00:0c:29:56:21:76,dl_type=0x0800 ,dl_type=0x0800 tenant2=7 #port2-tenant1 sudo -u flowvisor fvctl add-flowspace switch-pe1-port2 00:00:00:02:01:00 00:00:00:02:01:00 1 in_port=2 tenant1=7 #port3-tenant2 sudo -u flowvisor fvctl add-flowspace switch-pe1-port3 00:00:00:02:01:00 00:00:00:02:01:00 1 in_port=3 tenant2=7
VII
#switch-pe2(OK) #port1-tenant 1 fvctl add-flowspace switch-pe2-port1 00:00:00:02:02:00 1 in_port=1,dl_src=00:0c:29:de:79:31,dl_dst=00:0c:29:19:c5:4e in_port=1,dl_src=00:0c:29:de:79:31 ,dl_dst=00:0c:29:19:c5:4e,dl_type=0x0800 ,dl_type=0x0800 tenant1=7 sudo -u flowvisor fvct l add-flowspace switch-pe2-port1 00:00:00:02:02:00 1 in_port=1,dl_src=00:0c:29:19:c5:4e,dl_dst=00:0c:29:de:79:31 tenant1=7 #port1-tenant 2 fvctl add-flowspace switch-pe2-port1 00:00:00:02:02:00 1 in_port=1,dl_src=00:0c:29:ed:25:c6,dl_dst=00:0c:29:56:21:76 in_port=1,dl_src=00:0c:29:ed:25:c6,d l_dst=00:0c:29:56:21:76,dl_type=0x0800 ,dl_type=0x0800 tenant2=7 sudo -u flowvisor fvct l add-flowspace switch-pe2-port1 00:00:00:02:02:00 1 in_port=1,dl_src=00:0c:29:56:21:76,dl_dst=00:0c:29:ed:25: in_port=1,dl_src=00:0c:29:56:2 1:76,dl_dst=00:0c:29:ed:25:c6,dl_type=0x0800 c6,dl_type=0x0800 tenant2=7 #port2-tenant1 sudo -u flowvisor fvctl add-flowspace switch-pe2-port2 00:00:00:02:02:00 00:00:00:02:02:00 1 in_port=2 tenant1=7 #port3-tenant2 sudo -u flowvisor fvctl add-flowspace switch-pe2-port3 00:00:00:02:02:00 00:00:00:02:02:00 1 in_port=3 tenant2=7 #switch-p1 #port1-tenant 1 sudo -u flowvisor fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 1 in_port=1,dl_src=00:0c:29:19:c5:4e,dl_dst=00:0c:29:de:79:31 in_port=1,dl_src=00:0c:29:19:c5:4e ,dl_dst=00:0c:29:de:79:31,dl_type=0x0800 ,dl_type=0x0800 fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 1 in_port=1,dl_src=00:0c:29:de:79:31,dl_dst=00:0c:29:19:c5:4e in_port=1,dl_src=00:0c:29:de:79:31 ,dl_dst=00:0c:29:19:c5:4e,dl_type=0x0800 ,dl_type=0x0800 #port1-tenant 2 sudo -u flowvisor fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 1 in_port=1,dl_src=00:0c:29:56:21:76,dl_dst=00:0c:29:ed:25:c6 in_port=1,dl_src=00:0c:29:56:21 :76,dl_dst=00:0c:29:ed:25:c6,dl_type=0x0800 ,dl_type=0x0800 fvctl add-flowspace switch-p1-port1 00:00:00:01:01:00 1 in_port=1,dl_src=00:0c:29:ed:25:c6,dl_dst=00:0c:29:56:21:76 in_port=1,dl_src=00:0c:29:ed:25:c6,d l_dst=00:0c:29:56:21:76,dl_type=0x0800 ,dl_type=0x0800 #port4-tenant 1 fvctl add-flowspace switch-p1-port4 00:00:00:01:01:00 1 in_port=4,dl_src=00:0c:29:19:c5:4e,dl_dst=00:0c:29:de:79:31 in_port=4,dl_src=00:0c:29:19:c5:4e ,dl_dst=00:0c:29:de:79:31,dl_type=0x0800 ,dl_type=0x0800 sudo -u flowvisor fvctl add-flowspace switch-p1-port4 00:00:00:01:01:00 1 in_port=4,dl_src=00:0c:29:de:79:31,dl_dst=00:0c:29:19:c5:4e in_port=4,dl_src=00:0c:29:de:79:31 ,dl_dst=00:0c:29:19:c5:4e,dl_type=0x0800 ,dl_type=0x0800 #port4-tenant 2 fvctl add-flowspace switch-p1-port4 00:00:00:01:01:00 1 in_port=4,dl_src=00:0c:29:56:21:76,dl_dst=00:0c:29:ed:25: in_port=4,dl_src=00:0c:29:56:2 1:76,dl_dst=00:0c:29:ed:25:c6,dl_type=0x0800 c6,dl_type=0x0800 sudo -u flowvisor fvctl add-flowspace switch-p1-port4 00:00:00:01:01:00 1 in_port=4,dl_src=00:0c:29:ed:25:c6,dl_dst=00:0c:29:56:21:76, in_port=4,dl_src=00:0c:29:ed:25:c6,dl_ dst=00:0c:29:56:21:76,dl_type=0x0800 dl_type=0x0800
tenant1=7 tenant1=7
tenant2=7 tenant2=7
tenant1=7 tenant1=7
tenant2=7 tenant2=7
#tambahan untuk failover: port2-tenant1 dan port3-tenant2 sudo -u flowvisor fvctl add-flowspace switch-p1-port2 00:00:00:01:01:00 1 in_port=2 tenant1=7 sudo -u flowvisor fvctl add-flowspace switch-p1-port3 00:00:00:01:01:00 1 in_port=3 tenant2=7
#switch-p4(ok) #port3-tenant 1 fvctl add-flowspace switch-p4-port3 00:00:00:01:04:00 1 in_port=3,dl_src=00:0c:29:19:c5:4e,dl_dst=00:0c:29:de:79:31 in_port=3,dl_src=00:0c:29:19:c5:4e ,dl_dst=00:0c:29:de:79:31,dl_type=0x0800 ,dl_type=0x0800 tenant1=7 sudo -u flowvisor fvctl add-flowspace switch-p4-port3 00:00:00:01:04:00 1 in_port=3,dl_src=00:0c:29:de:79:31,dl_dst=00:0c:29:19:c5:4e in_port=3,dl_src=00:0c:29:de:79:31 ,dl_dst=00:0c:29:19:c5:4e,dl_type=0x0800 ,dl_type=0x0800 tenant1=7 #port3-tenant 2 fvctl add-flowspace switch-p4-port3 00:00:00:01:04:00 1 in_port=3,dl_src=00:0c:29:56:21:76,dl_dst=00:0c:29:ed:25:c6, in_port=3,dl_src=00:0c:29:56:2 1:76,dl_dst=00:0c:29:ed:25:c6,dl_type=0x0800 dl_type=0x0800 tenant2=7
VIII
sudo -u flowvisor fvctl add-flowspace switch-p4-port3 00:00:00:01:04:00 1 in_port=3,dl_src=00:0c:29:ed:25:c6,dl_dst=00:0c:29:56:21:76 in_port=3,dl_src=00:0c:29:ed:25:c6,d l_dst=00:0c:29:56:21:76,dl_type=0x0800 ,dl_type=0x0800 #port4-tenant 1 sudo -u flowvisor fvctl add-flowspace switch-p4-port4 00:00:00:01:04:00 1 in_port=4,dl_src=00:0c:29:19:c5:4e,dl_dst=00:0c:29:de:79:31 in_port=4,dl_src=00:0c:29:19:c5:4e ,dl_dst=00:0c:29:de:79:31,dl_type=0x0800 ,dl_type=0x0800 fvctl add-flowspace switch-p4-port4 00:00:00:01:04:00 1 in_port=4,dl_src=00:0c:29:de:79:31,dl_dst=00:0c:29:19:c5:4e in_port=4,dl_src=00:0c:29:de:79:31 ,dl_dst=00:0c:29:19:c5:4e,dl_type=0x0800 ,dl_type=0x0800 #port4-tenant 2 sudo -u flowvisor fvctl add-flowspace switch-p4-port4 00:00:00:01:04:00 1 in_port=4,dl_src=00:0c:29:56:21:76,dl_dst=00:0c:29:ed:25: in_port=4,dl_src=00:0c:29:56:2 1:76,dl_dst=00:0c:29:ed:25:c6,dl_type=0x0800 c6,dl_type=0x0800 fvctl add-flowspace switch-p4-port4 00:00:00:01:04:00 1 in_port=4,dl_src=00:0c:29:ed:25:c6,dl_dst=00:0c:29:56:21:76, in_port=4,dl_src=00:0c:29:ed:25:c6,dl _dst=00:0c:29:56:21:76,dl_type=0x0800 dl_type=0x0800
tenant2=7
tenant1=7 tenant1=7
tenant2=7 tenant2=7
#tambahan untuk failover: port1-tenant1 dan port2-tenant2 sudo -u flowvisor fvctl add-flowspace switch-p4-port1 00:00:00:01:04:00 1 in_port=1 tenant1=7 sudo -u flowvisor fvctl add-flowspace switch-p4-port2 00:00:00:01:04:00 1 in_port=2 tenant2=7
#tambahkan untuk mendapatkan backup links #switch-p2 #port1-tenant1 sudo -u flowvisor fvctl add-flowspace switch-p2-port1 00:00:00:01:02:00 00:00:00:01:02:00 1 in_port=1 tenant1=7 #port2-tenant1 sudo -u flowvisor fvctl add-flowspace switch-p2-port2 00:00:00:01:02:00 00:00:00:01:02:00 1 in_port=2 tenant1=7
#switch-p3 #port1-tenant2 sudo -u flowvisor fvctl add-flowspace switch-p3-port1 00:00:00:01:03:00 00:00:00:01:03:00 1 in_port=1 tenant2=7 #port2-tenant2 sudo -u flowvisor fvctl add-flowspace switch-p3-port2 00:00:00:01:03:00 00:00:00:01:03:00 1 in_port=2 tenant2=7
Lihat slices root@Hypervisor:/home/galih# sudo -u flowvisor fvctl list-slices Password: Configured slices: fvadmin --> enabled tenant1 --> enabled tenant2 --> enabled Lihat flowspace root@Hypervisor:/home/galih# sudo -u flowvisor fvctl list-flowspace sudo: unable to resolve host Hypervisor Password: Configured Flow entries: {"force-enqueue": -1, "name": "switch-pe1-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 1, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:19:c5:4e", "dl_src": "00:0c:29:de:79:31", "in_port": 1}} {"force-enqueue": -1, "name": "switch-pe1-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 2, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:ed:25:c6", "dl_src": "00:0c:29:56:21:76", "in_port": 1}}
IX
{"force-enqueue": -1, "name": "switch-pe1-port2", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 3, "match": {"wildcards": 4194302, "in_port": 2}} {"force-enqueue": -1, "name": "switch-pe1-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 4, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:19:c5:4e", "dl_src": "00:0c:29:de:79:31", "in_port": 1}} {"force-enqueue": -1, "name": "switch-pe1-port3", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 5, "match": {"wildcards": 4194302, "in_port": 3}} {"force-enqueue": -1, "name": "switch-pe2-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:02:00", "id": 6, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:de:79:31", "dl_src": "00:0c:29:19:c5:4e", "in_port": 1}} {"force-enqueue": -1, "name": "switch-pe2-port1", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:02:00", "id": 7, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:ed:25:c6", "dl_src": "00:0c:29:56:21:76", "in_port": 1}} {"force-enqueue": -1, "name": "switch-pe2-port2", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:02:00", "id": 8, "match": {"wildcards": 4194302, "in_port": 2}} {"force-enqueue": -1, "name": "switch-pe2-port3", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:02:00", "id": 9, "match": {"wildcards": 4194302, "in_port": 3}} {"force-enqueue": -1, "name": "switch-p1-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "id": 10, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:de:79:31", "dl_src": "00:0c:29:19:c5:4e", "in_port": 1}} {"force-enqueue": -1, "name": "switch-p1-port1", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "id": 11, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:ed:25:c6", "dl_src": "00:0c:29:56:21:76", "in_port": 1}} {"force-enqueue": -1, "name": "switch-p1-port4", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "id": 12, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:19:c5:4e", "dl_src": "00:0c:29:de:79:31", "in_port": 4}} {"force-enqueue": -1, "name": "switch-p1-port4", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "id": 13, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:56:21:76", "dl_src": "00:0c:29:ed:25:c6", "in_port": 4}} {"force-enqueue": -1, "name": "switch-p4-port3", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "id": 14, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:19:c5:4e", "dl_src": "00:0c:29:de:79:31", "in_port": 3}} {"force-enqueue": -1, "name": "switch-p4-port3", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "id": 15, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:56:21:76", "dl_src": "00:0c:29:ed:25:c6", "in_port": 3}} {"force-enqueue": -1, "name": "switch-p4-port4", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "id": 16, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:de:79:31", "dl_src": "00:0c:29:19:c5:4e", "in_port": 4}} {"force-enqueue": -1, "name": "switch-p4-port4", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "id": 17, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:ed:25:c6", "dl_src": "00:0c:29:56:21:76", "in_port": 4}} Flowspace dengan tambahan backup links Configured Flow entries: {"force-enqueue": -1, "name": "switch-pe1-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "prior ity": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 1, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:19:c5:4e", "dl_src": "00:0c:29:de:79:31", "00:0c:29:de:79:31", "in_port": 1}} {"force-enqueue": -1, "name": "switch-pe1-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 2, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:19:c5:4e", "dl_src": "00:0c:29:de:79:31", "00:0c:29:de:79:31", "in_port": 1}}
X
{"force-enqueue": -1, "name": "switch-pe1-port2", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 4, "match": {"wildcards": 4194302, "in_port": 2}} {"force-enqueue": -1, "name": "switch-pe2-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:02:00", "id": 6, "match": {"wildcards": 4194290, "dl_dst": "00:0c:29:de:79:31", "dl_src": "00:0c:29:19:c5:4e", "in_port": 1}} {"force-enqueue": -1, "name": "switch-pe2-port2", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:02:00", "id": 8, "match": {"wildcards": 4194302, "in_port": 2}} {"force-enqueue": -1, "name": "switch-p1-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "id": 10, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:de:79:31", "dl_src": "00:0c:29:19:c5:4e", "in_port": 1}} {"force-enqueue": -1, "name": "switch-p1-port4", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "id": 12, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:19:c5:4e", "dl_src": "00:0c:29:de:79:31", "in_port": 4}} {"force-enqueue": -1, "name": "switch-p4-port3", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "id": 14, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:19:c5:4e", "dl_src": "00:0c:29:de:79:31", "in_port": 3}} {"force-enqueue": -1, "name": "switch-p4-port4", "slice-action": [{"slice-name": "tenant1", "permis sion": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "id": 16, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:de:79:31", "dl_src": "00:0c:29:19:c5:4e", "in_port": 4}} {"force-enqueue": -1, "name": "switch-p2-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:02:00", "00:00:00:00:00:01:02:00", "id": 18, "match": {"wildcards": 4194302, "in_port": 1}} {"force-enqueue": -1, "name": "switch-p2-port2", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:02:00", "00:00:00:00:00:01:02:00", "id": 19, "match": {"wildcards": 4194302, "in_port": 2}} {"force-enqueue": -1, "name": "switch-p1-port2", "slice-action": [{"slice-name": "tenant1", "permis sion": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "id": 22, "match": {"wildcards": 4194302, "in_port": 2}} {"force-enqueue": -1, "name": "switch-p1-port2", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "id": 23, "match": {"wildcards": 4194302, "in_port": 2}} {"force-enqueue": -1, "name": "switch-p4-port1", "slice-action": [{"slice-name": "tenant1", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "id": 30, "match": {"wildcards": 4194302, "in_port": 1}} {"force-enqueue": -1, "name": "switch-pe1-port1", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 3, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:ed:25:c6", "dl_src": "00:0c:29:56:21:76", "00:0c:29:56:21:76", "in_port": 1}} {"force-enqueue": -1, "name": "switch-pe1-port3", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "prior ity": 1, "dpid": "00:00:00:00:00:02:01:00", "id": 5, "match": {"wildcards": 4194302, "in_port": 3}} {"force-enqueue": -1, "name": "switch-pe2-port1", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "pr iority": 1, "dpid": "00:00:00:00:00:02:02:00", "00:00:00:00:00:02:02:00", "id": 7, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:ed:25:c6", "dl_src": "00:0c:29:56:21:76", "00:0c:29:56:21:76", "in_port": 1}} {"force-enqueue": -1, "name": "switch-pe2-port3", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:02:02:00", "id": 9, "match": {"wildcards": 4194302, "in_port": 3}} {"force-enqueue": -1, "name": "switch-p1-port1", "slice-action": [{"slice-name": "tenant2", "permis sion": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "id": 11, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:ed:25:c6", "dl_src": "00:0c:29:56:21:76", "in_port": 1}} {"force-enqueue": -1, "name": "switch-p1-port4", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "id": 13, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:56:21:76", "dl_src": "00:0c:29:ed:25:c6", "in_port": 4}}
XI
{"force-enqueue": -1, "name": "switch-p4-port3", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "id": 15, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:56:21:76", "dl_src": "00:0c:29:ed:25:c6", "in_port": 3}} {"force-enqueue": -1, "name": "switch-p4-port4", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "id": 17, "match": {"wildcards": 4194274, "dl_type": 2048, "dl_dst": "00:0c:29:ed:25:c6", "dl_src": "00:0c:29:56:21:76", "in_port": 4}} {"force-enqueue": -1, "name": "switch-p3-port1", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:03:00", "00:00:00:00:00:01:03:00", "id": 20, "match": {"wildcards": 4194302, "in_port": 1}} {"force-enqueue": -1, "name": "switch-p3-port2", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:03:00", "00:00:00:00:00:01:03:00", "id": 21, "match": {"wildcards": 4194302, "in_port": 2}} {"force-enqueue": -1, "name": "switch-p4-port2", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:04:00", "00:00:00:00:00:01:04:00", "id": 26, "match": {"wildcards": 4194302, "in_port": 2}} {"force-enqueue": -1, "name": "switch-p1-port3", "slice-action": [{"slice-name": "tenant2", "permission": 7}], "queues": [], "priority": 1, "dpid": "00:00:00:00:00:01:01:00", "00:00:00:00:00:01:01:00", "id": 29, "match": {"wildcards": 4194302, "in_port": 3}} 6.
Sisi controller: Ada 4 buah switch untuk masing-masing tenant, dengan dpid yang sama dengan dpid fisik
XII
XIII
10. Lihat route yang terlihat di controller root@Controller:/home/# curl http://localhost:20001/wm/topology/route/00:00:00:00:00:0 http://localhost:20001/wm/ topology/route/00:00:00:00:00:02:01:00/3/00:00:00 2:01:00/3/00:00:00:00:00:02:02:00/ :00:00:02:02:00/3/json 3/json [{"switch":"00:00:00:00:00:02:01:00", [{"switch":"00:00:00:00:00:02:01:00","port":3},{"switch":"00:00: "port":3},{"switch":"00:00:00:00:00:02:01:00 00:00:00:02:01:00","port":1},{"switch":"00 ","port":1},{"switch":"00:00:0 :00:0 0:00:00:01:01:00","port":1},{"switch":"00 0:00:00:01:01:00","port":1},{"switch":"00:00:00:00:00:01: :00:00:00:00:01:01:00","port":4},{"switch":" 01:00","port":4},{"switch":"00:00:00:00:00:0 00:00:00:00:00:01:04:00", 1:04:00", "port":4},{"switch":"00:00:00:00:00:01:0 "port":4},{"switch":"00: 00:00:00:00:01:04:00","port":3},{"switch":" 4:00","port":3},{"switch":"00:00:00:00:00:02: 00:00:00:00:00:02:02:00","port":1},{"switch" 02:00","port":1},{"switch" :"00:00:00:00:00
url http://localhost:10001/wm/topology/route/00:00 http://localhost:10001/wm/topology/route/00:00:00:00:00:02:01:00 :00:00:00:02:01:00/2/00:00:00:00:0 /2/00:00:00:00:00:02:02:00/2/json 0:02:02:00/2/json [{"switch":"00:00:00:00:00:02:01:00", [{"switch":"00:00:00:00:00:02:01:00","port":2},{"switch":"00:00 "port":2},{"switch":"00:00:00:00:00:02:01: :00:00:00:02:01:00","port":1},{"switch":"0 00","port":1},{"switch":"00:00:0 0:00:0 0:00:00:01:01:00","port":1},{"switch":"00 0:00:00:01:01:00","port":1},{"switch":"00:00:00:00:00:01: :00:00:00:00:01:01:00","port":4},{"switch":" 01:00","port":4},{"switch":"00:00:00:00:00:0 00:00:00:00:00:01:04:00", 1:04:00", "port":4},{"switch":"00:00:00:00:00:01:04: "port":4},{"switch":"00:0 0:00:00:00:01:04:00","port":3},{"switch":"0 00","port":3},{"switch":"00:00:00:00:00:02 0:00:00:00:00:02:02:00","port":1},{"switch" :02:00","port":1},{"switch" :"00:00:00:00:00:02:02:00","port":2}]root@Controller:/home/ovx#
XIV
CLI untuk implementasi Virtual network dengan OVX
1.
Pindahkan akses controller switch OF yang ada dari controller ke OVX. ovs-vsctl set-controller vmbr0 tcp:167.205.64.68:663 tcp:167.205.64.68:6633 3
2.
Implementasi Topologi 2 switch PE1 dan PE2, link virtual menghubungkan PE1 dan PE2 a.
Implementasi virtualisasi #konfigurasi untuk Tenant 1, yang menghubungkan host tenant 1.1 dan host tenant 1.2 #ubah ip address untuk skema ini, seperti berikut: #host tenant 1.1: 10.0.0.1/16 #host tenant 1.2: 10.0.0.2/16 #1.a jalankan openvirtex cd /OpenVirteX/scripts sh ovx.sh #1.b buat virtual jaringan dengan alamat virtual yang diassign secara dhcp yaitu: 10.0.0.0, alamat ini akan diassign ke pada ip address bridge ip address virtual host, test apakah opsi ini perlu atau tidak, atau gunakan saja ip a ddress static untuk setiap hosts python ovxctl.py -n createNetwork tcp:167.205.64.67:10000 tcp:167.205.64.67:10000 10.0.0.0 16 #1.c masukan PE1 dan PE2 kedalam jaringan yang baru kita buat. python ovxctl.py -n createSwitch 1 00:00:00:00:00:02:01:00 00:00:00:00:00:02:01:00 python ovxctl.py -n createSwitch 1 00:00:00:00:00:02:02:00 00:00:00:00:00:02:02:00 #1.d buat virtual port di switch PE1 dan PE2 masing-masing di port pertama dan kedua(lihat idnya berdasarkan log, ada penambahan 0 di depan) #port di switch 1 python ovxctl.py -n createPort 1 00:00:00:00:00:02:01:00 00:00:00:00:00:02:01:00 1 python ovxctl.py -n createPort 1 00:00:00:00:00:02:01:00 00:00:00:00:00:02:01:00 2 #port di switch 2 python ovxctl.py -n createPort 1 00:00:00:00:00:02:02:00 00:00:00:00:00:02:02:00 1 python ovxctl.py -n createPort 1 00:00:00:00:00:02:02:00 00:00:00:00:00:02:02:00 2
XV
#1.e sambungkan antara kedua virtual port antara kedua switch virtual dan antar switch virtual ke host #antar switch, gunakan datapath id virtual switch yang di create dari switch1 dan switch2, hubungkan port virtual, dan definisikan berapa jumlah backup link yang ingin di kalkulasi(sementara baru 1 yang berhasil, 3 tidak berhasil, nanti c oba 2) python ovxctl.py -n connectLink 1 00:a4:23:05:00:00:00:01 00:a4:23:05:00:00:00:01 1 00:a4:23:05:00:00:00:02 1 spf 1 #antar switch ke host, host diberi akses ke port 2 di setiap switchnya, identitas yang digunakan adalah datapath id virtual switch dan mac address host yang dihubungkan python ovxctl.py -n connectHost 1 00:a4:23:05:00:00:00:01 00:a4:23:05:00:00:00:01 2 00:0c:29:19:c5:4e python ovxctl.py -n connectHost 1 00:a4:23:05:00:00:00:02 00:a4:23:05:00:00:00:02 2 00:0c:29:de:79:31 #1.f jalankan network 1 python ovxctl.py -n startNetwork 1
#screenshoot
XVI
#konfigurasi untuk Tenant 2, yang menghubungkan host tenant 2.1 dan host tenant 2.2 #ubah ip address untuk skema ini, seperti berikut: #host tenant 2.1: 10.0.0.1/24 #host tenant 2.2: 10.0.0.2/24 #2.a jalankan openvirtex cd /OpenVirteX/scripts sh ovx.sh(jika sudah dilakukan dalam langkah berikutnya, maka bagian ini tidak usah dijalankan lagi) #2.b buat virtual jaringan dengan alamat virtual yang diassign secara dhcp yaitu: 10.0.0.0, 10.0.0.0, alamat ini akan diassign ke pada ip address bridge ip address virtual host, test apakah opsi ini per lu atau tidak, atau gunakan saja ip address static untuk setiap hosts python ovxctl.py -n cr eateNetwork tcp:167.205.64.67:20000 tcp:167.205.64.67:20000 10.0.0.0 16 #2.c masukan PE1 dan PE2 kedalam jaringan yang baru kita buat. python ovxctl.py -n cr eateSwitch 2 00:00:00:00:00:02:01:00 00:00:00:00:00:02:01:00 python ovxctl.py -n cr eateSwitch 2 00:00:00:00:00:02:02:00 #2.d buat virtual port di switch PE1 dan PE2 masing-masing di port 1 dan 3 python ovxctl.py -n cr eatePort 2 00:00:00:00:00:02:01:00 1 python ovxctl.py -n cr eatePort 2 00:00:00:00:00:02:01:00 3
XVII
python ovxctl.py -n cr eatePort 2 00:00:00:00:00:02:02:00 1 python ovxctl.py -n cr eatePort 2 00:00:00:00:00:02:02:00 3
#2.e sambungkan antara kedua virtual port antara kedua switch virt ual dan antar switch virtual ke host #antar switch python ovxctl.py -n connectLink 2 00:a4:23:05:00:00:00:01 00:a4:23:05:00:00:00:01 1 00:a4:23:05:00:00:00:02 1 spf 1 #antar switch ke host, host diberi id 1 dan 2 python ovxctl.py -n connectHost 2 00:a4:23:05:00:00:00:01 00:a4:23:05:00:00:00:01 2 00:0c:29:56:21:76 python ovxctl.py -n connectHost 2 00:a4:23:05:00:00:00:02 00:a4:23:05:00:00:00:02 2 00:0c:29:ed:25:c6
#2.f jalankan network 2 python ovxctl.py -n startNetwork 2
#screenshoot #controller
XVIII
2.
Konfigurasi di sisi jaringan #akses diganti dari ip controller k e ip OVX server, caranya sama: #ovs-vsctl set-controller vmbr0 tcp:"ip address OVX":"port ovx" c.
d.
3. 4. 5.
Selanjutnya jalankan test ping antar host dan amati flow table di setiap switch, seharusnya ada translasi dari ip address host masing-masing tenant k e ip address internal network yaitu: 1.0.0.0/8 dan 2.0.0.0/8 Untuk bisa melakukan hal ini buka file internet2.py dan juga konfigurasi controller di t utorial, duplikasi konfigurasi kontroller tersebut untuk disesuaikan.
Implementasi topologi dengan graph yang sesuai dengan graph network fisik: Tenant1: PE1, P1, P2, P4, PE2 dan Tenant2: PE1, P1, P3, P4, PE2 Penambahan fitur QoS di sisi Controller Implementasi big switch a.
Buat konfigurasi sebagai berikut untuk tenant1 dan tenant 2:
{
{ "id": "1", "jsonrpc": "2.0", "method": "createNetwork", "params": { "network": { "controller": { "ctrls": [
"tcp:167.205.64.67:10000" ], "type": "custom" }, "hosts": [
XIX
"id": "2", "jsonrpc": "2.0", "method": "createNetwork", "params": { "network": { "controller": { "ctrls": [ "tcp:167.205.64.67:20000" ], "type": "custom" }, "hosts": [
{
{
"dpid": "00:00:00:00:00:02:01:00", "mac": "00:0c:29:19:c5:4e", "port": 2 }, { "dpid": "00:00:00:00:00:02:02:00", "mac": "00:0c:29:de:79:31", "port": 2 } ], "routing": { "algorithm": "spf", "backup_num": 1 }, "subnet": "192.168.0.0/24", "type": "bigswitch" } } }
2.
"dpid": "00:00:00:00:00:02:01:00", "mac": "00:0c:29:56:21:76", "port": 3 }, { "dpid": "00:00:00:00:00:02:02:00", "mac": "00:0c:29:ed:25:c6", "port": 3 } ], "routing": { "algorithm": "spf", "backup_num": 1 }, "subnet": "192.168.0.0/24", "type": "bigswitch" } } }
Jalankan embedder.py untuk json RPC server #python utils/embedder.py 2015-12-22 08:20:05,780 JSON RPC server starting
2015-12-22 08:22:21,384 Physical network topology received 2015-12-22 08:22:21,431 Network with tenantId 1 has been c reated 2015-12-22 08:22:21,460 Switch with switchId 00:a4:23:05:00:00:00:01 has been c reated 2015-12-22 08:22:21,464 Internal routing of switch 00:a4:23:05:00:00:00:01 has been set to spf 2015-12-22 08:22:21,479 Port on switch 00:a4:23:05:00:00:00:01 00:a4:23:05:00:00:00:01 with port num ber 1 has been created 2015-12-22 08:22:21,494 Host with hostId 1 connected 2015-12-22 08:22:21,499 Port on switch 00:a4:23:05:00:00:00:01 00:a4:23:05:00:00:00:01 with port number 2 has been created
XX
2015-12-22 08:22:21,511 Host with hostId 2 connected 2015-12-22 08:22:21,563 Network with tenantId 1 has been star ted 127.0.0.1 - - [22/Dec/2015 08:22:21] "POST / HTTP/1.1" 200 -
c.
Masukan topologi Bigswitch #curl localhost:8000 -X POST -d @bigswitchtenant1.json #curl localhost:8000 -X POST -d @bigswitchtenant2.json
{"jsonrpc": "2.0", "result": {"tenantId": 1}, "id": "1"} {"jsonrpc": "2.0", "result": {"tenantId": 2}, "id": "2"}
d.
Lihat hasilnya dan lakukan percobaan
XXI
XXII
Lampiran B Data mentah Pengukuran Delay, Jitter, Throughput
1. FlowVisor tanpa cache flow
64
bytes
from
10.0.0.1:
icmp_seq
1
ttl
64
time
17.3
ms
64
bytes
from
10.0.0.1:
icmp_seq
2
ttl
64
time
2.31
ms
64
bytes
from
10.0.0.1:
icmp_seq
3
ttl
64
time
1.01
ms
64
bytes
from
10.0.0.1:
icmp_seq
4
ttl
64
time
1.01
ms
64
bytes
from
10.0.0.1:
icmp_seq
5
ttl
64
time
1.06
ms
64
bytes
from
10.0.0.1:
icmp_seq
6
ttl
64
time
0.951
ms
64
bytes
from
10.0.0.1:
icmp_seq
7
ttl
64
time
0.992
ms
64
bytes
from
10.0.0.1:
icmp_seq
8
ttl
64
time
1.06
ms
64
bytes
from
10.0.0.1:
icmp_seq
9
ttl
64
time
0.956
ms
64
bytes
from
10.0.0.1:
icmp_seq
10
ttl
64
time
0.992
ms
64
bytes
from
10.0.0.1:
icmp_seq
11
ttl
64
time
1.06
ms
64
bytes
from
10.0.0.1:
icmp_seq
12
ttl
64
time
1
ms
64
bytes
from
10.0.0.1:
icmp_seq
13
ttl
64
time
1.05
ms
64
bytes
from
10.0.0.1:
icmp_seq
14
ttl
64
time
1.04
ms
64
bytes
from
10.0.0.1:
icmp_seq
15
ttl
64
time
0.801
ms
64
bytes
from
10.0.0.1:
icmp_seq
16
ttl
64
time
1.01
ms
64
bytes
from
10.0.0.1:
icmp_seq
17
ttl
64
time
0.893
ms
64
bytes
from
10.0.0.1:
icmp_seq
18
ttl
64
time
0.861
ms
64
bytes
from
10.0.0.1:
icmp_seq
19
ttl
64
time
0.856
ms
64
bytes
from
10.0.0.1:
icmp_seq
20
ttl
64
time
0.96
ms
64
bytes
from
10.0.0.1:
icmp_seq
21
ttl
64
time
0.93
ms
64
bytes
from
10.0.0.1:
icmp_seq
22
ttl
64
time
1.05
ms
64
bytes
from
10.0.0.1:
icmp_seq
23
ttl
64
time
0.996
ms
64
bytes
from
10.0.0.1:
icmp_seq
24
ttl
64
time
1.05
ms
64
bytes
from
10.0.0.1:
icmp_seq
25
ttl
64
time
1.02
ms
64
bytes
from
10.0.0.1:
icmp_seq
26
ttl
64
time
0.933
ms
64
bytes
from
10.0.0.1:
icmp_seq
27
ttl
64
time
0.979
ms
64
bytes
from
10.0.0.1:
icmp_seq
28
ttl
64
time
1.04
ms
64
bytes
from
10.0.0.1:
icmp_seq
29
ttl
64
time
1
ms
64
bytes
from
10.0.0.1:
icmp_seq
30
ttl
64
time
1.09
ms
64
bytes
from
10.0.0.1:
icmp_seq
31
ttl
64
time
1.05
ms
64
bytes
from
10.0.0.1:
icmp_seq
32
ttl
64
time
1
ms
64
bytes
from
10.0.0.1:
icmp_seq
33
ttl
64
time
0.91
ms
64
bytes
from
10.0.0.1:
icmp_seq
34
ttl
64
time
1
ms
64
bytes
from
10.0.0.1:
icmp_seq
35
ttl
64
time
0.89
ms
XXIII
64
bytes
from
10.0.0.1:
icmp_seq
36
ttl
64
time
1.21
ms
64
bytes
from
10.0.0.1:
icmp_seq
37
ttl
64
time
1.35
ms
64
bytes
from
10.0.0.1:
icmp_seq
38
ttl
64
time
1.03
ms
64
bytes
from
10.0.0.1:
icmp_seq
39
ttl
64
time
0.95
ms
64
bytes
from
10.0.0.1:
icmp_seq
40
ttl
64
time
0.949
ms
64
bytes
from
10.0.0.1:
icmp_seq
41
ttl
64
time
0.926
ms
64
bytes
from
10.0.0.1:
icmp_seq
42
ttl
64
time
0.914
ms
64
bytes
from
10.0.0.1:
icmp_seq
43
ttl
64
time
1.09
ms
64
bytes
from
10.0.0.1:
icmp_seq
44
ttl
64
time
1.04
ms
64
bytes
from
10.0.0.1:
icmp_seq
45
ttl
64
time
0.946
ms
64
bytes
from
10.0.0.1:
icmp_seq
46
ttl
64
time
0.941
ms
64
bytes
from
10.0.0.1:
icmp_seq
47
ttl
64
time
1.24
ms
64
bytes
from
10.0.0.1:
icmp_seq
48
ttl
64
time
1.01
ms
64
bytes
from
10.0.0.1:
icmp_seq
49
ttl
64
time
0.931
ms
64
bytes
from
10.0.0.1:
icmp_seq
50
ttl
64
time
0.994
ms
64
bytes
from
10.0.0.1:
icmp_seq
51
ttl
64
time
1.33
ms
64
bytes
from
10.0.0.1:
icmp_seq
52
ttl
64
time
0.987
ms
64
bytes
from
10.0.0.1:
icmp_seq
53
ttl
64
time
0.989
ms
64
bytes
from
10.0.0.1:
icmp_seq
54
ttl
64
time
1.08
ms
64
bytes
from
10.0.0.1:
icmp_seq
55
ttl
64
time
0.955
ms
64
bytes
from
10.0.0.1:
icmp_seq
56
ttl
64
time
0.9
ms
64
bytes
from
10.0.0.1:
icmp_seq
57
ttl
64
time
1.14
ms
64
bytes
from
10.0.0.1:
icmp_seq
58
ttl
64
time
0.953
ms
64
bytes
from
10.0.0.1:
icmp_seq
59
ttl
64
time
0.941
ms
64
bytes
from
10.0.0.1:
icmp_seq
60
ttl
64
time
1.02
ms
64
bytes
from
10.0.0.1:
icmp_seq
61
ttl
64
time
1.03
ms
64
bytes
from
10.0.0.1:
icmp_seq
62
ttl
64
time
1.07
ms
64
bytes
from
10.0.0.1:
icmp_seq
63
ttl
64
time
1.02
ms
64
bytes
from
10.0.0.1:
icmp_seq
64
ttl
64
time
1.06
ms
64
bytes
from
10.0.0.1:
icmp_seq
65
ttl
64
time
0.866
ms
64
bytes
from
10.0.0.1:
icmp_seq
66
ttl
64
time
1.01
ms
64
bytes
from
10.0.0.1:
icmp_seq
67
ttl
64
time
0.941
ms
64
bytes
from
10.0.0.1:
icmp_seq
68
ttl
64
time
1.01
ms
64
bytes
from
10.0.0.1:
icmp_seq
69
ttl
64
time
1
ms
64
bytes
from
10.0.0.1:
icmp_seq
70
ttl
64
time
1.03
ms
64
bytes
from
10.0.0.1:
icmp_seq
71
ttl
64
time
0.96
ms
64
bytes
from
10.0.0.1:
icmp_seq
72
ttl
64
time
0.974
ms
64
bytes
from
10.0.0.1:
icmp_seq
73
ttl
64
time
0.914
ms
64
bytes
from
10.0.0.1:
icmp_seq
74
ttl
64
time
0.852
ms
64
bytes
from
10.0.0.1:
icmp_seq
75
ttl
64
time
0.894
ms
64
bytes
from
10.0.0.1:
icmp_seq
76
ttl
64
time
0.991
ms
64
bytes
from
10.0.0.1:
icmp_seq
77
ttl
64
time
0.941
ms
64
bytes
from
10.0.0.1:
icmp_seq
78
ttl
64
time
1.22
ms
XXIV
64
bytes
from
10.0.0.1:
icmp_seq
79
ttl
64
time
0.971
ms
64
bytes
from
10.0.0.1:
icmp_seq
80
ttl
64
time
0.833
ms
64
bytes
from
10.0.0.1:
icmp_seq
81
ttl
64
time
0.974
ms
64
bytes
from
10.0.0.1:
icmp_seq
82
ttl
64
time
0.908
ms
64
bytes
from
10.0.0.1:
icmp_seq
83
ttl
64
time
1.13
ms
64
bytes
from
10.0.0.1:
icmp_seq
84
ttl
64
time
1.01
ms
64
bytes
from
10.0.0.1:
icmp_seq
85
ttl
64
time
0.982
ms
64
bytes
from
10.0.0.1:
icmp_seq
86
ttl
64
time
1.02
ms
64
bytes
from
10.0.0.1:
icmp_seq
87
ttl
64
time
1.05
ms
64
bytes
from
10.0.0.1:
icmp_seq
88
ttl
64
time
0.906
ms
64
bytes
from
10.0.0.1:
icmp_seq
89
ttl
64
time
0.879
ms
64
bytes
from
10.0.0.1:
icmp_seq
90
ttl
64
time
1.11
ms
64
bytes
from
10.0.0.1:
icmp_seq
91
ttl
64
time
0.964
ms
64
bytes
from
10.0.0.1:
icmp_seq
92
ttl
64
time
0.97
ms
64
bytes
from
10.0.0.1:
icmp_seq
93
ttl
64
time
1.03
ms
64
bytes
from
10.0.0.1:
icmp_seq
94
ttl
64
time
0.904
ms
64
bytes
from
10.0.0.1:
icmp_seq
95
ttl
64
time
0.909
ms
64
bytes
from
10.0.0.1:
icmp_seq
96
ttl
64
time
0.971
ms
64
bytes
from
10.0.0.1:
icmp_seq
97
ttl
64
time
0.975
ms
64
bytes
from
10.0.0.1:
icmp_seq
98
ttl
64
time
0.894
ms
64
bytes
from
10.0.0.1:
icmp_seq
99
ttl
64
time
0.917
ms
64
bytes
from
10.0.0.1:
icmp_seq
100
ttl
64
time
1.03
ms
2. Pengukuran OpenVirtex dengan cache flow 64
bytes
from
10.0.0.2:
icmp_seq
1
ttl
64
time
3.48
ms
64
bytes
from
10.0.0.2:
icmp_seq
2
ttl
64
time
0.94
ms
64
bytes
from
10.0.0.2:
icmp_seq
3
ttl
64
time
0.883
ms
64
bytes
from
10.0.0.2:
icmp_seq
4
ttl
64
time
0.867
ms
64
bytes
from
10.0.0.2:
icmp_seq
5
ttl
64
time
0.975
ms
64
bytes
from
10.0.0.2:
icmp_seq
6
ttl
64
time
1.73
ms
64
bytes
from
10.0.0.2:
icmp_seq
7
ttl
64
time
0.918
ms
64
bytes
from
10.0.0.2:
icmp_seq
8
ttl
64
time
0.918
ms
64
bytes
from
10.0.0.2:
icmp_seq
9
ttl
64
time
1.13
ms
64
bytes
from
10.0.0.2:
icmp_seq
10
ttl
64
time
0.897
ms
64
bytes
from
10.0.0.2:
icmp_seq
11
ttl
64
time
4.8
ms
64
bytes
from
10.0.0.2:
icmp_seq
12
ttl
64
time
0.821
ms
64
bytes
from
10.0.0.2:
icmp_seq
13
ttl
64
time
0.915
ms
64
bytes
from
10.0.0.2:
icmp_seq
14
ttl
64
time
0.906
ms
64
bytes
from
10.0.0.2:
icmp_seq
15
ttl
64
time
0.836
ms
64
bytes
from
10.0.0.2:
icmp_seq
16
ttl
64
time
0.851
ms
64
bytes
from
10.0.0.2:
icmp_seq
17
ttl
64
time
1.01
ms
XXV
64
bytes
from
10.0.0.2:
icmp_seq
18
ttl
64
time
0.894
ms
64
bytes
from
10.0.0.2:
icmp_seq
19
ttl
64
time
0.994
ms
64
bytes
from
10.0.0.2:
icmp_seq
20
ttl
64
time
0.878
ms
64
bytes
from
10.0.0.2:
icmp_seq
21
ttl
64
time
3.16
ms
64
bytes
from
10.0.0.2:
icmp_seq
22
ttl
64
time
0.915
ms
64
bytes
from
10.0.0.2:
icmp_seq
23
ttl
64
time
0.95
ms
64
bytes
from
10.0.0.2:
icmp_seq
24
ttl
64
time
0.972
ms
64
bytes
from
10.0.0.2:
icmp_seq
25
ttl
64
time
0.92
ms
64
bytes
from
10.0.0.2:
icmp_seq
26
ttl
64
time
0.911
ms
64
bytes
from
10.0.0.2:
icmp_seq
27
ttl
64
time
0.911
ms
64
bytes
from
10.0.0.2:
icmp_seq
28
ttl
64
time
0.927
ms
64
bytes
from
10.0.0.2:
icmp_seq
29
ttl
64
time
0.975
ms
64
bytes
from
10.0.0.2:
icmp_seq
30
ttl
64
time
1
ms
64
bytes
from
10.0.0.2:
icmp_seq
31
ttl
64
time
3.34
ms
64
bytes
from
10.0.0.2:
icmp_seq
32
ttl
64
time
0.972
ms
64
bytes
from
10.0.0.2:
icmp_seq
33
ttl
64
time
0.888
ms
64
bytes
from
10.0.0.2:
icmp_seq
34
ttl
64
time
0.934
ms
64
bytes
from
10.0.0.2:
icmp_seq
35
ttl
64
time
0.922
ms
64
bytes
from
10.0.0.2:
icmp_seq
36
ttl
64
time
0.916
ms
64
bytes
from
10.0.0.2:
icmp_seq
37
ttl
64
time
0.896
ms
64
bytes
from
10.0.0.2:
icmp_seq
38
ttl
64
time
0.939
ms
64
bytes
from
10.0.0.2:
icmp_seq
39
ttl
64
time
0.912
ms
64
bytes
from
10.0.0.2:
icmp_seq
40
ttl
64
time
0.945
ms
64
bytes
from
10.0.0.2:
icmp_seq
41
ttl
64
time
3.67
ms
64
bytes
from
10.0.0.2:
icmp_seq
42
ttl
64
time
0.87
ms
64
bytes
from
10.0.0.2:
icmp_seq
43
ttl
64
time
0.865
ms
64
bytes
from
10.0.0.2:
icmp_seq
44
ttl
64
time
0.851
ms
64
bytes
from
10.0.0.2:
icmp_seq
45
ttl
64
time
0.982
ms
64
bytes
from
10.0.0.2:
icmp_seq
46
ttl
64
time
0.826
ms
64
bytes
from
10.0.0.2:
icmp_seq
47
ttl
64
time
0.821
ms
64
bytes
from
10.0.0.2:
icmp_seq
48
ttl
64
time
0.884
ms
64
bytes
from
10.0.0.2:
icmp_seq
49
ttl
64
time
0.93
ms
64
bytes
from
10.0.0.2:
icmp_seq
50
ttl
64
time
0.904
ms
64
bytes
from
10.0.0.2:
icmp_seq
51
ttl
64
time
3.48
ms
64
bytes
from
10.0.0.2:
icmp_seq
52
ttl
64
time
0.821
ms
64
bytes
from
10.0.0.2:
icmp_seq
53
ttl
64
time
0.923
ms
64
bytes
from
10.0.0.2:
icmp_seq
54
ttl
64
time
0.921
ms
64
bytes
from
10.0.0.2:
icmp_seq
55
ttl
64
time
0.824
ms
64
bytes
from
10.0.0.2:
icmp_seq
56
ttl
64
time
0.79
ms
64
bytes
from
10.0.0.2:
icmp_seq
57
ttl
64
time
0.857
ms
64
bytes
from
10.0.0.2:
icmp_seq
58
ttl
64
time
0.878
ms
64
bytes
from
10.0.0.2:
icmp_seq
59
ttl
64
time
0.847
ms
64
bytes
from
10.0.0.2:
icmp_seq
60
ttl
64
time
0.812
ms
XXVI
64
bytes
from
10.0.0.2:
icmp_seq
61
ttl
64
time
3.48
ms
64
bytes
from
10.0.0.2:
icmp_seq
62
ttl
64
time
0.821
ms
64
bytes
from
10.0.0.2:
icmp_seq
63
ttl
64
time
0.923
ms
64
bytes
from
10.0.0.2:
icmp_seq
64
ttl
64
time
0.921
ms
64
bytes
from
10.0.0.2:
icmp_seq
65
ttl
64
time
0.824
ms
64
bytes
from
10.0.0.2:
icmp_seq
66
ttl
64
time
0.79
ms
64
bytes
from
10.0.0.2:
icmp_seq
67
ttl
64
time
0.857
ms
64
bytes
from
10.0.0.2:
icmp_seq
68
ttl
64
time
0.878
ms
64
bytes
from
10.0.0.2:
icmp_seq
69
ttl
64
time
0.847
ms
64
bytes
from
10.0.0.2:
icmp_seq
70
ttl
64
time
0.812
ms
64
bytes
from
10.0.0.2:
icmp_seq
71
ttl
64
time
3.53
ms
64
bytes
from
10.0.0.2:
icmp_seq
72
ttl
64
time
1.05
ms
64
bytes
from
10.0.0.2:
icmp_seq
73
ttl
64
time
1.93
ms
64
bytes
from
10.0.0.2:
icmp_seq
74
ttl
64
time
2.1
ms
64
bytes
from
10.0.0.2:
icmp_seq
75
ttl
64
time
0.827
ms
64
bytes
from
10.0.0.2:
icmp_seq
76
ttl
64
time
0.96
ms
64
bytes
from
10.0.0.2:
icmp_seq
77
ttl
64
time
1.11
ms
64
bytes
from
10.0.0.2:
icmp_seq
78
ttl
64
time
0.91
ms
64
bytes
from
10.0.0.2:
icmp_seq
79
ttl
64
time
0.942
ms
64
bytes
from
10.0.0.2:
icmp_seq
80
ttl
64
time
0.866
ms
64
bytes
from
10.0.0.2:
icmp_seq
81
ttl
64
time
3.42
ms
64
bytes
from
10.0.0.2:
icmp_seq
82
ttl
64
time
1.08
ms
64
bytes
from
10.0.0.2:
icmp_seq
83
ttl
64
time
0.991
ms
64
bytes
from
10.0.0.2:
icmp_seq
84
ttl
64
time
1.21
ms
64
bytes
from
10.0.0.2:
icmp_seq
85
ttl
64
time
0.965
ms
64
bytes
from
10.0.0.2:
icmp_seq
86
ttl
64
time
1.02
ms
64
bytes
from
10.0.0.2:
icmp_seq
87
ttl
64
time
1.94
ms
64
bytes
from
10.0.0.2:
icmp_seq
88
ttl
64
time
0.87
ms
64
bytes
from
10.0.0.2:
icmp_seq
89
ttl
64
time
1.01
ms
64
bytes
from
10.0.0.2:
icmp_seq
90
ttl
64
time
0.999
ms
64
bytes
from
10.0.0.2:
icmp_seq
91
ttl
64
time
3.21
ms
64
bytes
from
10.0.0.2:
icmp_seq
92
ttl
64
time
0.954
ms
64
bytes
from
10.0.0.2:
icmp_seq
93
ttl
64
time
0.966
ms
64
bytes
from
10.0.0.2:
icmp_seq
94
ttl
64
time
0.875
ms
64
bytes
from
10.0.0.2:
icmp_seq
95
ttl
64
time
0.905
ms
64
bytes
from
10.0.0.2:
icmp_seq
96
ttl
64
time
0.897
ms
64
bytes
from
10.0.0.2:
icmp_seq
97
ttl
64
time
0.898
ms
64
bytes
from
10.0.0.2:
icmp_seq
98
ttl
64
time
0.923
ms
64
bytes
from
10.0.0.2:
icmp_seq
99
ttl
64
time
0.865
ms
64
bytes
from
10.0.0.2:
icmp_seq
100
ttl
64
time
0.891
ms
XXVII
3. Pengukuran OpenVirtex tanpa cache flow 64
bytes
from
10.0.0.2:
icmp_seq
1
ttl
64
time
33.3
ms
64
bytes
from
10.0.0.2:
icmp_seq
2
ttl
64
time
3.35
ms
64
bytes
from
10.0.0.2:
icmp_seq
3
ttl
64
time
3.5
ms
64
bytes
from
10.0.0.2:
icmp_seq
4
ttl
64
time
26.3
ms
64
bytes
from
10.0.0.2:
icmp_seq
5
ttl
64
time
144
ms
64
bytes
from
10.0.0.2:
icmp_seq
6
ttl
64
time
36.3
ms
64
bytes
from
10.0.0.2:
icmp_seq
7
ttl
64
time
3.3
ms
64
bytes
from
10.0.0.2:
icmp_seq
8
ttl
64
time
37.4
ms
64
bytes
from
10.0.0.2:
icmp_seq
9
ttl
64
time
31.8
ms
64
bytes
from
10.0.0.2:
icmp_seq
10
ttl
64
time
27.7
ms
64
bytes
from
10.0.0.2:
icmp_seq
11
ttl
64
time
3.2
ms
64
bytes
from
10.0.0.2:
icmp_seq
12
ttl
64
time
40.5
ms
64
bytes
from
10.0.0.2:
icmp_seq
13
ttl
64
time
21.6
ms
64
bytes
from
10.0.0.2:
icmp_seq
14
ttl
64
time
3.35
ms
64
bytes
from
10.0.0.2:
icmp_seq
15
ttl
64
time
28.4
ms
64
bytes
from
10.0.0.2:
icmp_seq
16
ttl
64
time
43.6
ms
64
bytes
from
10.0.0.2:
icmp_seq
17
ttl
64
time
3.17
ms
64
bytes
from
10.0.0.2:
icmp_seq
18
ttl
64
time
26.1
ms
64
bytes
from
10.0.0.2:
icmp_seq
19
ttl
64
time
31.6
ms
64
bytes
from
10.0.0.2:
icmp_seq
20
ttl
64
time
2.98
ms
64
bytes
from
10.0.0.2:
icmp_seq
21
ttl
64
time
28.3
ms
64
bytes
from
10.0.0.2:
icmp_seq
22
ttl
64
time
29.1
ms
64
bytes
from
10.0.0.2:
icmp_seq
23
ttl
64
time
3.48
ms
64
bytes
from
10.0.0.2:
icmp_seq
24
ttl
64
time
35.5
ms
64
bytes
from
10.0.0.2:
icmp_seq
25
ttl
64
time
26
ms
64
bytes
from
10.0.0.2:
icmp_seq
26
ttl
64
time
3.24
ms
64
bytes
from
10.0.0.2:
icmp_seq
27
ttl
64
time
34.7
ms
64
bytes
from
10.0.0.2:
icmp_seq
28
ttl
64
time
25
ms
64
bytes
from
10.0.0.2:
icmp_seq
29
ttl
64
time
3.54
ms
64
bytes
from
10.0.0.2:
icmp_seq
30
ttl
64
time
28.9
ms
64
bytes
from
10.0.0.2:
icmp_seq
31
ttl
64
time
35.1
ms
64
bytes
from
10.0.0.2:
icmp_seq
32
ttl
64
time
3.09
ms
64
bytes
from
10.0.0.2:
icmp_seq
33
ttl
64
time
24.5
ms
64
bytes
from
10.0.0.2:
icmp_seq
34
ttl
64
time
23.8
ms
64
bytes
from
10.0.0.2:
icmp_seq
35
ttl
64
time
2.85
ms
64
bytes
from
10.0.0.2:
icmp_seq
36
ttl
64
time
24.6
ms
64
bytes
from
10.0.0.2:
icmp_seq
37
ttl
64
time
26.7
ms
64
bytes
from
10.0.0.2:
icmp_seq
38
ttl
64
time
3.15
ms
64
bytes
from
10.0.0.2:
icmp_seq
39
ttl
64
time
32.1
ms
64
bytes
from
10.0.0.2:
icmp_seq
40
ttl
64
time
25.8
ms
XXVIII
64
bytes
from
10.0.0.2:
icmp_seq
41
ttl
64
time
3.44
ms
64
bytes
from
10.0.0.2:
icmp_seq
42
ttl
64
time
24.2
ms
64
bytes
from
10.0.0.2:
icmp_seq
43
ttl
64
time
24.2
ms
64
bytes
from
10.0.0.2:
icmp_seq
44
ttl
64
time
3.23
ms
64
bytes
from
10.0.0.2:
icmp_seq
45
ttl
64
time
57.7
ms
64
bytes
from
10.0.0.2:
icmp_seq
46
ttl
64
time
32.1
ms
64
bytes
from
10.0.0.2:
icmp_seq
48
ttl
64
time
46.8
ms
64
bytes
from
10.0.0.2:
icmp_seq
49
ttl
64
time
23.8
ms
64
bytes
from
10.0.0.2:
icmp_seq
50
ttl
64
time
3.07
ms
64
bytes
from
10.0.0.2:
icmp_seq
52
ttl
64
time
23.8
ms
64
bytes
from
10.0.0.2:
icmp_seq
53
ttl
64
time
37
ms
64
bytes
from
10.0.0.2:
icmp_seq
54
ttl
64
time
39.4
ms
64
bytes
from
10.0.0.2:
icmp_seq
55
ttl
64
time
22
ms
64
bytes
from
10.0.0.2:
icmp_seq
56
ttl
64
time
23.4
ms
64
bytes
from
10.0.0.2:
icmp_seq
57
ttl
64
time
21.7
ms
64
bytes
from
10.0.0.2:
icmp_seq
58
ttl
64
time
23
ms
64
bytes
from
10.0.0.2:
icmp_seq
59
ttl
64
time
22.1
ms
64
bytes
from
10.0.0.2:
icmp_seq
60
ttl
64
time
23.5
ms
64
bytes
from
10.0.0.2:
icmp_seq
61
ttl
64
time
25.7
ms
64
bytes
from
10.0.0.2:
icmp_seq
62
ttl
64
time
23.4
ms
64
bytes
from
10.0.0.2:
icmp_seq
63
ttl
64
time
23.9
ms
64
bytes
from
10.0.0.2:
icmp_seq
64
ttl
64
time
28.2
ms
64
bytes
from
10.0.0.2:
icmp_seq
65
ttl
64
time
28.9
ms
64
bytes
from
10.0.0.2:
icmp_seq
66
ttl
64
time
26.9
ms
64
bytes
from
10.0.0.2:
icmp_seq
67
ttl
64
time
25.7
ms
64
bytes
from
10.0.0.2:
icmp_seq
68
ttl
64
time
23.5
ms
64
bytes
from
10.0.0.2:
icmp_seq
69
ttl
64
time
24.9
ms
64
bytes
from
10.0.0.2:
icmp_seq
70
ttl
64
time
24.4
ms
64
bytes
from
10.0.0.2:
icmp_seq
71
ttl
64
time
24.7
ms
64
bytes
from
10.0.0.2:
icmp_seq
72
ttl
64
time
24.4
ms
64
bytes
from
10.0.0.2:
icmp_seq
73
ttl
64
time
24.7
ms
64
bytes
from
10.0.0.2:
icmp_seq
74
ttl
64
time
24.6
ms
64
bytes
from
10.0.0.2:
icmp_seq
75
ttl
64
time
22.9
ms
64
bytes
from
10.0.0.2:
icmp_seq
76
ttl
64
time
25
ms
64
bytes
from
10.0.0.2:
icmp_seq
77
ttl
64
time
23.5
ms
64
bytes
from
10.0.0.2:
icmp_seq
78
ttl
64
time
26.8
ms
64
bytes
from
10.0.0.2:
icmp_seq
79
ttl
64
time
31.6
ms
64
bytes
from
10.0.0.2:
icmp_seq
80
ttl
64
time
56.5
ms
64
bytes
from
10.0.0.2:
icmp_seq
81
ttl
64
time
26
ms
64
bytes
from
10.0.0.2:
icmp_seq
82
ttl
64
time
33.2
ms
64
bytes
from
10.0.0.2:
icmp_seq
83
ttl
64
time
24.7
ms
64
bytes
from
10.0.0.2:
icmp_seq
84
ttl
64
time
24
ms
64
bytes
from
10.0.0.2:
icmp_seq
85
ttl
64
time
131
ms
XXIX
64
bytes
from
10.0.0.2:
icmp_seq
86
ttl
64
time
25.4
ms
64
bytes
from
10.0.0.2:
icmp_seq
87
ttl
64
time
23.9
ms
64
bytes
from
10.0.0.2:
icmp_seq
88
ttl
64
time
24.8
ms
64
bytes
from
10.0.0.2:
icmp_seq
89
ttl
64
time
24.8
ms
64
bytes
from
10.0.0.2:
icmp_seq
90
ttl
64
time
24
ms
64
bytes
from
10.0.0.2:
icmp_seq
91
ttl
64
time
21.9
ms
64
bytes
from
10.0.0.2:
icmp_seq
92
ttl
64
time
26.4
ms
64
bytes
from
10.0.0.2:
icmp_seq
93
ttl
64
time
22.6
ms
64
bytes
from
10.0.0.2:
icmp_seq
94
ttl
64
time
23.7
ms
64
bytes
from
10.0.0.2:
icmp_seq
95
ttl
64
time
25.8
ms
64
bytes
from
10.0.0.2:
icmp_seq
96
ttl
64
time
26.3
ms
64
bytes
from
10.0.0.2:
icmp_seq
97
ttl
64
time
24.4
ms
64
bytes
from
10.0.0.2:
icmp_seq
98
ttl
64
time
23.8
ms
64
bytes
from
10.0.0.2:
icmp_seq
99
ttl
64
time
23.2
ms
64
bytes
from
10.0.0.2:
icmp_seq
100
ttl
64
time
20.6
ms
64
bytes
from
10.0.0.2:
icmp_seq
99
ttl
64
time
22.5
ms
64
bytes
from
10.0.0.2:
icmp_seq
100
ttl
64
time
23.1
ms
4. Pengukuran testbed 64
bytes
from
10.10.10.2:
icmp_seq
1
ttl
64
time
3.51
ms
64
bytes
from
10.10.10.2:
icmp_seq
2
ttl
64
time
1.04
ms
64
bytes
from
10.10.10.2:
icmp_seq
3
ttl
64
time
0.9
ms
64
bytes
from
10.10.10.2:
icmp_seq
4
ttl
64
time
0.99
ms
64
bytes
from
10.10.10.2:
icmp_seq
5
ttl
64
time
0.876
ms
64
bytes
from
10.10.10.2:
icmp_seq
6
ttl
64
time
0.908
ms
64
bytes
from
10.10.10.2:
icmp_seq
7
ttl
64
time
1.04
ms
64
bytes
from
10.10.10.2:
icmp_seq
8
ttl
64
time
1.02
ms
64
bytes
from
10.10.10.2:
icmp_seq
9
ttl
64
time
0.983
ms
64
bytes
from
10.10.10.2:
icmp_seq
10
ttl
64
time
0.885
ms
64
bytes
from
10.10.10.2:
icmp_seq
11
ttl
64
time
3.51
ms
64
bytes
from
10.10.10.2:
icmp_seq
12
ttl
64
time
1.04
ms
64
bytes
from
10.10.10.2:
icmp_seq
13
ttl
64
time
0.9
ms
64
bytes
from
10.10.10.2:
icmp_seq
14
ttl
64
time
0.99
ms
64
bytes
from
10.10.10.2:
icmp_seq
15
ttl
64
time
0.876
ms
64
bytes
from
10.10.10.2:
icmp_seq
16
ttl
64
time
0.908
ms
64
bytes
from
10.10.10.2:
icmp_seq
17
ttl
64
time
1.04
ms
64
bytes
from
10.10.10.2:
icmp_seq
18
ttl
64
time
1.02
ms
64
bytes
from
10.10.10.2:
icmp_seq
19
ttl
64
time
0.983
ms
64
bytes
from
10.10.10.2:
icmp_seq
20
ttl
64
time
0.885
ms
64
bytes
from
10.10.10.2:
icmp_seq
21
ttl
64
time
7
ms
64
bytes
from
10.10.10.2:
icmp_seq
22
ttl
64
time
2.55
ms
64
bytes
from
10.10.10.2:
icmp_seq
23
ttl
64
time
0.928
ms
XXX
64
bytes
from
10.10.10.2:
icmp_seq
24
ttl
64
time
0.894
ms
64
bytes
from
10.10.10.2:
icmp_seq
25
ttl
64
time
1.35
ms
64
bytes
from
10.10.10.2:
icmp_seq
26
ttl
64
time
2.36
ms
64
bytes
from
10.10.10.2:
icmp_seq
27
ttl
64
time
3.28
ms
64
bytes
from
10.10.10.2:
icmp_seq
28
ttl
64
time
0.895
ms
64
bytes
from
10.10.10.2:
icmp_seq
29
ttl
64
time
1.52
ms
64
bytes
from
10.10.10.2:
icmp_seq
30
ttl
64
time
2.55
ms
64
bytes
from
10.10.10.2:
icmp_seq
31
ttl
64
time
6.61
ms
64
bytes
from
10.10.10.2:
icmp_seq
32
ttl
64
time
2.83
ms
64
bytes
from
10.10.10.2:
icmp_seq
33
ttl
64
time
1.08
ms
64
bytes
from
10.10.10.2:
icmp_seq
34
ttl
64
time
0.868
ms
64
bytes
from
10.10.10.2:
icmp_seq
35
ttl
64
time
0.98
ms
64
bytes
from
10.10.10.2:
icmp_seq
36
ttl
64
time
0.906
ms
64
bytes
from
10.10.10.2:
icmp_seq
37
ttl
64
time
3.49
ms
64
bytes
from
10.10.10.2:
icmp_seq
38
ttl
64
time
0.977
ms
64
bytes
from
10.10.10.2:
icmp_seq
39
ttl
64
time
0.806
ms
64
bytes
from
10.10.10.2:
icmp_seq
40
ttl
64
time
0.826
ms
64
bytes
from
10.10.10.2:
icmp_seq
41
ttl
64
time
7.6
ms
64
bytes
from
10.10.10.2:
icmp_seq
42
ttl
64
time
2.23
ms
64
bytes
from
10.10.10.2:
icmp_seq
43
ttl
64
time
2.2
ms
64
bytes
from
10.10.10.2:
icmp_seq
44
ttl
64
time
1.12
ms
64
bytes
from
10.10.10.2:
icmp_seq
45
ttl
64
time
0.915
ms
64
bytes
from
10.10.10.2:
icmp_seq
46
ttl
64
time
0.971
ms
64
bytes
from
10.10.10.2:
icmp_seq
47
ttl
64
time
3.42
ms
64
bytes
from
10.10.10.2:
icmp_seq
48
ttl
64
time
0.987
ms
64
bytes
from
10.10.10.2:
icmp_seq
49
ttl
64
time
1.11
ms
64
bytes
from
10.10.10.2:
icmp_seq
50
ttl
64
time
0.978
ms
64
bytes
from
10.10.10.2:
icmp_seq
51
ttl
64
time
6.79
ms
64
bytes
from
10.10.10.2:
icmp_seq
52
ttl
64
time
2.31
ms
64
bytes
from
10.10.10.2:
icmp_seq
53
ttl
64
time
2.57
ms
64
bytes
from
10.10.10.2:
icmp_seq
54
ttl
64
time
0.839
ms
64
bytes
from
10.10.10.2:
icmp_seq
55
ttl
64
time
0.946
ms
64
bytes
from
10.10.10.2:
icmp_seq
56
ttl
64
time
0.872
ms
64
bytes
from
10.10.10.2:
icmp_seq
57
ttl
64
time
3.02
ms
64
bytes
from
10.10.10.2:
icmp_seq
58
ttl
64
time
0.982
ms
64
bytes
from
10.10.10.2:
icmp_seq
59
ttl
64
time
3.04
ms
64
bytes
from
10.10.10.2:
icmp_seq
60
ttl
64
time
1
ms
64
bytes
from
10.10.10.2:
icmp_seq
61
ttl
64
time
6.67
ms
64
bytes
from
10.10.10.2:
icmp_seq
62
ttl
64
time
2.69
ms
64
bytes
from
10.10.10.2:
icmp_seq
63
ttl
64
time
0.966
ms
64
bytes
from
10.10.10.2:
icmp_seq
64
ttl
64
time
2.71
ms
64
bytes
from
10.10.10.2:
icmp_seq
65
ttl
64
time
0.91
ms
64
bytes
from
10.10.10.2:
icmp_seq
66
ttl
64
time
0.838
ms
XXXI
64
bytes
from
10.10.10.2:
icmp_seq
67
ttl
64
time
2.76
ms
64
bytes
from
10.10.10.2:
icmp_seq
68
ttl
64
time
0.999
ms
64
bytes
from
10.10.10.2:
icmp_seq
69
ttl
64
time
2.97
ms
64
bytes
from
10.10.10.2:
icmp_seq
70
ttl
64
time
1.04
ms
64
bytes
from
10.10.10.2:
icmp_seq
71
ttl
64
time
7.29
ms
64
bytes
from
10.10.10.2:
icmp_seq
72
ttl
64
time
3.91
ms
64
bytes
from
10.10.10.2:
icmp_seq
73
ttl
64
time
0.975
ms
64
bytes
from
10.10.10.2:
icmp_seq
74
ttl
64
time
0.937
ms
64
bytes
from
10.10.10.2:
icmp_seq
75
ttl
64
time
0.94
ms
64
bytes
from
10.10.10.2:
icmp_seq
76
ttl
64
time
1
ms
64
bytes
from
10.10.10.2:
icmp_seq
77
ttl
64
time
3.13
ms
64
bytes
from
10.10.10.2:
icmp_seq
78
ttl
64
time
1.5
ms
64
bytes
from
10.10.10.2:
icmp_seq
79
ttl
64
time
0.874
ms
64
bytes
from
10.10.10.2:
icmp_seq
80
ttl
64
time
0.903
ms
64
bytes
from
10.10.10.2:
icmp_seq
81
ttl
64
time
7.84
ms
64
bytes
from
10.10.10.2:
icmp_seq
82
ttl
64
time
2.37
ms
64
bytes
from
10.10.10.2:
icmp_seq
83
ttl
64
time
0.886
ms
64
bytes
from
10.10.10.2:
icmp_seq
84
ttl
64
time
0.846
ms
64
bytes
from
10.10.10.2:
icmp_seq
85
ttl
64
time
2.92
ms
64
bytes
from
10.10.10.2:
icmp_seq
86
ttl
64
time
0.725
ms
64
bytes
from
10.10.10.2:
icmp_seq
87
ttl
64
time
3.14
ms
64
bytes
from
10.10.10.2:
icmp_seq
88
ttl
64
time
1.09
ms
64
bytes
from
10.10.10.2:
icmp_seq
89
ttl
64
time
0.73
ms
64
bytes
from
10.10.10.2:
icmp_seq
90
ttl
64
time
3.09
ms
64
bytes
from
10.10.10.2:
icmp_seq
91
ttl
64
time
6.79
ms
64
bytes
from
10.10.10.2:
icmp_seq
92
ttl
64
time
2.31
ms
64
bytes
from
10.10.10.2:
icmp_seq
93
ttl
64
time
2.57
ms
64
bytes
from
10.10.10.2:
icmp_seq
94
ttl
64
time
0.839
ms
64
bytes
from
10.10.10.2:
icmp_seq
95
ttl
64
time
0.946
ms
64
bytes
from
10.10.10.2:
icmp_seq
96
ttl
64
time
0.872
ms
64
bytes
from
10.10.10.2:
icmp_seq
97
ttl
64
time
3.02
ms
64
bytes
from
10.10.10.2:
icmp_seq
98
ttl
64
time
0.982
ms
64
bytes
from
10.10.10.2:
icmp_seq
99
ttl
64
time
3.04
ms
64
bytes
from
10.10.10.2:
icmp_seq
100
ttl
64
time
1
ms
5. Pengujian Througput FlowVisor
XXXII
Pengujian Througput TCP No pengujian
Througput(Mbits/second) 1
931
2
925
3
936
4
937
5
933
6
904
7
930
8
936
9
925
10
867
Pengujian Througput UDP No pengujian
Througput(Mbits/second) 1
993
2
993
3
994
4
995
5
993
6
995
7
993
8
994
9
993
10
994
6. Pengujian Througput OpenVIrtex Pengujian Througput TCP No pengujian Througput(Mbits/second) 1
904
2
946
3
841
4
830
5
929
6
904
7
938
XXXIII
8
948
9
936
10
948
Pengujian Througput UDP No pengujian Througput(Mbits/second) 1
992
2
992
3
994
4
993
5
993
6
995
7
993
8
993
9
993
10
994
7. Pengujian Througput testbed Pengujian Througput TCP No pengujian Througput(Mbits/second) 1
925
2
941
3
932
4
930
5
929
6
950
7
941
8
952
9
953
10
943
Pengujian Througput UDP No pengujian Througput(Mbits/second) 1
996
2
998
XXXIV
3
991
4
994
5
997
6
995
7
993
8
993
9
993
10
994
XXXV