• Tidak ada hasil yang ditemukan

BAB VI KESIMPULAN DAN SARAN

6.2 Saran

Setelah melakukan simulasi jaringan VLAN ini, penulis memberikan beberapa saran bagi pembaca dan pengembangan selanjutnya. Adapun saran dari penulis adalah:

1. Peneliti menyarankan untuk penelitian selanjutnya menggunakan controller lainnya agar dapat mengetahui lebih dalam perbedaan proses setiap controller.

2. Penulis menyarankan untuk mengimplementasikan jaringan VLAN yang menerapkan SDN pada jaringan saat ini supaya dapat melihat perbedaan performansi jaringan saat ini dengan jaringan yang menerapkan SDN.

3. Penulis menyarankan untuk menambahkan proses intervlan routing agar semua VLAN dapat saling terkoneksi.

DAFTAR PUSTAKA

A, Jesin. 2010. Packet Tracer Simulator. Birminghang-Mumbai: Packt Publishing Enterprise.

Azodolmolky, Siamak. 2013. Software Defined Networking with OpenFlow.

Birmingham-Mumbai: Packt Publishing.

Forouzan, Behrouz A. 2013. Data Communication and Networking Fifth Edition.

New York: McGraw-Hill.

Goransson, Paul & Black, Chuck. 2014. Software Defined Networks A Comprehensive Approach. USA: Morgan Kaufmann.

IDN, Pesantren Networkers. 2015. SDN Software Defined Networking. Jakarta: ID-Networkers.

Kakiay, Thomas J. 2004. Pengantar Sistem Simulasi. Yogyakarta: Penerbit Andi.

Katadie, Rikie, Utami, Ema, Pramono, Eko. 2014. Prototipe Infrastruktur Software Defined Network dengan Protokol OpenFlow Menggunakan Ubuntu Sebagai Controller. Yogyakarta: STMIK Amikom.

Linux Foundation. 2013. Platform Overview.

https://www.opendaylight.org/platform-overview/. Diakses pada 01 April 2016.

Madani, S.A., Kazmi, J & Mahlkecht, S. 2010. Modeling and Simulation.

Matias, Jon, Tornero, Borja, Mendiola, Alaitz, Jacob, Eduardo, Toledo, Nerea.

2012. Implementing Layer 2 Network Virtualization using OpenFlow:

Challenges and Solutions. Bilbao: University of the Basque Country (UPV/EHU).

Micro, Andi. 2012. Dasar-Dasar Jaringan Komputer. Banjar Baru: Clear OS Indonesia.

Mininet Team. 2013. Mininet Overview. http://mininet.org/overview. Diakses pada 19 Maret 2016.

Morreale, Patricia & Anderson, James M. 2015. Software Defined Networking Design and Deployment. Boca Raton: CRC Press.

Mulyana, Eueung. 2014. Buku Komunitas SDN-RG. Bandung: Published with GitBook.

Nadeau, Thomas D & Grey, Ken. 2013. SDN: Software Defined Networks.

Sebastopol: O’Reilly Media.

Pratama, I Putu Agus Eka. 2015. Handbook Jaringan Komputer. Bandung:

Informatika

Pujolle, Guy. 2015. Software Networks Virtualization, SDN, 5G and Security. Great Britain: Wiley.

Sofana, Iwan. 2010. CCNA dan Jaringan Komputer. Bandung: Informatika.

Sofana, Iwan. 2012. Cisco CCNP dan Jaringan Komputer. Bandung: Informatika.

Stallings, William. 2013. Software Defined Networks and OpenFlow. The Internet Protocol Journal.

LAMPIRAN

a. Code mininet menggunakan 2 switch:

#!/usr/bin/python

"""

Script created by VND - Visual Network Description (SDN version)

"""

from mininet.net import Mininet

from mininet.node import Controller, RemoteController, OVSKernelSwitch, IVSSwitch, UserSwitch

from mininet.link import Link, TCLink from mininet.cli import CLI

from mininet.log import setLogLevel

def topology():

