Implementasi Load-Balancing dengan Metode Round Robin dalam Software Defined Networking (SDN) Menggunakan Controller Pox

(1)

IMPLEMENTASI

LOAD-BALANCING

DENGAN METODE

ROUND ROBIN

DALAM

SOF TWARE DEF INED

NETWORKING

(SDN) MENGGUNAKAN

CONTROLLER

POX

DRAFT SKRIPSI

DWINSON SITOHANG

131421005

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN


(2)

IMPLEMENTASI

LOAD-BALANCING

DENGAN METODE

ROUND ROBIN

DALAM

SOF TWARE DEF INED

NETWORKING

(SDN) MENGGUNAKAN

CONTROLLER

POX

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijasah Sarjana Ilmu Komputer

DWINSON SITOHANG 131421005

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA MEDAN


(3)

PERSETUJUAN

Judul : IMPLEMENTASI LOAD-BALANCING DENGAN METODE ROUND ROBIN DALAM SOFTWARE

DEFINED NETWORKING (SDN)

MENGGUNAKAN CONTROLLER POX

Kategori : SKRIPSI

Nama : DWINSON SITOHANG

Nomor Induk Mahasiswa : 131421005

Program Studi : EKSTENSI S1 ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Februari 2015 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Handrizal, S.Si, M.Comp.Sc Drs. Marihat Situmorang. M.Kom

NIP.- NIP. 1961203171991031001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001


(4)

PERNYATAAN

IMPLEMENTASI LOAD-BALANCING DENGAN METODE ROUND ROBIN DALAM SOFTWARE DEFINED NETWORKING (SDN) MENGGUNAKAN

CONTROLLER POX SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Februari 2015

Dwinson Sitohang NIM. 131421005


(5)

PENGHARGAAN

Segala puji dan syukur Penulis ucapkan kepada Tuhan Yesus Kristus yang senantiasa melimpahkan rahmat dan karunia-Nya sehingga skripsi ini dapat diselesaikan.

Ucapan terima kasih Penulis sampaikan kepada semua pihak yang telah membantu Penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung, teristimewa untuk kedua orangtua terkasih. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada :

1. Bapak Prof. Subhilhar, Ph.D selaku Pelaksana Jabatan Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

5. Bapak Drs. Marihat Situmorang. M.Kom selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.

6. Bapak Handrizal, S.Si, M.Comp.Sc selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.


(6)

7. Bapak Dr. Syahril Efendi, S.Si, M.IT selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini. 8. Bapak Sajadin Sembiring, S.Si, M.Comp,Sc selaku Dosen Pembanding II

yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

9. Semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

10. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.

Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.

Medan, Februari 2015 Penulis,


(7)

ABSTRAK

Perangkat jaringan komputer seperti Router dan Switch biasanya sudah memiliki management interface. Dengan kata lain pengguna hanya dapat melakukan konfigurasi melalui management interface pada perangkat tersebut dalam menerapkan fitur yang diinginkan, sehingga apabila seseorang ingin bereksperimen dengan beberapa teknik seperti teknik load-balancing baru atau routing protocol baru maka dia tidak akan dapat melakukan hal itu karena perangkat tidak mendukung teknik dan protokol tersebut. Software Defined Networking (SDN) memisahkan data-plane dan control-plane, pemisahan ini memberi kemampuan untuk memprogram secara langsung perangkat jaringan komputer seperti Switch dan Router sesuai dengan kebijakan yang diberikan. Softwa re Defined Networking dapat diterapkan dengan menggunakan salah satu controller terpusat yaitu POX yang bertugas untuk mengontrol segala arus data yang melewati Switch dan Router sehingga kebijakan yang telah ditetapkan tersebut langsung diimplementasikan sesuai dengan karakteristik jaringan yang ada saat itu juga. Load balancing adalah sebuah teknik untuk mendistribusikan beban trafik pada dua atau lebih jalur koneksi secara seimbang agar trafik dapat berjalan optimal. Pada penelitian ini dilakukan pengujian pada sebuah jaringan komputer dengan jumlah server sebanyak 3 unit dan jumlah client sebanyak 15 unit. Masing-masing client melakukan koneksi secara acak dengan cara mengirimkan paket Internet Control Message Protocol (ICMP) terhadap alamat IP publik dan controller POX melakukkan pemetaan client tersebut terhadap server berdasarkan metode round-robin. Ketika seluruh client melakukan request paket HyperText Transfer Protocol (HTTP) terhadap alamat IP publik, response time yang diperoleh ketika load-balancing tidak diterapkan lebih kurang tiga (3) kali lebih lama daripada response time yang diperoleh pada saat teknik load-balancing diterapkan.

Kata kunci: Management interface, Softwa re Defined Netwoking, Data -plane, Control-plane, Load balancing, Round-robin, Internet Control Message Protocol, Response time.


(8)

IMPLEMENTATION OF LOAD BALANCING WITH ROUND

-ROBIN METHOD IN SOFTWARE DEFINED NETWORKING

(SDN) USE CONTROLLER POX

ABSTRACT

Computer networking devices such as Routers and Switches usually already have a management interface. In other words, the user can only perform the configuration via management interface on these devices to implement the desired features, so if someone wants to experiment with some techniques such as new load-balancing techniques or new routing protocol then he will not be able to do that because the device does not support the techniques and protocols. Software Defined Networking (SDN) separates the data-plane and control-plane, this separation gives the ability to directly program the computer networking devices such as Switches and Routers in accordance with a given policy. Software Defined Networking can be applied using either a centralized controller that POX whose task is to control all the data stream that passes through Switch and Router that established policy is immediately implemented in accordance with the characteristics of the existing network currently. Load balancing is a technique to distribute the traffic load on the connection of two or more lanes in a balanced way so that traffic can run optimally. In this study conducted testing on a computer network within 15 unit of clients and 3 unit of servers. Each client to connect randomly by sending Internet Control Message Protocol (ICMP) packets to the public IP address and POX controller do the mapping of the clients to the servers based on the round-robin method. When all of the clients make the requesting for HyperText Transfer Protocol (HTTP) packets to the public IP address, response time obtained when load-balancing is not applied approximately three (3) times longer than the response time obtained when the load-balancing techniques are applied.

Keywords: Management interface, Software Defined Netwoking, Data-plane, Control-plane, Load balancing, Round-robin, Internet Control Message Protocol, Response time.


(9)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar 8i

Daftar Lampiran 8i

BAB 1 PENDAHULUAN 1.1 Latar Belakang 1 1.2 Rumusan Masalah 3 1.3 Batasan Masalah 3 1.4 Tujuan Penelitian 3 1.5 Manfaat Penelitian 4 1.6 Metodologi Penelitian 4 1.7 Sistematika Penulisan 5 BAB 2 LANDASAN TEORI 2.1 Softwa re Defined Networking (SDN) 7

2.1.1 Konsep Dasar Softwa re Defined Networking 7

2.1.2 Arsitektur Softwa re Defined Networking (SDN) 9

2.1.3 Controller POX 11

2.2 Load-Balancing 12

2.3 Round-Robin 13

2.4 Contoh Kasus Load Balancing dan dengan Perhitungan Metode Round Robin 16

2.5 Penelitian Terkait 19

BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Pemilihan Server 20

3.2 Perancangan 24


(10)

Round Robin dalam Software Defined Networking Menggunakan Controller POX

3.2.2 Perancangan Jaringan dalam Emulator Mininet 27

BAB 4 IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi 31

4.1.1 Menjalankan Controller POX 31 4.1.2 MenjalankanPerintah Ping pada Masing-masing

Client

33

4.2 Pengujian 58

4.2.1 Pengujian Terhadap Paket HTTP 58 4.2.2 Analisis Sebelum dan Setelah Load-Balancing 59

BAB 5 KESIMPULAN DAN SARAN

5.1 Kesimpulan 62

5.2 Saran 63


(11)

DAFTAR TABEL

Halaman Tabel 3.1 Perangkat yang dibutuhkan beserta atribut-atribut

pendukung

23 Tabel 3.2 Hasil perhitungan posisi server berdasarkan metode round

robin


(12)

DAFTAR GAMBAR

Halaman Gambar 2.1 Flowchart arus paket dalam Switch OpenFlow 9 Gambar 2.2 Arsitektur Softwa re Defined Networking 10 Gambar 2.3 Controller layer (POX) dalam Arsitektur Softwa re

Defined Networking

11

Gambar 2.4 Komponen load-balancing 13

Gambar 2.5 Antrian dalam Algoritma Round Robin 14 Gambar 2.6 Flowchart Round-RobinLoad-Balancing 15 Gambar 2.7 Contoh Kasus Load Balancing dan dengan Perhitungan

Metode Round Robin

18 Gambar 3.1 Flowchart dari pengimplementasian load-balancing

dengan metode round-robin dalam software defined networking menggunakan controller POX

27

Gambar 3.2 Topologi jaringan yang akan dirancang 28 Gambar 3.3 Flowchart topologi jaringan yang dibuat di dalam

Mininet (secara garis besar)

29 Gambar 3.4 Flowchart topologi jaringan yang dibuat di dalam

Mininet (perluasan proses SimpleTest)

30 Gambar 4.1 Controller POX yang telah dijalankan 32


(13)

Gambar 4.2 Client ke-4 melakukan ping ke alamat publik 10.0.0.100 33 Gambar 4.3 Hasil pemetaan client ke-4 kepada server 10.0.0.16 oleh

controller POX

34 Gambar 4.4 Hasil capture paket data ICMP dari client ke-4 melalui

aplikasi Wireshark

34 Gambar 4.5 Client ke-10 melakukan ping ke alamat publik

10.0.0.100

35 Gambar 4.6 Hasil pemetaan client ke-10 kepada server 10.0.0.17

oleh controller POX

35 Gambar 4.7 Hasil capture paket data ICMP dari client ke-10 melalui

aplikasi Wireshark

35 Gambar 4.8 Client ke-1 melakukan ping ke alamat publik 10.0.0.100 36 Gambar 4.9 Hasil pemetaan client ke-1 kepada server 10.0.0.18 oleh

controller POX

Gambar 4.10 Hasil capture paket data ICMP dari client ke-1 melalui aplikasi Wireshark

