• Tidak ada hasil yang ditemukan

BAB VI PENUTUP

6.2. Saran

Adapun saran dari penulis yang diberikan dari kekurangan sistem yang ada, maupun pengembangan lebih lanjut yaitu: 1. Penambahan pengaruh kecepatan kendaraan sebagai

parameter penentuanflow.

2. Penggunaan machine learning berdasarkan lokasi tertentu agar penentuan flowlebih cepat dan mengurangi redundansi data.

3. Penambahan fitur DHCP agar client yang terhubung ke sistem mendapatkan konfigurasi jaringan secara otomatis. 4. Deteksi konfigurasi perangkat diperlukan agar

meminimalisasi interaksi manusia dalam melakukan konfigurasi sistem.

5. Penggunaan hardware yang seragam diperlukan agar pengambilan parameter pemilihanflowlebih baik.

DAFTAR PUSTAKA

[1] R. B'Far, “Mobile Computing Principles”, Cambridge: Cambridge University Press, 2005.

[2] Kopparapu, Chandra,load switching Servers, Firewalls, and Caches, New York: New York, 2002.

[3] C. Ellrod, “Load Balancing – Round Robin,” Citrix, 3

September 2010. [Online]. Available:

https://www.citrix.com/blogs/2010/09/03/load-balancing-round-robin/. [Diakses 6 Januari 2017].

[4] C. Ellrod, “Load Balancing – Least Connections,” Citrix, 2

September 2010. [Online]. Available:

https://www.citrix.com/blogs/2010/09/02/load-balancing-least-connections/. [Diakses 6 Januari 2017].

[5] C. Ellrod, “Load Balancing – Hash Method,” Citrix, 4

September 2010. [Online]. Available:

https://www.citrix.com/blogs/2010/09/04/load-balancing-hash-method/. [Diakses 6 Januari 2017].

[6] W. Stallings, “Wireless Connections and Networking Second Edition”, New Jersey: Pearson Education, 2005.

[7] “Software-Defined Networking (SDN) Definition” , Open Networking Foundation. [online]. Available:

https://www.opennetworking.org/sdn-resources/sdn-definition. [diakses 6 Januari 2017].

[8] “OpenDaylight User Guide”, Linux Foundation. [Online]. Available:https://www.opendaylight.org/sites/opendaylight/f iles/bk-user-guide.pdf. [diakses 6 Januari 2017].

[9] “OpenDaylight Helium Application Developers’ Tutorial” ,

SDN Hub. [Online]. Available:

http://sdnhub.org/tutorials/opendaylight-helium/. [diakses 6 Januari 2017].

[10] Fielding, Roy Thomas. “Architectural Styles and the Design of Network-based Software Architectures”. University of

California, Irvine: 2000. [Online]. Available: http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_ style.htm. [diakses 6 Januari 2017].

[11] "Wireless Local Area Network (WLAN)", Techopedia. [Online].Available:https://www.techopedia.com/definition/5 107/wireless-local-area-network-wlan. [diakses 6 Januari 2017].

[12] “OpenFlow”, The McKeown Research Group. Stanford

University. [Online]. Available :

http://yuba.stanford.edu/cs244wiki/index.php/Overview. [diakses 6 Januari 2017].

[13] “OpenFlow”, Modeling of Security and Systems (MOSES) Research Group. University of Illinois. [Online]. Available : https://s3f.iti.illinois.edu/usrman/openflow.html. [diakses 6 Januari 2017].

7LAMPIRAN

Bagian ini merupakan lampiran dari dokumen sebagai pelengkap buku Tugas Akhir dimana akan diberikan langkah-langkah konfigurasi sistem dan potongan kode sumber program dari fungsi-fungsi yang digunakan.

A. Langkah-langkah Konfigurasi Mikrotik dengan OpenFlow

1. DownloadPaket OpenFlow

Download paket OpenFlow Mikrotik pada alamat http://www.mikrotik.com/download

2. InstallPaket OpenFlow

ExtractkemudianInstallpaket OpenFlow kedalamroutermelalui menufiles.

3. Konfigurasi Alamat IP

4. KonfigurasiInterface

Lakukan konfigurasi pada router dengan melakukan setting master-port= none.

5. Konfigurasi OpenFlow

[admin@MikroTik] > OpenFlow add

name=ofswitch1 controllers=192.168.88.254 [admin@MikroTik] > OpenFlow enable ofswitch1 [admin@MikroTik] > OpenFlow port add