h8 = net.addHost( 'h8', mac='00:00:00:00:00:08',

if __name__ == '__main__':

setLogLevel( 'info' ) topology()

b. Code mininet menggunakan 3 switch:

#!/usr/bin/python

"""

Script created by VND - Visual Network Description (SDN version)

"""

from mininet.net import Mininet

from mininet.node import Controller, RemoteController, OVSKernelSwitch, IVSSwitch, UserSwitch

from mininet.link import Link, TCLink from mininet.cli import CLI

from mininet.log import setLogLevel

def topology():

net.addLink(h8, s3)

if __name__ == '__main__':

setLogLevel( 'info' ) topology()

c. Code pox controller menggunakan 2 switch:

#!/usr/bin/python

"""

#Code created by VND - Visual Network Description (SDN version)

"""

from pox.core import core

from pox.lib.addresses import IPAddr from pox.lib.addresses import EthAddr import pox.openflow.libopenflow_01 as of

log = core.getLogger()

#flow0:

switch0 = 0000000000000001

flow0msg = of.ofp_flow_mod() flow0msg.cookie = 0

flow0msg.match.in_port = 1

# ACTIONS---

flow0vlan_id = of.ofp_action_vlan_vid (vlan_vid = 10) flow0out = of.ofp_action_output (port = 4)

flow0msg.actions = [flow0vlan_id, flow0out]

#flow1:

switch1 = 0000000000000001 flow1msg = of.ofp_flow_mod() flow1msg.cookie = 0

flow1msg.match.in_port = 2

# ACTIONS---

flow1vlan_id = of.ofp_action_vlan_vid (vlan_vid = 20) flow1out = of.ofp_action_output (port = 4)

flow1msg.actions = [flow1vlan_id, flow1out]

#flow2:

switch2 = 0000000000000001 flow2msg = of.ofp_flow_mod() flow2msg.cookie = 0

flow2msg.match.in_port = 3

# ACTIONS---

flow2vlan_id = of.ofp_action_vlan_vid (vlan_vid = 30) flow2out = of.ofp_action_output (port = 4)

flow2msg.actions = [flow2vlan_id, flow2out]

#flow3:

switch3 = 0000000000000001 flow3msg = of.ofp_flow_mod() flow3msg.cookie = 0

flow3msg.match.in_port = 4 flow3msg.match.dl_vlan = 10

# ACTIONS--- flow3stripvlan = of.ofp_action_strip_vlan () flow3out = of.ofp_action_output (port = 1) flow3msg.actions = [flow3stripvlan, flow3out]

#flow4:

switch4 = 0000000000000001 flow4msg = of.ofp_flow_mod() flow4msg.cookie = 0

flow4msg.match.in_port = 4 flow4msg.match.dl_vlan = 20

# ACTIONS--- flow4stripvlan = of.ofp_action_strip_vlan () flow4out = of.ofp_action_output (port = 2) flow4msg.actions = [flow4stripvlan, flow4out]

#flow5:

switch5 = 0000000000000001 flow5msg = of.ofp_flow_mod() flow5msg.cookie = 0

flow5msg.match.in_port = 4 flow5msg.match.dl_vlan = 30

# ACTIONS--- flow5stripvlan = of.ofp_action_strip_vlan () flow5out = of.ofp_action_output (port = 3) flow5msg.actions = [flow5stripvlan, flow5out]

#flow6:

switch6 = 0000000000000002 flow6msg = of.ofp_flow_mod() flow6msg.cookie = 0

flow6msg.match.in_port = 1

# ACTIONS---

flow6vlan_id = of.ofp_action_vlan_vid (vlan_vid = 10) flow6out = of.ofp_action_output (port = 4)

flow6msg.actions = [flow6vlan_id, flow6out]

#flow7:

switch7 = 0000000000000002 flow7msg = of.ofp_flow_mod() flow7msg.cookie = 0

flow7msg.match.in_port = 2

# ACTIONS---

flow7vlan_id = of.ofp_action_vlan_vid (vlan_vid = 20) flow7out = of.ofp_action_output (port = 4)

flow7msg.actions = [flow7vlan_id, flow7out]

#flow8:

switch8 = 0000000000000002 flow8msg = of.ofp_flow_mod() flow8msg.cookie = 0

flow8msg.match.in_port = 3

# ACTIONS---

flow8vlan_id = of.ofp_action_vlan_vid (vlan_vid = 30) flow8out = of.ofp_action_output (port = 4)

flow8msg.actions = [flow8vlan_id, flow8out]

#flow9:

switch9 = 0000000000000002 flow9msg = of.ofp_flow_mod() flow9msg.cookie = 0

flow9msg.match.in_port = 4 flow9msg.match.dl_vlan = 10

# ACTIONS--- flow9stripvlan = of.ofp_action_strip_vlan () flow9out = of.ofp_action_output (port = 1) flow9msg.actions = [flow9stripvlan, flow9out]

#flow10:

switch10 = 0000000000000002 flow10msg = of.ofp_flow_mod() flow10msg.cookie = 0

flow10msg.match.in_port = 4 flow10msg.match.dl_vlan = 20

# ACTIONS--- flow10stripvlan = of.ofp_action_strip_vlan () flow10out = of.ofp_action_output (port = 2)

flow10msg.actions = [flow10stripvlan, flow10out]

#flow11:

switch11 = 0000000000000002 flow11msg = of.ofp_flow_mod() flow11msg.cookie = 0

flow11msg.match.in_port = 4 flow11msg.match.dl_vlan = 30

# ACTIONS--- flow11stripvlan = of.ofp_action_strip_vlan () flow11out = of.ofp_action_output (port = 3)

flow11msg.actions = [flow11stripvlan, flow11out]

def install_flows():

log.info(" *** Installing static flows... ***") # Push flows to switches

core.openflow.sendToDPID(switch0, flow0msg) core.openflow.sendToDPID(switch1, flow1msg) core.openflow.sendToDPID(switch2, flow2msg) core.openflow.sendToDPID(switch3, flow3msg) core.openflow.sendToDPID(switch4, flow4msg) core.openflow.sendToDPID(switch5, flow5msg) core.openflow.sendToDPID(switch6, flow6msg) core.openflow.sendToDPID(switch7, flow7msg) core.openflow.sendToDPID(switch8, flow8msg) core.openflow.sendToDPID(switch9, flow9msg) core.openflow.sendToDPID(switch10, flow10msg) core.openflow.sendToDPID(switch11, flow11msg) log.info(" *** Static flows installed. ***")

def launch ():

log.info("*** Starting... ***") core.callDelayed (15, install_flows)

log.info("*** Waiting for switches to connect.. ***")

d. Code pox controller menggunakan 3 switch:

#!/usr/bin/python

"""

#Code created by VND - Visual Network Description (SDN version)

"""

from pox.core import core

from pox.lib.addresses import IPAddr from pox.lib.addresses import EthAddr import pox.openflow.libopenflow_01 as of

log = core.getLogger()

#flow1:

switch0 = 0000000000000001 flow0msg = of.ofp_flow_mod() flow0msg.cookie = 0

flow0msg.match.in_port = 1

# ACTIONS---

flow0vlan_id = of.ofp_action_vlan_vid (vlan_vid = 10) flow0out = of.ofp_action_output (port = 4)

flow0msg.actions = [flow0vlan_id, flow0out]

#flow2:

switch1 = 0000000000000001 flow1msg = of.ofp_flow_mod() flow1msg.cookie = 0

flow1msg.match.in_port = 2

# ACTIONS---

flow1vlan_id = of.ofp_action_vlan_vid (vlan_vid = 20) flow1out = of.ofp_action_output (port = 4)

flow1msg.actions = [flow1vlan_id, flow1out]

#flow3:

switch2 = 0000000000000001 flow2msg = of.ofp_flow_mod() flow2msg.cookie = 0

flow2msg.match.in_port = 3

# ACTIONS---

flow2vlan_id = of.ofp_action_vlan_vid (vlan_vid = 30) flow2out = of.ofp_action_output (port = 4)

flow2msg.actions = [flow2vlan_id, flow2out]

#flow4:

switch3 = 0000000000000001 flow3msg = of.ofp_flow_mod() flow3msg.cookie = 0

flow3msg.match.in_port = 4 flow3msg.match.dl_vlan = 10

# ACTIONS--- flow3stripvlan = of.ofp_action_strip_vlan () flow3out = of.ofp_action_output (port = 1) flow3msg.actions = [flow3stripvlan, flow3out]

#flow5:

switch4 = 0000000000000001 flow4msg = of.ofp_flow_mod() flow4msg.cookie = 0

flow4msg.match.in_port = 4 flow4msg.match.dl_vlan = 20

# ACTIONS--- flow4stripvlan = of.ofp_action_strip_vlan () flow4out = of.ofp_action_output (port = 2) flow4msg.actions = [flow4stripvlan, flow4out]

#flow6:

switch5 = 0000000000000001 flow5msg = of.ofp_flow_mod() flow5msg.cookie = 0

flow5msg.match.in_port = 4 flow5msg.match.dl_vlan = 30

# ACTIONS--- flow5stripvlan = of.ofp_action_strip_vlan () flow5out = of.ofp_action_output (port = 3) flow5msg.actions = [flow5stripvlan, flow5out]

#flow7:

switch6 = 0000000000000002 flow6msg = of.ofp_flow_mod() flow6msg.cookie = 0

flow6msg.match.in_port = 1

# ACTIONS--- flow6out = of.ofp_action_output (port = 2)

flow6msg.actions = [flow6out]

#flow8:

switch7 = 0000000000000002 flow7msg = of.ofp_flow_mod() flow7msg.cookie = 0

flow7msg.match.in_port = 2

# ACTIONS--- flow7out = of.ofp_action_output (port = 1) flow7msg.actions = [flow7out]

#flow9:

switch8 = 0000000000000003 flow8msg = of.ofp_flow_mod() flow8msg.cookie = 0

flow8msg.match.in_port = 1

# ACTIONS---

flow8vlan_id = of.ofp_action_vlan_vid (vlan_vid = 10) flow8out = of.ofp_action_output (port = 4)

flow8msg.actions = [flow8vlan_id, flow8out]

#flow10:

switch9 = 0000000000000003 flow9msg = of.ofp_flow_mod() flow9msg.cookie = 0

flow9msg.match.in_port = 2

# ACTIONS---

flow9vlan_id = of.ofp_action_vlan_vid (vlan_vid = 20) flow9out = of.ofp_action_output (port = 4)

flow9msg.actions = [flow9vlan_id, flow9out]

#flow11:

switch10 = 0000000000000003 flow10msg = of.ofp_flow_mod() flow10msg.cookie = 0

flow10msg.match.in_port = 3

# ACTIONS---

flow10vlan_id = of.ofp_action_vlan_vid (vlan_vid = 30)

flow10out = of.ofp_action_output (port = 4) flow10msg.actions = [flow10vlan_id, flow10out]

#flow12:

switch11 = 0000000000000003 flow11msg = of.ofp_flow_mod() flow11msg.cookie = 0

flow11msg.match.in_port = 4 flow11msg.match.dl_vlan = 10

# ACTIONS--- flow11stripvlan = of.ofp_action_strip_vlan () flow11out = of.ofp_action_output (port = 1)

flow11msg.actions = [flow11stripvlan, flow11out]

#flow13:

switch12 = 0000000000000003 flow12msg = of.ofp_flow_mod() flow12msg.cookie = 0

flow12msg.match.in_port = 4 flow12msg.match.dl_vlan = 20

# ACTIONS--- flow12stripvlan = of.ofp_action_strip_vlan () flow12out = of.ofp_action_output (port = 2)

flow12msg.actions = [flow12stripvlan, flow12out]

#flow14:

switch13 = 0000000000000003 flow13msg = of.ofp_flow_mod() flow13msg.cookie = 0

flow13msg.match.in_port = 4 flow13msg.match.dl_vlan = 30

# ACTIONS--- flow13stripvlan = of.ofp_action_strip_vlan () flow13out = of.ofp_action_output (port = 3)

flow13msg.actions = [flow13stripvlan, flow13out]

def install_flows():

log.info(" *** Installing static flows... ***")

# Push flows to switches

core.openflow.sendToDPID(switch0, flow0msg) core.openflow.sendToDPID(switch1, flow1msg) core.openflow.sendToDPID(switch2, flow2msg) core.openflow.sendToDPID(switch3, flow3msg) core.openflow.sendToDPID(switch4, flow4msg) core.openflow.sendToDPID(switch5, flow5msg) core.openflow.sendToDPID(switch6, flow6msg) core.openflow.sendToDPID(switch7, flow7msg) core.openflow.sendToDPID(switch8, flow8msg) core.openflow.sendToDPID(switch9, flow9msg) core.openflow.sendToDPID(switch10, flow10msg) core.openflow.sendToDPID(switch11, flow11msg) core.openflow.sendToDPID(switch12, flow12msg) core.openflow.sendToDPID(switch13, flow13msg) log.info(" *** Static flows installed. ***")

def launch ():

log.info("*** Starting... ***") core.callDelayed (15, install_flows)

log.info("*** Waiting for switches to connect.. ***")

Dokumen terkait