37 Gambar 4.11 Client ke-7 melakukan ping ke alamat publik 10.0.0.100 37 Gambar 4.12 Hasil pemetaan client ke-7 kepada server 10.0.0.16 oleh

controller POX

38 Gambar 4.13 Hasil capture paket data ICMP dari client ke-7 melalui

aplikasi Wireshark

38 Gambar 4.14 Client ke-14 melakukan ping ke alamat publik

10.0.0.100

39 Gambar 4.15 Hasil pemetaan client ke-14 kepada server 10.0.0.17

oleh controller POX

39 Gambar 4.16 Hasil capture paket data ICMP dari client ke-14 melalui

aplikasi Wireshark

40 Gambar 4.17 Client ke-12 melakukan ping ke alamat publik

10.0.0.100

40 Gambar 4.18 Hasil pemetaan client ke-12 kepada server 10.0.0.18

oleh controller POX

41 Gambar 4.19 Hasil capture paket data ICMP dari client ke-12 melalui

aplikasi Wireshark

41 Gambar 4.20 Client ke-3 melakukan ping ke alamat publik 10.0.0.100 42 Gambar 4.21 Hasil pemetaan client ke-3 kepada server 10.0.0.16 oleh

controller POX

42 Gambar 4.22 Hasil capture paket data ICMP dari client ke-3 melalui

aplikasi Wireshark

43 Gambar 4.23 Client ke-9 melakukan ping ke alamat publik 10.0.0.100 43 Gambar 4.24 Hasil pemetaan client ke-9 kepada server 10.0.0.17 oleh

controller POX


(14)

Gambar 4.25 Hasil capture paket data ICMP dari client ke-9 melalui aplikasi Wireshark

44 Gambar 4.26 Client ke-6 melakukan ping ke alamat publik 10.0.0.100 45 Gambar 4.27 Hasil pemetaan client ke-6 kepada server 10.0.0.18 oleh

controller POX

45 Gambar 4.28 Hasil capture paket data ICMP dari client ke-6 melalui

aplikasi Wireshark

46 Gambar 4.29 Client ke-15 melakukan ping ke alamat publik

10.0.0.100

46 Gambar 4.30 Hasil pemetaan client ke-15 kepada server 10.0.0.16

oleh controller POX

47 Gambar 4.31 Hasil capture paket data ICMP dari client ke-15 melalui

aplikasi Wireshark

47 Gambar 4.32 Client ke-5 melakukan ping ke alamat publik 10.0.0.100 48 Gambar 4.33 Hasil pemetaan client ke-5 kepada server 10.0.0.17 oleh

controller POX

49 Gambar 4.34 Hasil capture paket data ICMP dari client ke-5 melalui

aplikasi Wireshark

49 Gambar 4.35 Client ke-2 melakukan ping ke alamat publik 10.0.0.100 50 Gambar 4.36 Hasil pemetaan client ke-2 kepada server 10.0.0.18 oleh

controller POX

51 Gambar 4.37 Hasil capture paket data ICMP dari client ke-2 melalui

aplikasi Wireshark

51 Gambar 4.38 Client ke-8 melakukan ping ke alamat publik 10.0.0.100 52 Gambar 4.39 Hasil pemetaan client ke-8 kepada server 10.0.0.16 oleh

controller POX

53 Gambar 4.40 Hasil capture paket data ICMP dari client ke-8 melalui

aplikasi Wireshark

54 Gambar 4.41 Client ke-11 melakukan ping ke alamat publik

10.0.0.100

54 Gambar 4.42 Hasil pemetaan client ke-11 kepada server 10.0.0.17

oleh controller POX

55 Gambar 4.43 Hasil capture paket data ICMP dari client ke-11 melalui

aplikasi Wireshark

56 Gambar 4.44 Client ke-13 melakukan ping ke alamat publik

10.0.0.100

56 Gambar 4.45 Hasil pemetaan client ke-13 kepada server 10.0.0.18

oleh controller POX

57 Gambar 4.46 Hasil capture paket data ICMP dari client ke-13 melalui

aplikasi Wireshark

58 Gambar 4.47 Grafik percobaan pertama reqest paket HTTP terhadap

server (setelah load-balancing)


(15)

Gambar 4.48 Grafik percobaan kedua reqest paket HTTP terhadap server (setelah load-balancing)

59 Gambar 4.49 Grafik percobaan pertama reqest paket HTTP terhadap

server (sebelum load-balancing)

60 Gambar 4.50 Grafik percobaan kedua reqest paket HTTP terhadap

server (sebelum load-balancing)

60


(16)

Halaman

A Listing Program A-1


(17)

ABSTRAK

Perangkat jaringan komputer seperti Router dan Switch biasanya sudah memiliki management interface. Dengan kata lain pengguna hanya dapat melakukan konfigurasi melalui management interface pada perangkat tersebut dalam menerapkan fitur yang diinginkan, sehingga apabila seseorang ingin bereksperimen dengan beberapa teknik seperti teknik load-balancing baru atau routing protocol baru maka dia tidak akan dapat melakukan hal itu karena perangkat tidak mendukung teknik dan protokol tersebut. Software Defined Networking (SDN) memisahkan data-plane dan control-plane, pemisahan ini memberi kemampuan untuk memprogram secara langsung perangkat jaringan komputer seperti Switch dan Router sesuai dengan kebijakan yang diberikan. Softwa re Defined Networking dapat diterapkan dengan menggunakan salah satu controller terpusat yaitu POX yang bertugas untuk mengontrol segala arus data yang melewati Switch dan Router sehingga kebijakan yang telah ditetapkan tersebut langsung diimplementasikan sesuai dengan karakteristik jaringan yang ada saat itu juga. Load balancing adalah sebuah teknik untuk mendistribusikan beban trafik pada dua atau lebih jalur koneksi secara seimbang agar trafik dapat berjalan optimal. Pada penelitian ini dilakukan pengujian pada sebuah jaringan komputer dengan jumlah server sebanyak 3 unit dan jumlah client sebanyak 15 unit. Masing-masing client melakukan koneksi secara acak dengan cara mengirimkan paket Internet Control Message Protocol (ICMP) terhadap alamat IP publik dan controller POX melakukkan pemetaan client tersebut terhadap server berdasarkan metode round-robin. Ketika seluruh client melakukan request paket HyperText Transfer Protocol (HTTP) terhadap alamat IP publik, response time yang diperoleh ketika load-balancing tidak diterapkan lebih kurang tiga (3) kali lebih lama daripada response time yang diperoleh pada saat teknik load-balancing diterapkan.

Kata kunci: Management interface, Softwa re Defined Netwoking, Data -plane, Control-plane, Load balancing, Round-robin, Internet Control Message Protocol, Response time.


(18)

IMPLEMENTATION OF LOAD BALANCING WITH ROUND

-ROBIN METHOD IN SOFTWARE DEFINED NETWORKING

(SDN) USE CONTROLLER POX

ABSTRACT

Computer networking devices such as Routers and Switches usually already have a management interface. In other words, the user can only perform the configuration via management interface on these devices to implement the desired features, so if someone wants to experiment with some techniques such as new load-balancing techniques or new routing protocol then he will not be able to do that because the device does not support the techniques and protocols. Software Defined Networking (SDN) separates the data-plane and control-plane, this separation gives the ability to directly program the computer networking devices such as Switches and Routers in accordance with a given policy. Software Defined Networking can be applied using either a centralized controller that POX whose task is to control all the data stream that passes through Switch and Router that established policy is immediately implemented in accordance with the characteristics of the existing network currently. Load balancing is a technique to distribute the traffic load on the connection of two or more lanes in a balanced way so that traffic can run optimally. In this study conducted testing on a computer network within 15 unit of clients and 3 unit of servers. Each client to connect randomly by sending Internet Control Message Protocol (ICMP) packets to the public IP address and POX controller do the mapping of the clients to the servers based on the round-robin method. When all of the clients make the requesting for HyperText Transfer Protocol (HTTP) packets to the public IP address, response time obtained when load-balancing is not applied approximately three (3) times longer than the response time obtained when the load-balancing techniques are applied.

Keywords: Management interface, Software Defined Netwoking, Data-plane, Control-plane, Load balancing, Round-robin, Internet Control Message Protocol, Response time.


(19)

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Perangkat jaringan komputer seperti Router dan Switch biasanya sudah memiliki management interface yang memungkinkan seorang operator jaringan untuk mengkonfigurasi dan mengelolah perangkat ini. Beberapa contoh dari management interface meliputi command line interface, XML/Netconf, Graphical User Interface (GUI), dan Simple Network Management Protocol (SNMP) (Nadeau & Gray. 2013). Pilihan-pilihan ini merupakan bagian dari sistem operasi yang disediakan oleh vendor penyedia perangkat Router dan Switch dimana sistem operasi dan fitur-fiturnya sudah langsung embedded pada perangkat tersebut sehingga apabila seseorang ingin bereksperimen dengan beberapa teknik seperti teknik load-balancing baru atau routing protocol baru maka dia tidak akan dapat melakukan hal itu karena perangkat tidak mendukung teknik dan protokol tersebut. Dengan kata lain pengguna hanya dapat melakukan konfigurasi melalui management interface pada perangkat Router atau Switch dalam menerapkan fitur yang diinginkan. Selain itu, setiap konfigurasi berbeda berdasarkan vendor penyedia sehingga menjadi permasalahan lainnya yang harus dihadapi oleh operator jaringan.

Pemisahan data-plane dan control-plane pada perangkat jaringan komputer seperti Router dan Switch memungkinkan untuk memprogram perangkat tersebut sesuai dengan yang diiinginkan secara terpusat. Pemisahan inilah yang mendasari terbentuknya paradigma baru dalam jaringan komputer yang disebut Softwa re Defined Networking (SDN) (US: Open Networking Foundation. 2013). Dengan cara ini pengguna Softwa re Defined Networking (SDN) dapat membangun sendiri


(20)