switch=ofswitch1 interface=ether3

switch=ofswitch1 interface=ether4 [admin@MikroTik] > OpenFlow port add

switch=ofswitch1 interface=ether5

[admin@MikroTik] > OpenFlow port add

switch=ofswitch1 interface=ether6

[admin@MikroTik] > OpenFlow port add

switch=ofswitch1 interface=wlan

[admin@MikroTik] > OpenFlow port enable

numbers=0

[admin@MikroTik] > OpenFlow port enable

numbers=1

[admin@MikroTik] > OpenFlow port enable

numbers=2

[admin@MikroTik] > OpenFlow port enable

numbers=3

[admin@MikroTik] > OpenFlow port enable

numbers=4

B. Langkah-langkah Konfigurasi Controller dengan OpenDaylight

1. InstallJava OpenJDK

$ sudo apt-get install openjdk-8-jre 2. DownloadPaketControllerOpenDaylight-OSGi $ wget https://nexus.OpenDaylight.org/content/repos itories/OpenDaylight.release/org/OpenDayligh t/controller/distribution.OpenDaylight/0.1.6 -Helium-SR4/distribution.OpenDaylight-0.1.6-Helium-SR4-osgipackage.zip

3. Extract PaketControllerOpenDaylight-OSGi $ unzip distribution.OpenDaylight-0.1.6-Helium-SR4-osgipackage.zip

4. Setting EnvironmentJAVA_HOME

$ export JAVA_HOME=/usr/lib/jvm/java-xx-openjdk-yy

5. Eksekusi AplikasiControllerOpenDaylight-OSGi $ sudo ./run.sh

Apabila telah keluar status netconf connector initialized successfully, maka aplikasicontrollertelah berhasil dipasang dan dijalankan.

Akses interface controller melalui browser dengan port 8080 kemudian masukkan username admin password admin. Tambahkansubnet gateway address sesuai dengan jaringan yang dipakai.

Kemudian simpan alamat IP dan simpan konfigurasi OpenDaylightcontrolleragar tersimpan permanen.

C. Langkah-langkah Konfigurasi Basis Data InfluxDB dan Network MonitoringGrafana

1. TambahRepositoryInfluxDB $ curl -sL https://repos.influxdata.com/influxdb.key | sudo aptkey add -$ source /etc/lsb-release $ echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee

/etc/apt/sources.list.d/influxdb.list

2. InstallInfluxDB

$ sudo apt-get update && sudo apt-get install influxdb

3. JalankanServiceInfluxDB $ sudo service influxdb start $ influx

4. BuatDatabasecontrollerdb dan Tabel portstats $ influx

$ create database controllerdb $ use database controllerdb

$ insert portstats,host=nodeX tx=0,rx=0

5. TambahRepositoryGrafana $ echo "deb

https://packagecloud.io/grafana/stable/debian/ wheezy main" | sudo tee

/etc/apt/sources.list.d/grafana.list

$ curl https://packagecloud.io/gpg.key | sudo aptkey add

-6. InstallGrafana

$ sudo apt-get update && sudo apt-get install grafana

7. JalankanServiceGrafana

$ sudo service grafana-server start

8. BuatDashboard Network Monitoring

Akses interface Grafana melalui browser dengan port 3000. Masukkanusernameadminpasswordadmin. KlikData Source

Isi beberapa parameter pada kolom name, type, url, access, database, user, password. Kemudian klikadd.

Pilih antarmuka yang ingin ditampilkan, pada konfigurasi ini dipilihgraph.

Klikjudulpada grafik, kemudian klikEdit.

Isi parameter panel data source dengan data source yang telah ditambahkan dan sesuaikanqueryuntuk menampilkan grafik.

D. KonfigurasiHost Router 1. Installwvdial

$ sudo apt-get update && sudo apt-get install grafana

2. Konfigurasi wvdial $ sudo wvdialconf

Lakukan konfigurasi wvdial untuk masing-masing ISP. 3. KonfigurasiForwarding

$ sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

$ sudo iptables A FORWARD i ppp0 o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

$ sudo iptables A FORWARD i eth0 o ppp0 -j ACCEPT

E. Potongan Kode Program Load Switching tanpa Waktu Tunggu dengan REST API

Langkah pertama adalah melakukan inisialisasi gateway mac address. Normalnya, gateway mac address adalah mac address interfacemesincontrolleryang terhubung denganrouter.

