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 Software 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
Software-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
Universitas Sumatera Utara
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 instruksiintruksi 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:
Universitas Sumatera Utara
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 Software Defined Networking (SDN) (US: Open Networking Foundation. 2013), yaitu : 1. Layer Infrastruktur (Infrastructure Layer)
Universitas Sumatera Utara
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 forwarding 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)
Universitas Sumatera Utara
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 (Sumber: Smith, P., Schaeffer-Filho, A., Hutchison, D & Mauthe, A. 2014.)
Universitas Sumatera Utara
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:
Universitas Sumatera Utara
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
Universitas Sumatera Utara
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.
Universitas Sumatera Utara
Di bawah ini adalah flowchart Round-Robin Load-Balancing: START
Jumlah Server
Client Melakukan Request
Paket yang masuk
Paket Request berstatus Ready dan berada dalam antrian Paket Request X di antrian terdepan?
No
Paket Request X mengantri
Yes
Paket Request X diproses dan diarahkan kepada server Server = Paket Request X % jumlah server
Yes
Server selanjutnya No
Semua paket Request telah dilayani END
Gambar 2.6. Flowchart Round-Robin Load-Balancing
Universitas Sumatera Utara
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 : Server = Paket request ke-1 modulo jumlah server
Universitas Sumatera Utara
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 :
Universitas Sumatera Utara
Client 1
Request Reply
AlamatIP: 202.10.133.1 Client 2
AlamatIP: 202.10.133.2
Server 1
Alamat IP: 192.168.1.1
Client 3
AlamatIP: 202.10.133.3 Client 4
AlamatIP: 202.10.133.4 Client 5
Switch
AlamatIP: 202.10.133.5
IP Virtual: 8.8.8.8
Client 6
Server 2
Alamat IP: 192.168.1.2
AlamatIP: 202.10.133.6 Client 7
AlamatIP: 202.10.133.7 Client 8
AlamatIP: 202.10.133.8 Client 9
AlamatIP: 202.10.133.9
Server 3
Alamat IP: 192.168.1.3
Client 10
AlamatIP: 202.10.133.10
Gambar 2.7. Contoh Kasus Load Balancing dan dengan Perhitungan Metode Round Robin
Universitas Sumatera Utara
2.5. Penelitian Terkait
1.
Jurnal oleh Yuanhao Zhou, Li Ruan, Limin Xiao dan Rui Liu. 2014. “A Method for Load Balancing based on Software 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 Software 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 Software-Defined Networks” Dalam jurnal mereka dijelaskan kemampuan Software 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.
Universitas Sumatera Utara