sebuah aplikasi maupun gabungan dari beberapa aplikasi yang akan dijalankan pada platform controller. Platform controller menyediakan Application Progra mming Interfaces (APIs) sehingga memudahkan dalam mengimplementasikan fitur dan layanan dalam jaringan komputer. Pada Software Defined Networking (SDN), controller terpusat mengkonfigurasi tabel forwa rding (flow-table) Switch yang bertanggung jawab untuk meneruskan aliran paket komunikasi.

Salah satu contoh fitur yang biasanya telah tersedia pada sebuah perangkat Switch ataupun Router adalah load-balancing dengan metode yang sudah diterapkan oleh vendor penyedianya. Load-balancing merupakan suatu teknik untuk membagi beban trafik yang diterima kepada beberapa server dengan tujuan agar server tidak mengalami overload dan tetap menyediakan layanan dengan baik (Long, Shen, Guo & Tang. 2013.). Teknik load-balancing dapat diterapkan dengan menggunakan beberapa metode antrian, antara lain: round-robin, weighted round-robin, persistent, hash based. Sebagai salah satu contoh adalah penerapan metode round-robin pada teknik load-balancing dimana metode ini membagi beban trafik secara bergiliran dan berurutan dari satu server ke server lain.

Kehebatan teknologi Softwa re Defined Networking (SDN) dalam sistem jaringan komputer ini dianggap menarik oleh penulis, penulis sangat tertarik untuk mengimplementasikan teknik Load-Balancing dengan metode round-robin pada Software Defined Networking (SDN) menggunakan controller POX. Pada penelitian ini dilakukan pengujian dengan cara mengirimkan paket HyperText Transfer Protocol (HTTP) dan Internet Control Message Protocol (ICMP) paket ke server, kemudian dari situ dapat dilihat respone-time sebelum dan setelah load-balancing. Tentunya hasil yang diinginkan setelah load-balancing adalah respone-time yang lebih kecil daripada sebelum melalui proses load-balancing. Keberhasilan implementasi ini akan mungkin meningkatkan ketertarikan pelaku dunia pendidikan dan operator jaringan secara khusus dan perusahaan-perusahaan besar secara umum untuk menerapkan teknologi Software Defined Networking (SDN) pada sistem jaringan komputernya.


(21)

1.2. Rumusan Masalah

Masalah yang akan dibahas dalam penelitian ini adalah bagaimana mengimplementasikan teknik load-balancing dengan metode round-robin pada Softwa re Defined Networking (SDN) dengan menggunakan controller POX ?

1.3. Batasan Masalah

Batasan masalah dalam penelitian ini adalah:

1. Implementasi teknik Load-Balancing ini hanya menggunakan metode Round-Robin.

2. Penelitian ini hanya menggunakan controller POX. 3. Penelitian menggunakan parameter packets-respone time.

4. Paket data yang digunakan adalah paket data HyperText Transfer Protocol (HTTP) dan Internet Control Message Protocol (ICMP).

5. Penilitian ini menggunakan emulator Mininet. 6. Penelitian ini menggunakan Oracle VM VirtualBox.

7. Sistem Operasi yang digunakan dalam penelitian ini adalah Linux Ubuntu 12.10.

8. Bahasa pemrograman yang digunakan dalam penelitian ini adalah PYTHON 2.7.

1.4. Tujuan Penelitian

Tujuan penelitian ini adalah untuk mengimplementasikan teknik load-balancing dengan metode round-robin pada Softwa re Defined Networking (SDN).


(22)

1.5. Manfaat Penelitian

Manfaat penelitian ini adalah:

1. Menjadi salah satu bukti ilmiah pengimplementasian load-balancing dalam Softwa re Defined Networking (SDN) dengan melakukan analisis terhadap paket data HyperText Transfer Protocol (HTTP) dan Internet Control Message Protocol (ICMP) melalui parameter packets-respone time.

2. Membuktikan bahwa packets-respone time dapat dijadikan sebagai indikasi pengimplementasian load-balancing pada Softwa re Defined Networking (SDN).

1.6. Metodologi Penelitian

Metode penelitian yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut:

a. Studi Literatur

Metode ini dilaksanakan dengan melakukan studi kepustakaan melalui membaca buku-buku, skripsi, dan jurnal yang dapat mendukung penulisan Tugas Akhir yang relevan mengenai Software Defined Networking (SDN), Load-Balancing dan Round-Robin.

b. Analisis

Analisis masalah yang dimulai dengan tahap mengindentifikasi masalah, memahami cara kerja Softwa re Defined Networking, menganalisis dan membaut laporan tentang hasil analisis algoritma, menggambarkan sistem dengan menggunakan flowcha rt.


(23)

c. Perancangan

Pada tahap ini dilakukan perancangan Load-Balancing dengan metode Round-Robin dan topologi jaringan yang digunakan. Termasuk didalamnya yaitu perancangan flowchart, dan perancangan sistem.

d. Implementasi

Metode ini dilaksanakan dengan mengimplementasi rancangan sistem yang telah dibuat pada impelementasi menggunakan PYTHON 2.7.

e. Pengujian

Setelah proses pengkodean selesai maka akan dilakukan proses pengujian terhadap program yang dihasilkan untuk mengetahui apakah program sudah berjalan dengan benar dan sesuai dengan perancangan yang dilakukan.

f. Penyusunan laporan dan kesimpulan akhir

Membuat laporan hasil analisa dan perancangan ke dalam format penulisan tugas akhir yang disertai dengan kesimpulan.

1.7. Sistematika Penulisan

Penulisan skripsi ini menggunakan sistematika penulisan yang membagi pembahasan skripsi dalam lima bagian utama, yang terdiri atas:

BAB 1 PENDAHULUAN

Pada bab ini merupakan pendahuluan yang berisi latar belakang, rumusan masalah, tujuan penelitian, batasan masalah, metodologi penelitian, dan sistematika penulisan skripsi.


(24)

BAB 2 LANDASAN TEORI

Pada bab ini membahas mengenai teori-teori yang digunakan untuk memahami permasalahan yang berkaitan dengan machine learning, Backpropagation, Support Vector Machine, curse of dimensionality, visualisasi data.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini berisikan analisis mengenai metode yang digunakan untuk menyelesaikan masalah dan perancangan dari sistem yang dibangun.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab ini dibahas cara kerja sistem beserta proses pengujian terhadap sistem yang telah dikembangkan

BAB 5 KESIMPULAN DAN SARAN

Pada bab ini dibuat mengenai rangkuman dari hasil analisis dan implementasi kerja sistem pada bagian sebelumnya, dan pada bagian ini terdapat saran yang diberikan untuk pengembangan sistem selanjutnya.


(25)

BAB 2

LANDASAN TEORI

Di dalam bab ini, penulis mengambil beberapa tinjauan pustaka yang dijadikan sebagai landasan pengerjaan implementasi Load-Balancing dengan metode round-robin pada Softwa re Defined Networking (SDN) dengan menggunakan controller POX.

2.1. Software Defined Networking (SDN)

Software Defined Networking (SDN) merupakan sebuah pendekatan arsitektur jaringan komputer yang memisahkan control plane dari sebuah perangkat jaringan komputer (switch atau router) dengan data plane perangkat jaringan komputer tersebut (Khondoker, Zaalouk, Marx & Bayarou. 2014). Pemisahan data-plane dan control-plane ini memungkinkan untuk memprogram perangkat tersebut sesuai dengan yang diiinginkan secara terpusat (SDN Controller), sehingga hal ini memungkinkan untuk mengontrol, memonitor, dan mengatur sebuah jaringan komputer dari sebuah titik (node) terpusat tersebut.

2.1.1. Konsep Dasar Software Defined Networking

Softwa re-defined networking (SDN) adalah sebuah konsep pendekatan jaringan komputer dimana sistem pengkontrol dari arus data (control-plane) secara fisik dipisahkan dari perangkat kerasnya (data-plane). Umumnya, sistem pembuat keputusan kemana arus data akan dikirimkan dibuat menyatu dengan perangkat kerasnya. SDN memungkinkan penggunanya untuk menulis aplikasi untuk


(26)

mengelola layanan jaringan termasuk load-balancing, routing, acces control, multicast, dan tugas-tugas rekayasa lalu lintas lainnya.

SDN memerlukan beberapa metode agar control-plane dapat berkomunikasi dengan data-plane. Salah satu mekanisme tersebut adalah OpenFlow yang sering disalahpahami setara dengan SDN. OpenFlow adalah sebuah protokol yang memungkinkan pengaturan penjaluran dan pengiriman paket ketika melalui sebuah switch. Dalam sebuah jaringan konvensional, setiap switch hanya berfungsi meneruskan paket yang lewat ke port yang sesuai tanpa dapat membedakan tipe protokol data yang dikirimkan misalnya elastic atau inelastic traffic. Melalui OpenFlow, kita tidak hanya dapat melakukan flow forwarding berbasis network layer tetapi juga dapat dilakukan pengaturan pergerakan paket secara terpusat mulai dari layer 2 sampai layer 7 forwarding (flow granuality), sehingga aliran paket di jaringan dapat diprogram secara independen (Azodomolky. 2013). Hal ini dapat dilakukan dengan membuat algoritma dan forwarding rules-nya pada controller kemudian aturan tersebut didistribusikan ke switch yang ada di jaringan. Terdapat beberapa OpenFlow controller yang dapat digunakan seperti NOX (C base), POX (phyton base), dan Floodlight (java base).

Berikut adalah proses aliran paket data pada switch Openflow (US: Open Networking Foundation. 2013):

1. Ketika sebuah paket tiba di switch OpenFlow, bagian header paket diperiksa berdasarkan entri flow table.

2. Jika entri yang sesuai ditemukan, switch kemudian menerapkan instruksi-intruksi terkait berdasarkan aliran paket data yang sesuai juga.

3. Jika tidak ada yang sesuai dengan prosedur flow table, maka aliran paket akan diarahkan ke entri table-miss. Entri table-miss adalah entri yang diperlukan yang menentukan set instruksi yang akan diterapkan terhadap paket yang masuk ketika tidak ada yang cocok atau sesuai dengan prosedur flow table. Intruksi mencakup: Menghapus (dropping) paket, Mengirim paket pada semua interface, Meneruskan paket ke controller. Gambar 1.1 dibawah ini adalah proses aliran paket data pada switch Openflow:


(27)

Gambar 2.1. Flowchart arus paket dalam Switch OpenFlow (Sumber: US: Open Networking Foundation. 2013)

2.1.2. Arsitektur Software Defined Networking (SDN)

Dalam arsitektur Software Defined Networking (SDN) setiap layer dapat bekerja secara independen dan berkomunikasi melalui antarmuka jaringan untuk memberikan fungsi berlapis dari perangkat fisik yang berbeda (Wensong. 2010). Aspek arsitektur ini memungkinkan administrator jaringan untuk mengatasi beberapa tantangan dalam dunia jaringan komputer

Gambaran logis dari arsitektur Software Defined Networking (SDN) dapat dilihat pada gambar 1.2. Terdapat 3 layer pada arsitektur Softwa re Defined Networking (SDN) (US: Open Networking Foundation. 2013), yaitu :


(28)

Layer infrastruktur terdiri dari elemen-elemen jaringan dan perangkat keras yang menjalankan fungsi packet switching dan forwarding.

2. Layer Kontrol (Control Layer)

Layer Kontrol menyediakan fungsionalitas kontrol secara padu yang mengawasi perilaku jaringan forwa rding melalui open interface.

3. Layer Aplikasi (Application Layer)

Layer Aplikasi berfungsi untuk menyediakan interface dalam pembuatan program aplikasi yang kemudian akan mengatur dan mengoptimalkan jaringan secara baik dan fleksibel.

Gambar 2.2. Arsitektur Software Defined Networking (Sumber: US: Open Networking Foundation. 2013)


(29)

2.1.3. Controller POX

Dalam anologi sistem operasi, OpenFlow bertindak sebagai sistem operasi dan harus mengimplementasikan dua interface, yaitu: southbound interface yang memungkinkan Switch OpenFlow berkomunikasi dengan controller (POX, OpenDaylight, FloodLight, Ryu, dan sebagainya) dan northbound interface yang menyajikan Application Programming Interface (API) yang dapat diprogram untuk mengontrol jaringan dan memanajemen aplikasi (Pyretic, Frenetic).

POX adalah versi dari controller NOX (controller protokol OpenFlow pertama yang dibuat dalam bahasa C++) yang menggunakan bahasa pemprograman Python. Tujuan utama terciptanya controller POX adalah untuk penelitian. POX dapat diimplementasikan dengan Northbound Interface sehingga proses pembuatan program aplikasinya lebih sederhana dan aplikatif. Northbound interface yang digunakan adalah Pyretic. Gambar 1.3 adalah Controller Layer (POX) dalam Arsitektur Software Defined Networking:

Gambar 2.3. Controller layer (POX) dalam Arsitektur Software Defined Networking


(30)

2.2. Load-Balancing

Load-balancing adalah teknik untuk mendistribusikan beban trafik pada dua atau lebih jalur koneksi secara seimbang, agar trafik dapat berjalan optimal, memaksimalkan throughput, memperkecil waktu tanggap dan menghindari overload pada salah satu jalur koneksi. Load-balancing mendistribusikan beban kerja pada dua atau lebih komputer, link jaringan, CPU, hard drive, atau sumber daya lainnya, untuk mendapatkan pemanfaatan sumber daya yang optimal.

Cara dan proses kerja load-balancing adalah dengan menggunakan konsep virtual server virtual IP. Secara umum, konsep dari virtual server dan virtual IP ini adalah sebuah alamat IP, sebuah nama, atau bisa juga dikatakan sekelompok alamat IP yang bertugas sebagai perwakilan dan jembatan penghubung antara client yang merupakan pengakses dari luar dengan sekelompok server atau perangkat jaringan yang berada dibelakangnya. Tujuan dibuatnya sistem perwakilan tersebut adalah agar ketika nama atau alamat IP tersebut diakses dari luar, yang dapat melayani permintaan tersebut tidak terbatas hanya pada satu server saja. Sekelompok server atau perangkat jaringan yang diwakilinya memiliki kemampuan untuk menjawab permintaan-permintaan tersebut. Sebagai hasilnya permintaan-permintaan tersebut terdistribusi ke beberapa server sehingga beban proses kerja server-server tersebut tidak terlalu berat. Hal ini tentunya akan membuat layanan yang diberikan server ke client dapat berjalan dengan baik.

Teknik load-balancing memisahkan antara dua atau banyak network link. Dengan mempunyai banyak link maka optimalisasi utilisasi sumber daya, throughput, dan respone time akan semakin baik karena mempunyai lebih dari satu link yang bisa saling membackup ketika network sedang down. Di bawah ini diberikan gambar jaringan komputer serta komponennya dalam Load Balancing:


(31)

Gambar 2.4. Komponen load-balancing (Sumber: Bourke. 2001)

2.3. Round-Robin

Load-balancing memiliki algoritma tersendiri dalam proses pembagian beban trafik. Tujuannya adalah untuk menyesuaikan pembagian beban dengan karakteristik dari server-server yang dibelakangnya. Algoritma Round Robin merupakan algoritma yang paling sederhana dan banyak digunakan oleh perangkat load-balancing. Algoritma ini membagi beban secara bergiliran dan berurutan dari satu server ke server lain sehingga membentuk putaran (Wensong. 2010).

Algoritma Round Robin bekerja secara berulang dengan cara melayani paket data pertama secara berurutan sesuai dengan urutan antrian paket-paket tersebut sampai semua antrian dilayani dan kemudian dilanjutkan dalam putaran selanjutnya dengan proses yang sama (Al-Howaide, Doulat, & Khamayseh. 2011). Sebagai contoh, terdapat 3 server dalam teknik load balancing, request pertama dikirim ke server1, request kedua dikirim ke server2, request ketiga dikirim ke server3. Setelah semua server menerima masing-masing request maka


(32)

tugas selanjutnya dimulai dari server1 lagi. Di bawah ini diberikan gambar antrian dalam Algoritma Round Robin:

Gambar 2.5. Antrian dalam Algoritma Round Robin (Sumber: Ellrod. 2010)

Langkah-langkah penerapan load balancing dengan menggunakan metode round robin adalah sebagai berikut:

1. Inisiasi jumlah server yang akan digunakan

2. Paket request sebagai input pada switch openflow yang akan didistribusikan dengan teknik load balancing berdasarkan metode round robin

3. Paket request berstatus Ready dan berada dalam antrian

4. Memeriksa apakah paket request x berada di antrian terdepan, jika paket request x berada di antrian terdepan maka paket akan diproses dan diarahkan kepada server.

5. Menentukan server yang akan melayani paket yang masuk dengan melakukan modulo jumlah server terhadap server ke-N.

6. Memeriksa apakah dilanjutkan ke server selanjutnya. Jika ya, maka ada paket request yang masih berada dalam antrian sehingga mengulangi langkah 3,4, dan 5. Jika tidak, maka semua paket request telah dilayani.


(33)

Di bawah ini adalah flowchart Round-RobinLoad-Balancing:

START

Jumlah Server

Paket Request X di antrian terdepan?

Paket Request X diproses dan diarahkan

kepada server END No Yes Paket yang masuk Paket Request berstatus Ready dan berada dalam antrian

Paket Request X mengantri

Server selanjutnya

No

Yes

Server = Paket Request X % jumlah server

Semua paket Request telah dilayani Client Melakukan Request


(34)

2.4. Contoh Kasus Load Balancing dan dengan Perhitungan Metode Round Robin

Berikut dibawah ini akan diuraikan contoh kasus load balancing dan dengan perhitungan metode round robin:

Misalkan diketahui, - Jumlah Client = 10

- Internet Protocol (IP) Address Client : 202.10.133.1 s/d 202.10.133.10 - Jumlah Server = 3 (0 s/d 2)

- Internet Protocol (IP) Address Server : 192.168.1.1 s/d 192.168.1.3 - Internet Protocol (IP) Address Virtual : 8.8.8.8

Dianologikan urutan paket request ditentukan berdasarkan urutan client yang melakukan request, berikut dibawah ini ditentukan urutannya :

- Client 1 = Paket request ke-0 - Client 6 = Paket request ke-7 - Client 2 = Paket request ke-2 - Client 7 = Paket request ke-5 - Client 3 = Paket request ke-1 - Client 8 = Paket request ke-6 - Client 4 = Paket request ke-9 - Client 9 = Paket request ke-3 - Client 5 = Paket request ke-8 - Client 10 = Paket request ke-4 Perhitungan posisi server berdasarkan metode round robin adalah sebagai berikut: - Client 1 dilayani oleh server ke :

Server = Paket request ke-0 modulo jumlah server Server = 0 mod 3

Server = 0 (Server ke-0)

- Client 2 dilayani oleh server ke :

Server = Paket request ke-2 modulo jumlah server Server = 2 mod 3

Server = 2 (Server ke-2)

- Client 3 dilayani oleh server ke :


(35)

Server = 1 mod 3

Server = 1 (Server ke-1)

- Client 4 dilayani oleh server ke :

Server = Paket request ke-9 modulo jumlah server Server = 9 mod 3

Server = 0 (Server ke-0)

- Client 5 dilayani oleh server ke :

Server = Paket request ke-8 modulo jumlah server Server = 8 mod 3

Server = 2 (Server ke-2)

- Client 6 dilayani oleh server ke :

Server = Paket request ke-7 modulo jumlah server Server = 7 mod 3

Server = 1 (Server ke-1)

- Client 7 dilayani oleh server ke :

Server = Paket request ke-5 modulo jumlah server Server = 5 mod 3

Server = 2 (Server ke-2)

- Client 8 dilayani oleh server ke :

Server = Paket request ke-6 modulo jumlah server Server = 6 mod 3

Server = 0 (Server ke-0)

- Client 9 dilayani oleh server ke :

Server = Paket request ke-3 modulo jumlah server Server = 3 mod 3

Server = 0 (Server ke-0)

- Client 10 dilayani oleh server ke :

Server = Paket request ke-4 modulo jumlah server Server = 4 mod 3

Server = 1 (Server ke-1)

Gambar di bawah ini adalah aliran arus paket request dengan load balancing berdasarkan perhitungan di atas :


(36)