Langkah kedua adalah mengambil datahostyang terhubung pada OpenFlow router beserta node ID OpenFlow router tersebut. Kode program ini ditunjukkan pada kode sumber 1 berikut ini. h = httplib2.Http(".cache")

h.add_credentials("admin", "admin")

resp,content=h.request("http://localhost:8080/co ntroller/nb/v2/hosttracker/default/hosts/active"

)

jsonData = json.loads(content) hostData = jsonData['hostConfig']

Kode Sumber 1. Kode Sumber Pengambilan DataHostpada OpenFlowRouter.

Langkah ketiga adalah menginisialisasi master node atau host router yang dijadikan koneksi utama. Kode program ini ditunjukkan pada kode sumber 2 berikut ini.

os.system('curl -u admin:admin -H "Content-type: application/json" -X PUT -d "{\\"installInHw\\":\\"true\\",\\"name\\":\\ "flowx\\",\\"node\\":{\\"id\\":\\"'+nodeID+' \\",\\"type\\":\\"OF\\"},\\"etherType\\":\\" 0x800\\",\\"priority\\":\\"500\\",\\"dlDst\\ ":\\"'+gateway+'\\",\\"actions\\":[\\"SET_DL _DST='+macMasterNode+'\\",\\"OUTPUT=N\\"]}" "http://localhost:8080/controller/nb/v2/flow programmer/default/node/OF/'+nodeID+'/static Flow/flowx"')

Kode Sumber 2. Kode Sumber InisialisasiMaster Node. Flowxadalah namaflowyang digunakan,nodeIDadalah ID Unik OpenFlow router yang didapat setelah pengambilan data host, gateway adalah gateway mac address. macMasterNode adalah mac address dari master node yang digunakan, N adalah nomor portpadamaster node.

Langkah keempat yaitu dilakukan pengambilan data throughput yang terdapat pada tabel port controller. Kode program ini ditunjukkan pada kode sumber 3 berikut ini.

resp,content=h.request("http://127.0.0.1:8080/co ntroller/nb/v2/statistics/default/port/")

Kode Sumber 3. Kode Sumber Pengambilan DataThroughputpada TabelPort Controller.

Langkah kelima adalah memasukan data throughput diatas kedalamdatabaseInfluxDB. Kode program ini ditunjukkan pada kode sumber 4 berikut ini.

influxdata="host=%s tx=%s,rx=%s" % (nodename, txdata, rxdata)

os.system("curl -XPOST

'http://%s:%s/write?db=%s' --data-binary 'portstats,%s'" % (host, port, dbname, influxdata))

Kode Sumber 4, Kode Sumber Memasukkan DataThroughput

kedalamDatabase.

Langkah keenam yaitu melakukan pengambilan data throughput terbaik pada database. Kode program ini ditunjukkan pada kode sumber 5 berikut ini.

query='select max(rx) as maxrx, host from portstats where time > now() - 1s'

client=InfluxDBClient(host,port,user,password,db name) result = client.query(query) arrayList=list(result.get_points(measurement='po rtstats')) maxrx=arrayList[0]['maxrx'] node=arrayList[0]['host']

Kode Sumber 5. Kode Sumber Pengambilan DataThroughput

Terbaik padaDatabasetanpa Waktu Tunggu.

Langkah ketujuh yaitu melakukan perbandingan dan pembuatan flow berdasarkan jumlah throughput terbaik. Kode program ini ditunjukkan pada kode sumber 6 berikut ini.

if maxData[0]=='nodeName' and maxData[1]>0: os.system('curl -u admin:admin -H "Content-type: application/json" -X PUT -d "{\\"installInHw\\":\\"true\\",\\"name\\":\\ "flowx\\",\\"node\\":{\\"id\\":\\"'+nodeID+'

\\",\\"type\\":\\"OF\\"},\\"etherType\\":\\" 0x800\\",\\"priority\\":\\"500\\",\\"dlDst\\ ":\\"'+gateway+'\\",\\"actions\\":[\\"SET_DL _DST='+macMasterNode+'\\",\\"OUTPUT=N\\"]}" "http://localhost:8080/controller/nb/v2/flow programmer/default/node/OF/'+nodeID+'/static Flow/flowx"')

Kode Sumber 6. Kode Sumber Perbandingan dan PembuatanFlow. nodeName adalah nama host router yang digunakan sebagai gateway keinternet.

F. Gambaran Umum Cara Kerja Aplikasi

Load Switching OpenFlow REST Router OpenDaylight Grafana InfluxDB

G. Potongan Kode Program Load Switching dengan Waktu Tunggu dengan REST API

Secara umum, kode programload switching dengan waktu tunggu memiliki kesamaan dengan kode program load switching tanpa waktu tunggu. Tetapi kode programload switchingdengan waktu tunggu terdapat perubahan penambahan counter dan perbedaan kode program pengambilanthroughputpada tabelport controller. Kode program ini ditunjukkan pada kode sumber 7 berikut ini. query='select max(rx) as maxrx, host from portstats where time > now() - 5s'

client=InfluxDBClient(host,port,user,password,db name) result = client.query(query) arrayList=list(result.get_points(measurement='po rtstats')) maxrx=arrayList[0]['maxrx'] node=arrayList[0]['host']

Kode Sumber 7. Kode Sumber Pengambilan DataThroughput

Terbaik padaDatabasedengan Waktu Tunggu.

H. Potongan Kode Program Pengiriman Parameter pada Host Router

Kode program pengiriman parameter pada host router terbagi menjadi 3 (tiga) bagian, yaitu pengambilan round trip time, pengambilan throughput, serta penghitungan dan pengiriman parameter.

Kode program pengambilan round trip time ditunjukkan pada kode sumber 8 berikut ini.

os.system("ping -c 1 8.8.8.8 | awk 'BEGIN {FS="+'"[=]|[ ]"'+"} {print $10}' | head -n 2 | tail -n 1 > pingout.txt ")

with open('pingout.txt','r') as f: data=f.read()

if data=='': data=0

return float(data)

Kode Sumber 8. Kode Sumber PengambilanRound Trip Time.

Kode program pengambilan throughput modemditunjukkan pada kode sumber 9 berikut ini.

with open('/sys/class/net/'+iface+'/statistics/' + t + '_bytes', 'r') as f:

data=f.read() return float(data)

Kode Sumber 9. Kode Program PengambilanThroughput Modem. ifacemerupakan interface yang digunakanmodemuntuk koneksi ke internet. Normalnya, interface ini menggunakan ppp0. t merupakan jenisthroughputyang diambil (tx atau rx).

Kode program penghitungan dan pengiriman parameter ditunjukkan pada kode sumber 10 berikut ini.

param=(rbps+tbps)/rtt

os.system('ping -s '+str(param)+' -c 1 192.168.1.x')

Kode Sumber 10. Kode program penghitungan dan pengiriman parameter.

rbpsmerupakanthroughputrx dalambit per seconds.tx merupakanthroughputtx dalambit per seconds.rttmerupakan round trip time,xmerupakan alamat IPhost routeryang menjadi tetangganya.

BIODATA PENULIS

Yoga Bayu Aji Pranawa, lahir pada tanggal 20 April 1995 di Klaten, Jawa Tengah. Penulis merupakan seorang mahasiswa yang sedang menempuh studi di Jurusan Teknik Informatika Institut Teknologi Sepuluh Nopember Surabaya. Penulis memiliki hobi bermain, editing, dan producing musik terutama musik komersil. Penulis juga merupakan staff divisi kementrian komunikasi dan informasi Badan Eksekutif Mahasiswa (BEM) Insitut Teknologi Sepuluh Nopember periode 2014-2015. Aktivitas di dunia Teknologi Informasi tidak hanya dikembangkan di lingkup perkuliahan saja. Penulis mengikuti beberapa komunitas Tekonogi Informasi antara lain, Indonesian Backtrack Team, VMware client group Asean, Cisco network engineer Indonesia. Beberapa pelatihan di bidang Teknologi informasi pernah diikuti, diantaranya workshop network security ICrOSS, workshop Cisco certification, workshop Cisco for corporate, Virtualization, workshop desain dan implementasi clusteringWindowsserver. Beberapa sertifikasi dan penghargaan internasional pernah diraih, diantaranya Cisco Certified Network Associate (CCNA), Microsoft Technology Associate (MTA), VMware vExpert 2015, dan VMware vExpert 2016. Penulis juga pernah menjadi pembicara dalam komunitas Indonesian Backtrack Team regional Surabaya dalam hal server virtualization dan pernah memegang proyek berskala internasional bersama dengan Neeco Asia Pacific.

Dokumen terkait