Alamat IP: 192.168.1.2 Alamat IP: 192.168.1.3 Server 1 Server 2 Server 3 IP Virtual: 8.8.8.8 AlamatIP: 202.10.133.1 Switch Client 1 Client 2 AlamatIP: 202.10.133.2 Client 3 AlamatIP: 202.10.133.3 Client 4 AlamatIP: 202.10.133.4 Client 5 AlamatIP: 202.10.133.5 Client 6 AlamatIP: 202.10.133.6 Client 8 AlamatIP: 202.10.133.8

Gambar 2.7. Contoh Kasus Load Balancing dan dengan Perhitungan Metode Round Robin

Request Reply Alamat IP: 192.168.1.1 Client 7 AlamatIP: 202.10.133.7 Client 9 AlamatIP: 202.10.133.9 Client 10 AlamatIP: 202.10.133.10


(37)

2.5. Penelitian Terkait

1. Jurnal oleh Yuanhao Zhou, Li Ruan, Limin Xiao dan Rui Liu. 2014. “A Method for Load Balancing based on Softwa re Defined Network”

Dalam jurnal mereka dijelaskan tentang penelitian terhadap teknologi Software Defined Networking (SDN) berbasis Openflow secara singkat. Kemudian mereka melakukan analisa terhadap metode yang ada untuk menerapkan load balancing pada Software Defined Networking (SDN), dan mengemukakan kelebihan dari Softwa re Defined Networking (SDN) untuk mengatasi masalah dalam sistem jaringan komputer.

2. Jurnal oleh Jehn-Ruey, Widhi Yahya dan Mahardeka Tri Ananta. 2011.

“Load Balancing and Multicasting Using the Extended Dijkstra’s Algoritm in Software Defined Networking”

Dalam jurnal mereka dijelaskan kelebihan algoritma Extended Dijkstra pada Software Defined Networking (SDN) dalam menerapkan Load Balancing dan Multicasting.

3. Jurnal oleh Christopher Monsanto, Joshua Reich, Nate Foster, Jennifer Rexford, David Walker. 2013. “Composing Softwa re-Defined Networks”

Dalam jurnal mereka dijelaskan kemampuan Softwa re Defined Networking (SDN) untuk melaksanakan beberapa tugas secara langsung dengan menerapkan packet-processing rules pada switch dalam sistem jaringan komputer, seperti: routing, traffic monitoring, acces control, server load balancing, dan lain sebagainya.


(38)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini akan dijelaskan proses analisis dan perancangan sistem yang digunakan dalam penelitian ini, dimulai dari analisis performa jaringan, kemudian perancangan load balancing dalam SDN dan perancangan jaringan dalam emulator Mininet, sehingga alur sistem yang dirancang akan dapat dipahami proses pembuatannya.

3.1. Analisis Pemilihan Server

Berdasarkan contoh kasus dalam penulisan skripsi ini akan ditentukan jumlah Client adalah 15 unit, jumlah Server adalah 3 unit, jumlah Switch adalah 1 unit dan jumlah Controller adalah 1 unit. Dimana semua perangkat tersebut akan diimplementasikan dalam emulator Mininet. Akan dilakukan analisa terhadap metode round-robin dan mengimplementasikan teknik load-balancing.

Tabel 3.1 dibawah ini menampilkan masing-masing perangkat beserta atribut-atribut pendukungnya :

Tabel 3.1. Perangkat yang dibutuhkan beserta atribut-atribut pendukung Nama Perangkat Alamat IP Bandwidth Link Source Address Destination Address

Client 1 10.0.0.1 10 Kbps 10.0.0.1 10.0.0.100 Client 2 10.0.0.2 10 Kbps 10.0.0.2 10.0.0.100 Client 3 10.0.0.3 10 Kbps 10.0.0.3 10.0.0.100 Client 4 10.0.0.4 10 Kbps 10.0.0.4 10.0.0.100 Client 5 10.0.0.5 10 Kbps 10.0.0.5 10.0.0.100


(39)

Client 6 10.0.0.6 10 Kbps 10.0.0.6 10.0.0.100 Client 7 10.0.0.7 10 Kbps 10.0.0.7 10.0.0.100 Client 8 10.0.0.8 10 Kbps 10.0.0.8 10.0.0.100 Client 9 10.0.0.9 10 Kbps 10.0.0.9 10.0.0.100 Client 10 10.0.0.10 10 Kbps 10.0.0.10 10.0.0.100 Client 11 10.0.0.11 10 Kbps 10.0.0.11 10.0.0.100 Client 12 10.0.0.12 10 Kbps 10.0.0.12 10.0.0.100 Client 13 10.0.0.13 10 Kbps 10.0.0.13 10.0.0.100 Client 14 10.0.0.14 10 Kbps 10.0.0.14 10.0.0.100 Client 15 10.0.0.15 10 Kbps 10.0.0.15 10.0.0.100 Server 1 10.0.0.16 10 Kbps 10.0.0.16 10.0.0.100 Server 2 10.0.0.17 10 Kbps 10.0.0.17 10.0.0.100 Server 3 10.0.0.18 10 Kbps 10.0.0.18 10.0.0.100

Switch

(virtual IP) 10.0.0.100 - 10.0.0.100 10.0.0.1-10.0.0.18

Controller 127.0.0.1 - - -

Kemudian berikut ini adalah proses perhitungan dalam pemilihan server dengan metode round-robin:

- Jumlah Client = 15

- Internet Protocol (IP) Address Client : 10.0.0.1 s/d 10.0.0.15 - Jumlah Server = 3 (0 s/d 2)

- Internet Protocol (IP) Address Server : 10.0.0.16 s/d 10.0.0.18 - Internet Protocol (IP) Address Virtual : 10.0.0.100

Dianologikan urutan paket request ditentukan berdasarkan urutan client yang melakukan request, berikut dibawah ini ditentukan urutannya :

- Client 1 = Paket request ke-2 - Client 9 = Paket request ke-7 - Client 2 = Paket request ke-11 - Client 10 = Paket request ke-1 - Client 3 = Paket request ke-6 - Client 11 = Paket request ke-13 - Client 4 = Paket request ke-0 - Client 12 = Paket request ke-5


(40)

- Client 5 = Paket request ke-10 - Client 13 = Paket request ke-14 - Client 6 = Paket request ke-8 - Client 14 = Paket request ke-4 - Client 7 = Paket request ke-3 - Client 15 = Paket request ke-9 - Client 8 = Paket request ke-12

Perhitungan posisi server berdasarkan metode round robin adalah sebagai berikut: - Client 1 dilayani oleh server ke :

Server = Paket request ke-2 modulo jumlah server Server = 2 mod 3

Server = 2 (Server ke-2)

- Client 2 dilayani oleh server ke :

Server = Paket request ke-11 modulo jumlah server Server = 11 mod 3

Server = 2 (Server ke-2)

- Client 3 dilayani oleh server ke :

Server = Paket request ke-6 modulo jumlah server Server = 6 mod 3

Server = 0 (Server ke-0)

- Client 4 dilayani oleh server ke :

Server = Paket request ke-0 modulo jumlah server Server = 0 mod 3

Server = 0 (Server ke-0)

- Client 5 dilayani oleh server ke :

Server = Paket request ke-10 modulo jumlah server Server = 10 mod 3

Server = 1 (Server ke-1)

- Client 6 dilayani oleh server ke :

Server = Paket request ke-8 modulo jumlah server Server = 8 mod 3

Server = 2 (Server ke-2)

- Client 7 dilayani oleh server ke :


(41)

Server = 3 mod 3

Server = 0 (Server ke-0)

- Client 8 dilayani oleh server ke :

Server = Paket request ke-12 modulo jumlah server Server = 12 mod 3

Server = 0 (Server ke-0)

- Client 9 dilayani oleh server ke :

Server = Paket request ke-7 modulo jumlah server Server = 7 mod 3

Server = 1 (Server ke-1)

- Client 10 dilayani oleh server ke :

Server = Paket request ke-1 modulo jumlah server Server = 1 mod 3

Server = 1 (Server ke-1)

- Client 11 dilayani oleh server ke :

Server = Paket request ke-13 modulo jumlah server Server = 13 mod 3

Server = 1 (Server ke-1)

- Client 12 dilayani oleh server ke :

Server = Paket request ke-5 modulo jumlah server Server = 5 mod 3

Server = 2 (Server ke-2)

- Client 13 dilayani oleh server ke :

Server = Paket request ke-14 modulo jumlah server Server = 14 mod 3

Server = 2 (Server ke-2)

- Client 14 dilayani oleh server ke :

Server = Paket request ke-4 modulo jumlah server Server = 4 mod 3

Server = 1 (Server ke-1)

- Client 15 dilayani oleh server ke :


(42)

Server = 9 mod 3

Server = 0 (Server ke-0)

Tabel 3.2 di halaman selanjutnya ini adalah tabel hasil perhitungan posisi server berdasarkan metode round robin:

Tabel 3.2. Hasil perhitungan posisi server berdasarkan metode round robin

Client Source Address

Destination Address

Server ke

(0 s/d 2) Alamat Server

Client 1 10.0.0.1 10.0.0.100 Server ke - 2 10.0.0.18 Client 2 10.0.0.2 10.0.0.100 Server ke - 2 10.0.0.18 Client 3 10.0.0.3 10.0.0.100 Server ke - 0 10.0.0.16 Client 4 10.0.0.4 10.0.0.100 Server ke - 0 10.0.0.16 Client 5 10.0.0.5 10.0.0.100 Server ke - 1 10.0.0.17 Client 6 10.0.0.6 10.0.0.100 Server ke - 2 10.0.0.18 Client 7 10.0.0.7 10.0.0.100 Server ke - 0 10.0.0.16 Client 8 10.0.0.8 10.0.0.100 Server ke - 0 10.0.0.16 Client 9 10.0.0.9 10.0.0.100 Server ke - 1 10.0.0.17 Client 10 10.0.0.10 10.0.0.100 Server ke - 1 10.0.0.17 Client 11 10.0.0.11 10.0.0.100 Server ke - 1 10.0.0.17 Client 12 10.0.0.12 10.0.0.100 Server ke - 2 10.0.0.18 Client 13 10.0.0.13 10.0.0.100 Server ke - 2 10.0.0.18 Client 14 10.0.0.14 10.0.0.100 Server ke - 1 10.0.0.17 Client 15 10.0.0.15 10.0.0.100 Server ke - 0 10.0.0.16

3.2. Perancangan

Perancangan yang akan dibuat meliputi perancangan load-balancing dengan metode round-robin dalam software defined networking menggunakan controller POX dan perancangan jaringan dalam Emulator Mininet.


(43)

3.2.1. Perancangan Load Balancing dengan Metode Round Robin dalam Software Defined Networking Menggunakan Controller POX

Dalam perancangan load-balancing dengan metode round-robin dalam software defined networking menggunakan controller POX harus memenuhi standar penulisan dan pendeklarasian setiap module yang ditentukan. POX dapat diimplementasikan dengan Northbound Interface sehingga proses pembuatan program aplikasinya lebih sederhana dan aplikatif. Northbound interface yang digunakan adalah Pyretic.

Berikut ini adalah tahap-tahap logis yang dilakukan untuk mengimplementasikan load-balancing dengan metode round-robin dalam software defined networking menggunakan controller POX, dimana server load-balancer yang dalam hal ini diterapkan oleh Switch melakukan pemetaan terhadap paket request yang masuk menuju server. Aspek utama dalam proses ini adalah komputer client hanya mengetahui alamat IP (IP Address) dari load-balancer yang merupakan bukan alamat yang sebenarnya (Virtual IP).

1. Tetapkan alamat virtual (virtual IP) sebagai 10.0.0.100 2. Inisialisasi list dari server-server

3. Masuk akses packet-in terhadap virtual IP dari client „X‟,

 Tetapkan server „Y‟ dengan menggunakan metode round-robin  Paket masuk yang mengalir (client menuju ke server):

o Match: Paket yang masuk

o Action: 1. Penetapan ulang destination_Mac, destination_IP, dari paket yang diterima dari client „X‟,

2. Teruskan ke Mac_to_port[„Y‟]

 Paket masuk yang mengalir dari arah sebaliknya (server menuju ke client):

o Match : Src (IP, MAC, TCP_Port) = Y, Dst = X,

o Action: 1. Penetapan ulang source_Mac, source_IP menjadi


(44)

2. Teruskan ke Mac_to_port[„X‟]

 Semua paket request yang berikutnya akan secara langsung dikirim ke server yang terpilih (berdasarkan metode round-robin) tanpa harus melalui controller lagi (karena client sebagai sumber paket request telah diidentifiksasi sebelumnya).

Gambar 3.1 di halaman selanjutnya ini menampilkan flowchart dari pengimplementasian load-balancing dengan metode round-robin dalam softwa re defined networking menggunakan controller POX:

Start

Load Module

initialitation

Parameter IP_Client, IP_Server, IP_Publik

Update Policy

Client in Server Y

Round Robin N

Server = Request Client X % servers


(45)

Load Balancing

Client to Public

Query

Mac_Learner Client, Server,

Public

Source = Client Destination = Server Y

Client to Public Source = Server Destination = Client Y

N

Stop N

LB

Gambar 3.1. Flowchart dari pengimplementasian load-balancing dengan metode round-robin dalam software defined networking menggunakan

controller POX

3.2.2. Perancangan Jaringan dalam Emulator Mininet

Mininet merupakan Network Emulator. Mininet dapat menjalankan cukup banyak host, switch, router, dan link hanya dalam sebuah Linux kerner. Mininet menggunakan sistem virtualisasi yang cukup ringan sehingga membuat sebuah sistem terlihat seperti sebuah jaringan yang cukup lengkap, dijalankan dalam kernel, sistem, dan user code yang sama.


(46)

Mininet mendukung parametrized topology. Sebuah topologi yang fleksibel yang dapat dikonfigurasi berdasarkan parameter-parameter yang ingin diterapkan dapat diciptakan hanya dengan beberapa baris dari code program yang ditulis dalam bahasa pemrograman Python. Kemudian, topologi yang telah kita ciptakan tadi dapat digunaka kembali untuk eksperimen-eksperimen lainnya.

Gambar 3.2 dibawah ini adalah topologi jaringan yang akan dirancang, terdiri dari 18 host (15 client dan 3 server), 1 buah switch, dan 1 buah controller.

Gambar 3.2. Topologi jaringan yang akan dirancang

Host16 Host17 Host18

C1

Host1 Host2 Host3 Host4 Host5 Host6 Host7 Host8


(47)

Gambar 3.3 dibawah ini menampilkan flowcha rt topologi jaringan yang dibuat di dalam Mininet:

Start net.start

Load Module

Main

SetLogLevel = info

SimpleTest(for defining & building network)

CLI(net)

Stop net.stop

Gambar 3.3. Flowchart topologi jaringan yang dibuat di dalam Mininet (secara garis besar)


(48)

SimpleTest

create a star topology with 1 switch SingleSwitchTopo

Host <= hosts Y

to define controller ip RemoteController

for OVS switch Switch

Switch = 1 Hosts = 18

addHost(host)

addHost(host)

Host++

addController N

to get source & dest. Host net.get

to call command net.cmd CLI(net) If exit N Stop net.stop Y Start

Gambar 3.4. Flowchart topologi jaringan yang dibuat di dalam Mininet (perluasan proses SimpleTest)


(49)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi

Tahap implementasi sistem merupakan lanjutan dari tahap analisis dan perancangan sistem. Implementasi Load-Balancing Dengan Metode Round-Robin Dalam Softwa re Defined Networking (SDN) Menggunakan Controller POX dibangun dengan menggunakan program Python 2.7. Pada proses implementasi ini terlebih dahulu masing-masing client akan melakukan ping pada alamat IP address 10.0.0.100 yang merupakan alamat server secara publik. Agar proses implementasi ini menunjukkan keberhasilan metode Round-Robin maka masing-masing client akan melakukan ping secara acak, sebagai berikut : Client-4, Client-10, Client-1, Client-7, Client-14, Client-12, Client-3, Client-9, Client-6, Client-15, Client-5, Client-2, Client-8, Client-11, Client-13.

4.1.1. Menjalankan Controller POX

Proses awal yang terlebih dahulu harus dilakukan adalah menjalankan Controller POX. Ketika Controller telah dijalankan maka akan tampil alamat Publik, Server, dan Client berdasarkan ketentuan yang telah dibuat. Seperti diberikan pada gambar 4.1 dimana Controller POX dijalankan melalui perintah “pyretic.py pyretic.examples.roundrobin_loadbalancing.


(50)

(51)

Gambar 4.1. Controller POX yang telah dijalankan 4.1.2. MenjalankanPerintah Ping pada Masing-masing Client

Masing-masing client akan melakukan ping terhadap alamat publik. Ketika hal ini dilakukan maka controller POX akan menjalankan perannya untuk menerapkan load-balancing dengan metode round-robin terhadap akses server dari perintah ping tersebut. Berikut ini adalah akses masing-masing client melalui paket ICMP dengan perintah ping, hasil pemetaan client terhadap server yang dilakukan oleh controller POX, dan hasil capture paket melalui aplikasi Wireshark.

4.1.2.1. Client ke-4

Dari gambar-gambar yang menyangkut client ke-4 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-4 tersebut pada server ke-1 dengan alamat IP address 10.0.0.16.


(52)

Gambar 4.3. Hasil pemetaan client ke-4 kepada server 10.0.0.16 oleh controller POX

Gambar 4.4. Hasil capture paket data ICMP dari client ke-4 melalui aplikasi Wireshark

4.1.2.2. Client ke-10

Dari gambar-gambar yang menyangkut client ke-10 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-10 tersebut pada server ke-2 dengan alamat IP address 10.0.0.17.


(53)

Gambar 4.5. Client ke-10 melakukan ping ke alamat publik 10.0.0.100

Gambar 4.6. Hasil pemetaan client ke-10 kepada server 10.0.0.17 oleh controller POX

Gambar 4.7. Hasil capture paket data ICMP dari client ke-10 melalui aplikasi Wireshark


(54)

4.1.2.3. Client ke-1

Dari gambar-gambar yang menyangkut client ke-1 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-1 tersebut pada server ke-3 dengan alamat IP address 10.0.0.18.

Gambar 4.8. Client ke-1 melakukan ping ke alamat publik 10.0.0.100

Gambar 4.9. Hasil pemetaan client ke-1 kepada server 10.0.0.18 oleh controller POX


(55)

Gambar 4.10. Hasil capture paket data ICMP dari client ke-1 melalui aplikasi Wireshark

4.1.2.4. Client ke-7

Dari gambar-gambar yang menyangkut client ke-7 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-7 tersebut pada server ke-1 dengan alamat IP address 10.0.0.16.


(56)

Gambar 4.12. Hasil pemetaan client ke-7 kepada server 10.0.0.16 oleh controller POX

Gambar 4.13. Hasil capture paket data ICMP dari client ke-7 melalui aplikasi Wireshark

4.1.2.5. Client ke-14

Dari gambar-gambar yang menyangkut client ke-14 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-14 tersebut pada server ke-2 dengan alamat IP address 10.0.0.17.


(57)

Gambar 4.14. Client ke-14 melakukan ping ke alamat publik 10.0.0.100

Gambar 4.15. Hasil pemetaan client ke-14 kepada server 10.0.0.17 oleh controller POX


(58)

Gambar 4.16. Hasil capture paket data ICMP dari client ke-14 melalui aplikasi Wireshark

4.1.2.6. Client ke-12

Dari gambar-gambar yang menyangkut client ke-12 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-12 tersebut pada server ke-3 dengan alamat IP address 10.0.0.18.


(59)

Gambar 4.18. Hasil pemetaan client ke-12 kepada server 10.0.0.18 oleh controller POX

Gambar 4.19. Hasil capture paket data ICMP dari client ke-12 melalui aplikasi Wireshark

4.1.2.7. Client ke-3

Dari gambar-gambar yang menyangkut client ke-16 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-16 tersebut pada server ke-1 dengan alamat IP address 10.0.0.16.


(60)

Gambar 4.20. Client ke-3 melakukan ping ke alamat publik 10.0.0.100

Gambar 4.21. Hasil pemetaan client ke-3 kepada server 10.0.0.16 oleh controller POX


(61)

Gambar 4.22. Hasil capture paket data ICMP dari client ke-3 melalui aplikasi Wireshark

4.1.2.8 Client ke-9

Dari gambar-gambar yang menyangkut client ke-9 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-9 tersebut pada server ke-2 dengan alamat IP address 10.0.0.17.


(62)

Gambar 4.24. Hasil pemetaan client ke-9 kepada server 10.0.0.17 oleh controller POX

Gambar 4.25. Hasil capture paket data ICMP dari client ke-9 melalui aplikasi Wireshark


(63)

Dari gambar-gambar yang menyangkut client ke-6 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-6 tersebut pada server ke-3 dengan alamat IP address 10.0.0.18.


(64)

Gambar 4.27. Hasil pemetaan client ke-6 kepada server 10.0.0.18 oleh controller POX

Gambar 4.28. Hasil capture paket data ICMP dari client ke-6 melalui aplikasi Wireshark

4.1.2.10. Client ke-15

Dari gambar-gambar yang menyangkut client ke-15 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik


(65)

10.0.0.100 dan controller POX juga berhasil memetakan client ke-15 tersebut pada server ke-1 dengan alamat IP address 10.0.0.16.


(66)

Gambar 4.30. Hasil pemetaan client ke-15 kepada server 10.0.0.16 oleh controller POX

Gambar 4.31. Hasil capture paket data ICMP dari client ke-15 melalui aplikasi Wireshark


(67)

4.1.2.11. Client ke-5

Dari gambar-gambar yang menyangkut client ke-5 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-5 tersebut pada server ke-2 dengan alamat IP address 10.0.0.17.


(68)

Gambar 4.33. Hasil pemetaan client ke-5 kepada server 10.0.0.17 oleh controller POX

Gambar 4.34. Hasil capture paket data ICMP dari client ke-5 melalui aplikasi Wireshark


(69)

4.1.2.12 Client ke-2

Dari gambar-gambar yang menyangkut client ke-2 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-2 tersebut pada server ke-3 dengan alamat IP address 10.0.0.18.


(70)

Gambar 4.36. Hasil pemetaan client ke-2 kepada server 10.0.0.18 oleh controller POX


(71)

Gambar 4.37. Hasil capture paket data ICMP dari client ke-2 melalui aplikasi Wireshark

4.1.2.13 Client ke-8

Dari gambar-gambar yang menyangkut client ke-8 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-8 tersebut pada server ke-1 dengan alamat IP address 10.0.0.16.


(72)

Gambar 4.39. Hasil pemetaan client ke-8 kepada server 10.0.0.16 oleh controller POX


(73)

Gambar 4.40. Hasil capture paket data ICMP dari client ke-8 melalui aplikasi Wireshark

4.1.2.14 Client ke-11

Dari gambar-gambar yang menyangkut client ke-11 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-11 tersebut pada server ke-2 dengan alamat IP address 10.0.0.17.


(74)

Gambar 4.42. Hasil pemetaan client ke-11 kepada server 10.0.0.17 oleh controller POX


(75)

Gambar 4.43. Hasil capture paket data ICMP dari client ke-11 melalui aplikasi Wireshark

4.1.2.15 Client ke-13

Dari gambar-gambar yang menyangkut client ke-13 dibawah ini dapat disimpulkan bahwa client berhasil melakukan ping terhadap alamat publik 10.0.0.100 dan controller POX juga berhasil memetakan client ke-13 tersebut pada server ke-3 dengan alamat IP address 10.0.0.18.


(76)

Gambar 4.45. Hasil pemetaan client ke-13 kepada server 10.0.0.18 oleh controller POX


(77)

Gambar 4.46. Hasil capture paket data ICMP dari client ke-13 melalui aplikasi Wireshark

4.2 Pengujian

Tahap pengujian sistem merupakan lanjutan dari tahap yang sebelumnya telah dilakukan, yaitu tahap implementasi sistem. Pengujian sistem ini diterapkan dengan melakukan permintaan paket HTTP (Hypertext Transfer Protocol) kepada server melalui alamat publik 10.0.0.100.

4.2.1 Pengujian Terhadap Paket HTTP

Pengujian dilakukan dimana masing-masing client secara bersamaan melakukan permintaan (request) paket HTTP kepada server melalui alamat publik 10.0.0.100. Gambar 4.47 dan 4.48 di halaman selanjutnya ini menampilkan grafik hasil permintaan (request) paket HTTP tersebut, dimana dapat dilihat bahwa grafik percobaan pertama membutuhkan response time (waktu respon) lebih kurang 80 detik, sedangkan percobaan kedua membutuhkan response time (waktu respon) lebih kurang 50 detik.


(78)

Gambar 4.47. Grafik percobaan pertama reqest paket HTTP terhadap server (setelah load-balancing)

Gambar 4.48. Grafik percobaan kedua reqest paket HTTP terhadap server (setelah load-balancing)

4.2.2 Analisis Sebelum dan Setelah Load-Balancing

Ketika seluruh client melakukan akses terhadap server (melalui paket HTTP) yang tidak menerapkan teknik load-balancing maka secara pasti besar waktu yang diperoleh untuk melayani seluruh paket tersebut akan lebih banyak atau lama. Berikut untuk mendukung dan membuktikan implementasi Load-Balancing Dengan Metode Round-Robin Dalam Software Defined Networking (SDN)


(79)

Menggunakan Controller POX berhasil, maka dilakukan perbandingan response time (waktu respon) terhadap seluruh client oleh server sebelum dan setelah load-balancing diterapkan.

Gambar 4.49 dan 4.50 di halaman selanjutnya ini menampilkan grafik hasil permintaan (request) paket HTTP sebelum menerapkan teknik load-balancing, dimana dapat dilihat bahwa grafik percobaan pertama membutuhkan waktu lebih kurang 170 detik, sedangkan percobaan kedua membutuhkan waktu lebih kurang 155 detik.

Gambar 4.49. Grafik percobaan pertama reqest paket HTTP terhadap server (sebelum load-balancing)

Gambar 4.50. Grafik percobaan kedua reqest paket HTTP terhadap server (sebelum load-balancing)


(80)

Jika dilakukan analisis terhadap grafik yang diperoleh dari percobaan pertama dan percobaan kedua sebelum diterapkannya load-bala ncing maka dinyatakan sebagai berikut: Besaran paket data HTTP yang dilayani oleh server cukup besar hingga lebih kurang detik ke 120, hal tersebut mengindikasikan bahwa satu unit server tetap dapat melayani banyak paket data namun membutuhkan waktu yang cukup lama. Sedangkan hasil analisis terhadap grafik yang diperoleh dari percobaan pertama dan percobaan kedua setelah diterapkannya load-balancing dinyatakan sebagai berikut: Besaran paket data HTTP yang dilayani oleh server cukup besar hingga lebih kurang detik ke 25, hal tersebut mengindikasikan bahwa tiga unit server dapat melayani banyak paket data dengan waktu yang cukup singkat.


(81)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil studi literatur, analisis, perancangan, implementasi dan pengujian sistem ini, maka didapat kesimpulan sebagai berikut :

1. Pada saat teknik load-balancing diterapkan response time yang diperoleh adalah ± 50 – 80 detik. Namun ketika load-balancing tidak diterapkan, response time yang diperoleh ± 155 – 170 detik. Dengan kata lain response time yang diperoleh ketika load-balancing diterapkan adalah ± tiga (3) kali lebih cepat daripada response time yang diperoleh ketika teknik load-balancing tidak diterapkan (ketika seluruh client melakukan request paket HyperText Transfer Protocol (HTTP) terhadap alamat publik).

2. Controller akan melakukan pemetaan client terhadap server berdasarkan metode round-robin yang diterapkan. Ketika Client-4, Client-10, Client-1, Client-7 melakukan koneksi pertama kali kepada alamat publik 10.0.0.100 secara berurutan maka controller akan memetakan Client-4 ke server-1, Client-10 ke server-2, Client-1 ke server-3, Client-7 ke server-1. Apabila ada client baru lainnya yang melakukan koneksi, maka akan dilayani oleh server selanjutnya.

3. Pemisahan data-plane dan control-plane pada perangkat jaringan komputer seperti Router dan Switch memungkinkan untuk memprogram perangkat tersebut sesuai dengan yang diiinginkan secara terpusat. Hal ini dapat dibuktikan dengan berhasilnya load balancing diterapkan dengan metode round-robin melalui penelitian ini.


(82)

5.2. Saran

Pada penelitian ini terdapat beberapa saran dalam pengembangan penelitian ini lebih lanjut, yakni:

1. Perlunya pengimplementasian SDN dengan perangkat yang sesungguhnya sehingga proses perhitungan response time lebih akurat karena tidak tergantung hanya pada satu komputer.

2. Percobaan dapat menggunakan metode load balancing yang berbeda contohnya Weighted Round-Robin, Least Connections, dan lain-lain. 3. Percobaan dapat dilakukan dengan mengkombinasikan teknik load

balancing dengan teknik lainnya seperti firewall, QOS, bandwidth management, dan lain-lain.


(83)

DAFTAR PUSTAKA

Azodomolky, S. 2013. Software Defined Networking With OpenFlow

Al-Howaide, A.Z, Doulat, A.S & Khamayseh, Y.M. 2011. Performance Evaluation of Different Scheduling Algorithms in WIMAX

Bourke, T. 2001. Server Load Balancing

Ellrod, C. 2010. Load Balancing Round Robin. www.citrix.com

H. Long, Y. Shen, M. Guo & F. Tang, 2013. “LABERIO: Dynamic load-balanced routing in OpenFlow-enabled networks,” IEEE 27th International Conference on Advanced Infor-mation Networking and Applications

Khondoker , R., Zaalouk, A., Marx, R & Bayarou, K. 2014. Feature-ba sed Comparison and Selection of Software Defined Networking (SDN) Controllers

Monsanto, C., Reich, J., Foster, N., Rexford, J & Walker, D. 2013. “Composing Softwa re-Defined Networks”

Nadeau, T.D & Gray, K. 2013. SDN:Software Defined Networks

Reich, J., Monsanto C. & Foster N. 2013. “Modular SDN Programming With Pyretic”

Ruey, J., Yahya, W & Ananta, M.T. 2011. “Load Balancing and Multicasting

Using the Extended Dijkstra’s Algoritm in Software Defined Networking

Smith, P., Schaeffer-Filho, A., Hutchison, D & Mauthe, A. 2014. Management Patterns: SDN-Enabled Network Resilience Management

US: Open Networking Foundation. 2013. Software-defined networking: The new norm for networks. ONF White Paper. Palo Alto.

US: Open Networking Foundation. 2012. Openflow Switch Specification

US: Open Networking Foundation. 2013. Softwa re Defined Networking Security Considerations in the Data Center developer Works cn linux cluster Wensong, Z., Linux server cluster sistem http:ll www 900.Ibm.com

Zhou, Y., Ruan, L., Xiao, L & Liu, R. 2014. “A Method for Load Balancing based on Software Defined Network”


(84)

LISTING PROGRAM

Kode Program Load-Balancing dengan Metode Round-Robin # Import semua module yang dibutuhkan

from pyretic.lib.corelib import * from pyretic.lib.std import * from pyretic.lib.query import *

from pyretic.modules.mac_learner import mac_learner from datetime import datetime

# Penerapan Load-Balancing Round-Robin # Paket pertama akan di drop -> identifikasi

# Merubah Alur dari

# client -> public address(virtual), dimana client -> server # server -> client, dimana public address(virtual) -> client def rubah_alur(cli, ser, pub):

cli_pub = match(srcip=cli, dstip=pub) ser_cli = match(srcip=ser, dstip=cli)

return ((cli_pub >> modify(dstip=ser)) + (ser_cli >> modify(srcip=pub)) + (~cli_pub & ~ser_cli))

class rrlb(DynamicPolicy): # Inisialisasi

def __init__(self, clients, servers, public_ip): super(rrlb,self).__init__() # Inisialisasi


(85)

self.clients = clients self.servers = servers self.public_ip = public_ip self.index = 0

self.query = packets(limit=1,group_by=['srcip']) # traffic monitoring

self.query.register_callback(self.update_policy) #

Callback Query

self.lb_policy = None

self.policy = (match(dstip=self.public_ip) +

match(dstport=80) >> self.query)

def update_policy(self, pkt): client = pkt['srcip']

# Agar server tidak di redirect ke dirinya sendiri if client in self.servers:

return

# Memanggil fungsi Round-Robin server = self.round_robin()

# Memanggil fungsi load-balancing

p = rubah_alur(client, server, self.public_ip)

print"Memetakan Client:%s ke Server:%s" % (client, server)

if self.lb_policy:

self.lb_policy = self.lb_policy >> p else: self.lb_policy = p


(86)

self.policy = self.policy + self.lb_policy # Pemilihan server dengan metode Round_Robin def round_robin(self):

server = self.servers[self.index % len(self.servers)] self.index += 1

return server

def hitung_paket():

q = count_packets(2.5,['srcip','dstip']) q.register_callback(hitung_paket_print) return q

def hitung_paket_print(counts):

print "----Perhitungan Banyak Paket----" print datetime.now().time().isoformat() if counts:

for pred, pkt_byte_count in counts.iteritems(): print pred, ':', pkt_byte_count

else:

print 'Belum Ada Paket Data yang Mengalir.'

def hitung_pakets(): pass

def hitung_paket_prints(counts): pass

def main(clients=15, servers=3):


(87)

servers = int(servers)

ip_prefix = "10.0.0."

ip_public = IP(ip_prefix + "100")

print ""

print " ++++++++++++++++++++++++++++++++" print " + SELAMAT DATANG ADMINISTRATOR +" print " ++++++++++++++++++++++++++++++++" print ""

print "Waktu Sekarang: ", datetime.now() print ""

print " * Implementasi Load-Balancing Dengan Metode Round-Robin *"

print "---"

print ""

print "Topologi Jaringan" print ""

print "Client-1__" print " \__" print "Client-2__ \__" print " \__ \__" print "Client-3___ \_ \__" print " \__ \___ \___" print "Client-4____ \__ \_____ \__" print " \__ \_____ \__ \_"

print "Client-5_____ \______ \____\_ \

_Server-1"

print " \_______ \____ \_\_\_ _/" print "Client-6________ \____ \_ \_\_\_ _/" print " \________ \___\_\_\_\_ _/" print "Client-7______________ \____\_\_\_\_\_ __/"


(1)

self.policy = self.policy + self.lb_policy # Pemilihan server dengan metode Round_Robin def round_robin(self):

server = self.servers[self.index % len(self.servers)] self.index += 1

return server

def hitung_paket():

q = count_packets(2.5,['srcip','dstip']) q.register_callback(hitung_paket_print) return q

def hitung_paket_print(counts):

print "----Perhitungan Banyak Paket----" print datetime.now().time().isoformat() if counts:

for pred, pkt_byte_count in counts.iteritems(): print pred, ':', pkt_byte_count

else:

print 'Belum Ada Paket Data yang Mengalir.'

def hitung_pakets(): pass

def hitung_paket_prints(counts): pass

def main(clients=15, servers=3):


(2)

servers = int(servers)

ip_prefix = "10.0.0."

ip_public = IP(ip_prefix + "100")

print ""

print " ++++++++++++++++++++++++++++++++" print " + SELAMAT DATANG ADMINISTRATOR +" print " ++++++++++++++++++++++++++++++++" print ""

print "Waktu Sekarang: ", datetime.now() print ""

print " * Implementasi Load-Balancing Dengan Metode Round-Robin *"

print "---"

print ""

print "Topologi Jaringan" print ""

print "Client-1__" print " \__" print "Client-2__ \__" print " \__ \__" print "Client-3___ \_ \__" print " \__ \___ \___" print "Client-4____ \__ \_____ \__" print " \__ \_____ \__ \_"

print "Client-5_____ \______ \____\_ \ _Server-1"

print " \_______ \____ \_\_\_ _/" print "Client-6________ \____ \_ \_\_\_ _/" print " \________ \___\_\_\_\_ _/" print "Client-7______________ \____\_\_\_\_\_ __/"


(3)

print " \_____ \ \ \ \ \ \ /"

print "Client-8 ___________________== S W I T C H ---Server-2"

print " _______/ / / / / // \_" print "Client-9 _____________/ _____/ / / / // \_" print " ________/ _/ / / // \_" print "Client-10_______/ ____/ / / // \_" print " ________/ ____/ / // \_"

print "Client-11_______/ ____/ ___/_// \_Server-3"

print " ______/ ___/ _/ /" print "Client-12______/ __/ ___/ _/" print " _____/ __/ ___/" print "Client-13_______/ ____/ __/" print " ___/ ___/" print "Client-14______/ __/" print " __/" print "Client-15______/" print ""

print "---"

# Menentukan IP address untuk clients ip_client = []

for i in range(1, clients+1):

alamat_ip = IP(ip_prefix+str(i)) ip_client.append(alamat_ip)

# Menentukan IP address untuk servers ip_server = []

for i in range(1+clients, clients+servers+1): alamat_ip = IP(ip_prefix+str(i))


(4)

print"Alamat IP Publik adalah %s" % ip_public print "Alamat Server: "

for i in range(0, servers):

print "Server ",int(i+1), " : ", ip_server[i] print ""

print "Alamat Client: " for i in range(0, clients):

print "Client ", int(i+1), " : ", ip_client[i] print ""

return (rrlb(ip_client, ip_server, ip_public) + hitung_paket()) >> mac_learner()

Kode Program Mininet

from mininet.topo import Topo from mininet.net import Mininet

from mininet.node import CPULimitedHost, Controller, RemoteController

from mininet.link import TCLink

from mininet.util import dumpNodeConnections from mininet.log import setLogLevel

class SingleSwitchTopo(Topo):

"Single switch connected to n hosts." def __init__(self, n=18, **opts): Topo.__init__(self, **opts) switch = self.addSwitch('s1')


(5)

# Each host gets 50%/n of system CPU host = self.addHost('h%s' % (h + 1), cpu=.5/n)

# 0.1 Mbps, 5ms delay, 10% loss, 1000 packet queue self.addLink(host, switch, bw=0.01,

max_queue_size=1000, use_htb=True)

def perfTest():

"Create network and run simple performance test" topo = SingleSwitchTopo(n=18)

net = Mininet(topo, link=TCLink, controller=RemoteController) net.addController('c1', controller=RemoteController,

ip='127.0.0.1', port=6633)

print "Host16, Host17 dan Host18 sebagai Server" h16= net.get('h16')

h16.cmd('python -m SimpleHTTPServer 80 &') h17= net.get('h17')

h17.cmd('python -m SimpleHTTPServer 80 &') h18= net.get('h18')

h18.cmd('python -m SimpleHTTPServer 80 &') return net


(6)

DAFTAR RIWAYAT HIDUP

Nama : DWINSON SITOHANG

Tempat,Tanggal Lahir : Ujungbatu, 14 Maret 1991 Agama : Kristen Protestan

Kewarganegaraan: Indonesia

Email : dwinson.tohang@gmail.com, dwinson.sitohang@students.usu.ac.id No.Hp : 085277721348

PENDIDIKAN FORMAL

2009

2012 : Program Studi D3 Teknik Informatika Akademi Manajemen

Informatika Komputer Medan Business Polytechnic (MBP)

2006

2009 : SMK PEMDES Ujungbatu

2003

2006 : SMP Negeri 1 Ujungbatu

1995

2001 : SD

Negeri 041 Ujungbatu

(Kelas I

Kelas VI )

PENDIDIKAN NON FORMAL

2013

: CCNA Exploration: Network Fundamental di Cisco Networking

Academy

2013

: CCNA Exploration: Routing Protocols and Concepts di Cisco

Networking Academy

2014

: O

nline course “

Computer Networks

” di coursera.org

2014

: O

nline course “

Internet History, Technology, and Security

” di

coursera.org

2014

: O

nline course “

Programming for Everybody (Python)

” di

coursera.org

2014

: O

nline course “

An Introduction to Interactive Programming in

Python

” di coursera.org