SlideShare a Scribd company logo
Jawdat Mini-Hackaton 2016
I'm going to show you my SDN skill!
Jumroh Arrasid
Watch the demo here: https://youtu.be/BZB_7EuTtxo
Jawdat Mini-Hackaton 2016
Informasi Dokumen
Jenis Dokumen Laporan Hackathon
Target SDN NFV AIO VM v1.0
Penulis Jumroh Arrasid
Versi Dokumen 1.0
Tanggal Dibuat 25/03/2016
Sejarah Versi
Versi Tanggal Penulis Deskripsi
1.0 25/03/2016 Jumroh Arrasid Dokumen Awal
Kontak
Nama Jumroh Arrasid
E-Mail jumroharrasid@gmail.com
Jawdat Mini-Hackaton 2016
Contents
Deskripsi Pekerjaan ................................................................................... 1
Konfigurasi...............................................................................................................2
1. Konfigurasi Topologi....................................................................................................................2
2. Konfigurasi file “startaio.sh” .......................................................................................................2
3. Konfigurasi file “configpusher.py”...............................................................................................2
4. Konfigurasi file “aiomanager.py” ................................................................................................3
5. Konfigurasi file “topo.py “ ...........................................................................................................4
6. Konfigurasi OpenFlow Entries “HQ-FLOW.txt” dan “BR1-FLOW.txt” .........................................6
7. Konfigurasi file “pushOVS.sh” dan “clearOVS.sh”.......................................................................6
8. Konfigurasi file “ovsHQpusher.py” dan “ovsBR1pusher.py” ......................................................7
9. Konfigurasi file “ovsHQclear.py” dan “ovsBR1clear.py” .............................................................8
Hasil dan Pembahasan..........................................................................................9
1
Jawdat Mini-Hackaton 2016
Deskripsi Pekerjaan
Dalam SDN Mini-Hackathon kali ini penulis melakukan beberapa perubahan pada Jawdat AIO VM dengan
melakukan penambahan dan pengurangan node dan mencoba menemukan solusi network automation
pada topologi jaringan yang berbeda (Opsi skenario 5). Berikut penjelasan perubahan yang ditambah dan
topologi jaringan yang dibuat oleh penulis:
i. Penulis membuat kasus dimana suatu perusahaan ingin menghubungkan jaringan pada 2 kantor
yang berbeda secara geografis (HQ dan Branch1) serta membangun komunikasi yang aman antara
ke-2 cabang tersebut yang terhubung melalui Internet.
ii. Setiap cabang pada perusahaan menggunakan 1 Cisco Router dan 1 Open vSwitch. Dilokasi HQ
terdapat Jawdat AIO VM yang digunakan untuk melakukan automasi pada jaringan tersebut.
iii. Untuk mewujudkan komunikasi yang aman penulis mebangun jaringan point-to-point antara HQ
dan BR1 dengan menggunakan GRE over IPsec Tunnel.
iv. Pada Open vSwitch tidak digunakan menggunakan SDN Controller, penulis mencoba melakukan
entry manual untuk OpenFlow entries(just for lab purposes, not recommended for large networks).
v. Penulis juga membangun layer 2 adjacency pada masing-masing Open vSwitch dengan
menggunakan VXLAN sebagai mekanisme tunneling. Host pada setiap Open vSwitch menggunakan
alamat IP yang sama (overlapping).
vi. Routing Protocol yang digunakan adalah EIGRP.
vii. Semua konfigurasi di push melalui Jawdat AIO VM.
viii. Berikut topologi jaringan yang akan dibangun dengan menggunakan network automation:
2
Jawdat Mini-Hackaton 2016
Konfigurasi
1. Konfigurasi Topologi
Node Running On Interface
Cisco IOU GNS3 VM 1.4.4 VMnet1
Jawdat AIO VM VMware WS 10.0.1 VMnet4
Open vSwitch (Mininet VM) VirtualBox 5.0.10 VBox Host only #
2. Konfigurasi file “startaio.sh”
Pada file shell “startaio.sh” penulis menonaktifkan beberapa services pada AIO VM dan hanya
mengaktifkan services yang dibutuhkan yaitu webgui dan aiomanager. Hal ini dilakukan karena penulis
merubah topologi jaringan dan juga untuk menghemat penggunaan memory pada VM.
3. Konfigurasi file “configpusher.py”
3
Jawdat Mini-Hackaton 2016
Konfigurasi
Pada file “configpusher.py” penulis hanya merubah nilai pada variable self.waiting_time = 5 dengan tujuan
ketika proses SSH Failed penulis hanya perlu menunggu selama 5 detik.
4. Konfigurasi file “aiomanager.py”
 Function def start(), penulis menambah baris perintah untuk melakukan SSH ke router HQ dan BR1 dan
list konfigurasi yang akan di push ke masing-masing router (provision).
config_list_HQ = [ "int e0/0", "ip nat outside", "int range e0/1-2",
"ip nat inside", "access-list 10 permit any",
"ip nat inside source list 10 interface e0/0 overload",
"crypto isakmp policy 1",
"authentication pre-share",
"group 1",
"crypto isakmp key KUNCI address 33.33.33.2",
"crypto ipsec transform-set SECURE esp-3des esp-sha-hmac",
"access-list 100 permit gre host 11.11.11.2 host 33.33.33.2",
"crypto map SECURE-MAP 1 ipsec-isakmp",
"set peer 33.33.33.2",
"set transform-set SECURE",
"match address 100",
"int e0/0 ",
"crypto map SECURE-MAP",
"interface tun 1",
"ip add 10.10.10.1 255.255.255.252",
"tunnel source e0/0",
"tunnel destination 33.33.33.2",
"router eigrp 10",
"network 10.10.10.0 0.0.0.3",
"network 192.168.99.0", "192.168.100.0", "!"]
config_list_BR1 = [ "int e0/0", "ip nat outside", "int e0/1",
"ip nat inside", "access-list 10 permit any",
"ip nat inside source list 10 interface e0/0 overload",
"crypto isakmp policy 1",
"authentication pre-share",
"group 1",
"crypto isakmp key KUNCI address 11.11.11.2",
"crypto ipsec transform-set SECURE esp-3des esp-sha-hmac",
"access-list 100 permit gre host 33.33.33.2 host 11.11.11.2 ",
"crypto map SECURE-MAP 1 ipsec-isakmp",
"set peer 11.11.11.2",
"set transform-set SECURE",
"match address 100",
"int e0/0 ",
"crypto map SECURE-MAP",
"ip route 192.168.100.0 255.255.255.0 10.10.10.1",
"interface tun 1",
"ip add 10.10.10.2 255.255.255.252",
"tunnel source e0/0",
"tunnel destination 11.11.11.2",
"router eigrp 10",
"network 10.10.10.0 0.0.0.3",
"network 172.16.99.0 0.0.0.255","!"]
HQ=ConfigPusher("HQ", "ios", config_list_HQ, "ssh", "192.168.100.1", 22,"cisco","cisco")
BR1=ConfigPusher("BR1", "ios", config_list_BR1, "ssh", "33.33.33.2", 22,"cisco","cisco")
HQ.start()
BR1.start()
4
Jawdat Mini-Hackaton 2016
Konfigurasi
 Function def stop(), penulis menambah baris perintah untuk melakukan SSH ke router HQ dan BR1 dan
akan menghapus konfigurasi yang telah di push pada masing-masing router (deprovision).
config_list_HQ = [ "int e0/0","no crypto map SECURE-MAP",
"no crypto isakmp policy 1",
"no crypto isakmp key KUNCI address 33.33.33.2",
"no access-list 100",
"no crypto map SECURE-MAP 1 ipsec-isakmp",
"no crypto ipsec transform-set SECURE",
"no int tun 1",
"no router eigrp 10", "!"]
config_list_BR1 = [ "int e0/0","no crypto map SECURE-MAP",
"no crypto isakmp policy 1",
"no crypto isakmp key KUNCI address 11.11.11.2",
"no access-list 100",
"no crypto map SECURE-MAP 1 ipsec-isakmp",
"no crypto ipsec transform-set SECURE",
"no int tun 1",
"no router eigrp 10", "!"]
HQ = ConfigPusher("HQ","ios",config_list_HQ, "ssh","192.168.100.1",22,"cisco","cisco")
BR1 = ConfigPusher("BR1","ios",config_list_BR1,"ssh","33.33.33.2",22,"cisco", "cisco")
HQ.start()
BR1.start()
5. Konfigurasi file “topo.py “
File “topo.py” adalah file yang berisikan script python yang akan digunakan untuk membuat Open vSwitch
dan host yang berada pada Open vSwitch tersebut dimana pada kasus ini Open vSwitch di emulasikan
dengan Mininet VM.
from mininet.net import Mininet
from mininet.cli import CLI
from mininet.log import lg
from mininet.node import Node
from mininet.topolib import TreeNet
from mininet.node import Controller
#NAT Configuration#
########################################################################################
def startNAT( root, inetIntf='eth3', subnet='10.0/8' ):
# Identify the interface connecting to the mininet network
localIntf = root.defaultIntf()
# Configure NAT
root.cmd( 'iptables -I FORWARD -i', localIntf, '-d', subnet, '-j DROP' )
root.cmd( 'iptables -A FORWARD -i', localIntf, '-s', subnet, '-j ACCEPT' )
root.cmd( 'iptables -A FORWARD -i', inetIntf, '-d', subnet, '-j ACCEPT' )
root.cmd( 'iptables -t nat -A POSTROUTING -o ', inetIntf, '-j MASQUERADE' )
# Instruct the kernel to perform forwarding
root.cmd( 'sysctl net.ipv4.ip_forward=1' )
def stopNAT( root ):
"""Stop NAT/forwarding between Mininet and external network"""
# Flush any currently active rules
root.cmd( 'iptables -F' )
5
Jawdat Mini-Hackaton 2016
Konfigurasi
root.cmd( 'iptables -t nat -F' )
# Instruct the kernel to stop forwarding
root.cmd( 'sysctl net.ipv4.ip_forward=0' )
def fixNetworkManager( root, intf ):
cfile = '/etc/network/interfaces'
line = 'niface %s inet manualn' % intf
config = open( cfile ).read()
if line not in config:
print '*** Adding', line.strip(), 'to', cfile
with open( cfile, 'a' ) as f:
f.write( line )
# Probably need to restart network-manager to be safe -
# hopefully this won't disconnect you
root.cmd( 'service network-manager restart' )
def connectToInternet( network, switch='S1', rootip='10.254', subnet='10.0/8'):
"""Connect the network to the internet
switch: switch to connect to root namespace
rootip: address for interface in root namespace
subnet: Mininet subnet"""
switch = network.get( switch )
prefixLen = subnet.split( '/' )[ 1 ]
# Create a node in root namespace
root = Node( 'root', inNamespace=False )
# Prevent network-manager from interfering with our interface
fixNetworkManager( root, 'root-eth3' )
# Create link between root NS and switch
link = network.addLink( root, switch )
link.intf1.setIP( rootip, prefixLen )
# Start network that now includes link to root namespace
network.start()
# Start NAT and establish forwarding
startNAT( root )
# Establish routes from end hosts
for host in network.hosts:
host.cmd( 'ip route flush root 0/0' )
host.cmd( 'route add -net', subnet, 'dev', host.defaultIntf() )
host.cmd( 'route add default gw', rootip )
return root
########################################################################################
if __name__ == '__main__':
lg.setLogLevel( 'info')
################### Topologi OVS ##################
net = Mininet( controller=Controller )
A1 = net.addHost( 'A1', ip='10.0.0.1/24', mac='00:00:00:00:00:A1' )
B1 = net.addHost( 'B1', ip='10.0.0.1/24', mac='00:00:00:00:00:B1' )
S1 = net.addSwitch( 'S1' )
net.addLink( A1, S1 )
net.addLink( B1, S1 )
################### Topologi OVS ###################
Pada konfigurasi diatas, terdapat konfigurasi NAT agar host pada Open vSwitch dapat berkomunisi keluar
dari Open vSwitch. Konfigurasi tersebut bisa didapatkan dari file “/mininet/mininet/examples/nat.py”.
Keterangan “## Topologi OVS ##” adalah script yang digunakan untuk membentuk topologi Open vSwitch.
Script tersebut akan menghasilkan topologi seperti dibawah ini:
6
Jawdat Mini-Hackaton 2016
Konfigurasi
6. Konfigurasi OpenFlow Entries “HQ-FLOW.txt” dan “BR1-FLOW.txt”
File “HQ-FLOW.txt” dan “BR1-FLOW.txt” adalah file teks yang dibuat oleh penulis yang berisi OpenFlow
flow entries yang akan di push ke masing-masing Open vSwitch. Kedua file tersebut berada pada direktori
“/var/www/html/flow/”. Terdapat 2 table pada file tersebut, table 0 berfungsi untuk menandai paket dan
table 1 berfungsi untuk memforward paket. Berikut penjelasan entries pada file “BR1-FLOW.txt” (file HQ-
FLOW.txt tidak dijelaskan karena fungsinya kurang lebih sama):
*note: port 10 adalah VXLAN tunnel port.
7. Konfigurasi file “pushOVS.sh” dan “clearOVS.sh”
Berfungsi untuk menandai (tag) flow yang melalui
port 1 atau port 2 dengan VNI 1000 atau VNI 2000,
dan kemudian flow tersebut akan di di proses pada
Table 1.
-jika VNI=1000 & dest.MAC=::A2, forward ke port 1
-jika VNI=2000 & dest.MAC=::B2, forward ke port 2
-jika VNI=1000 & dest.MAC=::A1, forward ke port 10
-jika VNI=2000 & dest.MAC=::B1, forward ke port 10
-Berfungsi untuk menentukan kemana untuk
meneruskan ARP Request. Dalam kasus ini ke Local
VM.
-Explicit default drop (deny any)
7
Jawdat Mini-Hackaton 2016
Konfigurasi
 File “pushOVS.sh” adalah file shell yang dibuat oleh penulis untuk melakukan push OpenFlow flow
entries dan membuat VXLAN tunnel interface pada masing-masing Open vSwitch. Shell “pushOVS.sh”
sendiri akan memanggil script python pada file /root/ovsBr1psuher.py dan /root/ovsHQpusher.py.
 File “clearOVS.sh” adalah file shell yang dibuat oleh penulis untuk menghapus OpenFlow flow entries
dan VXLAN tunnel interface pada masing-masing Open vSwitch. Shell “clearOVS.sh” sendiri akan
memanggil script python pada file /root/ovsBr1clear.py dan /root/ovsHQclear.py.
8. Konfigurasi file “ovsHQpusher.py” dan “ovsBR1pusher.py”
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.99.10', port=22, username='mininet', password='mininet' )
stdin, stdout, stderr = ssh.exec_command('wget http://192.168.100.200/flow/HQ-FLOW.txt')
stdin, stdout, stderr = ssh.exec_command('sudo ovs-ofctl add-flows S1 HQ-FLOW.txt')
stdin, stdout, stderr = ssh.exec_command('sudo ovs-vsctl add-port S1 vtep -- set interface vtep
type=vxlan option:remote_ip=172.16.99.10 option:key=flow ofport_request=10’)
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('172.16.99.10', port=22, username='mininet', password='mininet' )
stdin, stdout, stderr = ssh.exec_command('wget http://192.168.100.200/flow/BR1-FLOW.txt')
stdin, stdout, stderr = ssh.exec_command('sudo ovs-ofctl add-flows S1 BR1-FLOW.txt')
stdin, stdout, stderr = ssh.exec_command('sudo ovs-vsctl add-port S1 vtep -- set interface vtep
type=vxlan option:remote_ip=192.168.99.10 option:key=flow ofport_request=10')
 Penjelasan VXLAN Tunnel interface:
'sudo ovs-vsctl add-port S1 vtep -- set interface vtep type=vxlan
option:remote_ip=192.168.99.10 option:key=flow ofport_request=10'
File “ovsHQpusher.py” dan “ovsBR1pusher.py” adalah script python yang dibuat penulis untuk melakukan
beberapa hal pada Open vSwitch:
Membuat port pada OVS dengan nama
port=“vtep”
Konfigurasi interface sebagai VXLAN Tunnel
Konfigurasi IP remote OVS, dalam kasus ini IP
address OVS HQ
Konfigurasi flow untuk menggunakan VNI yang ditentukan
pada OpenFlow Eentries
OpenFlow Port = 10
8
Jawdat Mini-Hackaton 2016
Konfigurasi
i. Mengunduh OpenFlow Entries. ('wget http://192.168.100.200/flow/xx’)
ii. Push OpenFlow Entries ke OVS. ('sudo ovs-ofctl add-flows S1 HQ-FLOW.txt’)
iii. Membuat VXLAN Tunnel Interface. ('sudo ovs-vsctl add-port S1 vtep -- set interface vtep type=vxlan
option:remote_ip=172.16.99.10 option:key=flow ofport_request=10’)
File tersebut dibuat dengan modul paramiko (module pada Python untuk implementasi SSHv2).
9. Konfigurasi file “ovsHQclear.py” dan “ovsBR1clear.py”
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.99.10', port=22, username='mininet', password='mininet' )
stdin, stdout, stderr = ssh.exec_command('wget http://192.168.100.200/flow/HQ-FLOW.txt')
stdin, stdout, stderr = ssh.exec_command('sudo ovs-ofctl add-flows S1 HQ-FLOW.txt')
stdin, stdout, stderr = ssh.exec_command('sudo ovs-vsctl add-port S1 vtep -- set interface vtep
type=vxlan option:remote_ip=172.16.99.10 option:key=flow ofport_request=10’)
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('172.16.99.10', port=22, username='mininet', password='mininet' )
stdin, stdout, stderr = ssh.exec_command('rm BR1-FLOW.txt*')
stdin, stdout, stderr = ssh.exec_command('sudo ovs-ofctl del-flows S1')
stdin, stdout, stderr = ssh.exec_command('sudo ovs-vsctl del-port S1 vtep -- set interface vtep
type=vxlan option:remote_ip=192.168.99.10 option:key=flow ofport_request=10')
File “ovsHQpusher.py” dan “ovsBR1pusher.py” adalah script python yang dibuat penulis untuk melakukan:
i. Menghapus file FLOW.txt
ii. Menghapus flow entries pada OVS.
iii. Menghapus VXLAN Tunnel Interface.
9
Jawdat Mini-Hackaton 2016
Hasil dan Pembahasan
Untuk hasil dan pembahasan penulis berharap pembaca dapat melihat short demo yang telah dibuat
penulis pada url berikut:
 https://youtu.be/BZB_7EuTtxo
.

More Related Content

What's hot

SAMP (Solaris, Apache, MySQL, PHP)
SAMP (Solaris, Apache, MySQL, PHP)SAMP (Solaris, Apache, MySQL, PHP)
SAMP (Solaris, Apache, MySQL, PHP)
Telkom Institute of Management
 
AT Rapier Usecase Document
AT Rapier Usecase DocumentAT Rapier Usecase Document
AT Rapier Usecase Document
Telkom Institute of Management
 
FreeBSD Basic Setting
FreeBSD Basic SettingFreeBSD Basic Setting
FreeBSD Basic Setting
Telkom Institute of Management
 
FreeBSD Proxy Server
FreeBSD Proxy ServerFreeBSD Proxy Server
FreeBSD Proxy Server
Telkom Institute of Management
 
17290770 Setting Buat Router Mikrotik
17290770 Setting Buat Router Mikrotik17290770 Setting Buat Router Mikrotik
17290770 Setting Buat Router Mikrotik
Isus Isusay
 
Building a Secure Web Application
Building a Secure Web ApplicationBuilding a Secure Web Application
Building a Secure Web Application
Telkom Institute of Management
 
Instalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTS
Instalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTSInstalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTS
Instalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTS
Kangmas Zekon
 
FreeBSD Installation
FreeBSD InstallationFreeBSD Installation
FreeBSD Installation
Telkom Institute of Management
 
VXLAN Overlay Networks with Open vSwitch
VXLAN Overlay Networks with Open vSwitchVXLAN Overlay Networks with Open vSwitch
VXLAN Overlay Networks with Open vSwitch
I Putu Hariyadi
 
Backtrack
BacktrackBacktrack
Backtrack
Helmy Faisal
 
Wispi: Mini Karma Router For Pentester - Rama Tri Nanda
Wispi: Mini Karma Router For Pentester - Rama Tri NandaWispi: Mini Karma Router For Pentester - Rama Tri Nanda
Wispi: Mini Karma Router For Pentester - Rama Tri Nanda
idsecconf
 
Konfigurasi Site-to-Site IPSec VPN Tunnel di Mikrotik menggunakan GNS3
Konfigurasi Site-to-Site IPSec VPN Tunnel di Mikrotik menggunakan GNS3Konfigurasi Site-to-Site IPSec VPN Tunnel di Mikrotik menggunakan GNS3
Konfigurasi Site-to-Site IPSec VPN Tunnel di Mikrotik menggunakan GNS3
I Putu Hariyadi
 
Cara install-server-centos
Cara install-server-centosCara install-server-centos
Cara install-server-centos
Reno Lee
 
Tutorial menginsatal konfigurasi linus debian server for lks
Tutorial menginsatal konfigurasi linus debian server for lksTutorial menginsatal konfigurasi linus debian server for lks
Tutorial menginsatal konfigurasi linus debian server for lks
Bellspyk Atow
 
Password Recovery Untuk Cisco 2900 Integrated Service Router (isr)
Password Recovery Untuk Cisco 2900 Integrated Service Router (isr)Password Recovery Untuk Cisco 2900 Integrated Service Router (isr)
Password Recovery Untuk Cisco 2900 Integrated Service Router (isr)
I Putu Hariyadi
 
Panduan Praktikum Jaringan Komputer versi 1.1
Panduan Praktikum Jaringan Komputer versi 1.1Panduan Praktikum Jaringan Komputer versi 1.1
Panduan Praktikum Jaringan Komputer versi 1.1
I Putu Hariyadi
 
Ubuntu free bds server
Ubuntu free bds serverUbuntu free bds server
Ubuntu free bds server
Fajar Rohmawan
 
Ubuntu free bds server
Ubuntu free bds serverUbuntu free bds server
Ubuntu free bds serverFajar Rohmawan
 
Belajar bikin vps dengan centos
Belajar bikin vps dengan centosBelajar bikin vps dengan centos
Belajar bikin vps dengan centos
Ainur Rochim
 

What's hot (20)

SAMP (Solaris, Apache, MySQL, PHP)
SAMP (Solaris, Apache, MySQL, PHP)SAMP (Solaris, Apache, MySQL, PHP)
SAMP (Solaris, Apache, MySQL, PHP)
 
AT Rapier Usecase Document
AT Rapier Usecase DocumentAT Rapier Usecase Document
AT Rapier Usecase Document
 
FreeBSD Basic Setting
FreeBSD Basic SettingFreeBSD Basic Setting
FreeBSD Basic Setting
 
FreeBSD Proxy Server
FreeBSD Proxy ServerFreeBSD Proxy Server
FreeBSD Proxy Server
 
17290770 Setting Buat Router Mikrotik
17290770 Setting Buat Router Mikrotik17290770 Setting Buat Router Mikrotik
17290770 Setting Buat Router Mikrotik
 
Building a Secure Web Application
Building a Secure Web ApplicationBuilding a Secure Web Application
Building a Secure Web Application
 
Instalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTS
Instalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTSInstalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTS
Instalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTS
 
FreeBSD Installation
FreeBSD InstallationFreeBSD Installation
FreeBSD Installation
 
VXLAN Overlay Networks with Open vSwitch
VXLAN Overlay Networks with Open vSwitchVXLAN Overlay Networks with Open vSwitch
VXLAN Overlay Networks with Open vSwitch
 
Cain and Abel Tools
Cain and Abel ToolsCain and Abel Tools
Cain and Abel Tools
 
Backtrack
BacktrackBacktrack
Backtrack
 
Wispi: Mini Karma Router For Pentester - Rama Tri Nanda
Wispi: Mini Karma Router For Pentester - Rama Tri NandaWispi: Mini Karma Router For Pentester - Rama Tri Nanda
Wispi: Mini Karma Router For Pentester - Rama Tri Nanda
 
Konfigurasi Site-to-Site IPSec VPN Tunnel di Mikrotik menggunakan GNS3
Konfigurasi Site-to-Site IPSec VPN Tunnel di Mikrotik menggunakan GNS3Konfigurasi Site-to-Site IPSec VPN Tunnel di Mikrotik menggunakan GNS3
Konfigurasi Site-to-Site IPSec VPN Tunnel di Mikrotik menggunakan GNS3
 
Cara install-server-centos
Cara install-server-centosCara install-server-centos
Cara install-server-centos
 
Tutorial menginsatal konfigurasi linus debian server for lks
Tutorial menginsatal konfigurasi linus debian server for lksTutorial menginsatal konfigurasi linus debian server for lks
Tutorial menginsatal konfigurasi linus debian server for lks
 
Password Recovery Untuk Cisco 2900 Integrated Service Router (isr)
Password Recovery Untuk Cisco 2900 Integrated Service Router (isr)Password Recovery Untuk Cisco 2900 Integrated Service Router (isr)
Password Recovery Untuk Cisco 2900 Integrated Service Router (isr)
 
Panduan Praktikum Jaringan Komputer versi 1.1
Panduan Praktikum Jaringan Komputer versi 1.1Panduan Praktikum Jaringan Komputer versi 1.1
Panduan Praktikum Jaringan Komputer versi 1.1
 
Ubuntu free bds server
Ubuntu free bds serverUbuntu free bds server
Ubuntu free bds server
 
Ubuntu free bds server
Ubuntu free bds serverUbuntu free bds server
Ubuntu free bds server
 
Belajar bikin vps dengan centos
Belajar bikin vps dengan centosBelajar bikin vps dengan centos
Belajar bikin vps dengan centos
 

Viewers also liked

Nfv
NfvNfv
JonathanWestlake_ComputerVision_Project1
JonathanWestlake_ComputerVision_Project1JonathanWestlake_ComputerVision_Project1
JonathanWestlake_ComputerVision_Project1
Jonathan Westlake
 
JonathanWestlake_ComputerVision_Project2
JonathanWestlake_ComputerVision_Project2JonathanWestlake_ComputerVision_Project2
JonathanWestlake_ComputerVision_Project2
Jonathan Westlake
 
IPv6 translation methods
IPv6 translation methodsIPv6 translation methods
IPv6 translation methods
Ahmad Hijazi
 
Red Cube Profile-for print
Red Cube Profile-for printRed Cube Profile-for print
Red Cube Profile-for print
Redcube Interiors
 
T-NOVA Presentation
T-NOVA PresentationT-NOVA Presentation
T-NOVA Presentation
George Xilouris
 
Leröy turkey intro eng (28 sep 2016)
Leröy turkey intro eng  (28 sep 2016)Leröy turkey intro eng  (28 sep 2016)
Leröy turkey intro eng (28 sep 2016)
ssuser783f3b
 
Atención al cliente
Atención al clienteAtención al cliente
Atención al cliente
Silvia Naval Tobeña
 
презентация
презентацияпрезентация
презентация
Yuliyafdsghngfh
 
Hemorrhoids Treatment
Hemorrhoids TreatmentHemorrhoids Treatment
Hemorrhoids Treatment
TeresaVargas778
 
Nfv short-course-sbrc14-full
Nfv short-course-sbrc14-fullNfv short-course-sbrc14-full
Nfv short-course-sbrc14-full
Christian Esteve Rothenberg
 
Leröy turkey intro eng (28 sep 2016)
Leröy turkey intro eng  (28 sep 2016)Leröy turkey intro eng  (28 sep 2016)
Leröy turkey intro eng (28 sep 2016)
ssuser783f3b
 
CAN2
CAN2CAN2

Viewers also liked (13)

Nfv
NfvNfv
Nfv
 
JonathanWestlake_ComputerVision_Project1
JonathanWestlake_ComputerVision_Project1JonathanWestlake_ComputerVision_Project1
JonathanWestlake_ComputerVision_Project1
 
JonathanWestlake_ComputerVision_Project2
JonathanWestlake_ComputerVision_Project2JonathanWestlake_ComputerVision_Project2
JonathanWestlake_ComputerVision_Project2
 
IPv6 translation methods
IPv6 translation methodsIPv6 translation methods
IPv6 translation methods
 
Red Cube Profile-for print
Red Cube Profile-for printRed Cube Profile-for print
Red Cube Profile-for print
 
T-NOVA Presentation
T-NOVA PresentationT-NOVA Presentation
T-NOVA Presentation
 
Leröy turkey intro eng (28 sep 2016)
Leröy turkey intro eng  (28 sep 2016)Leröy turkey intro eng  (28 sep 2016)
Leröy turkey intro eng (28 sep 2016)
 
Atención al cliente
Atención al clienteAtención al cliente
Atención al cliente
 
презентация
презентацияпрезентация
презентация
 
Hemorrhoids Treatment
Hemorrhoids TreatmentHemorrhoids Treatment
Hemorrhoids Treatment
 
Nfv short-course-sbrc14-full
Nfv short-course-sbrc14-fullNfv short-course-sbrc14-full
Nfv short-course-sbrc14-full
 
Leröy turkey intro eng (28 sep 2016)
Leröy turkey intro eng  (28 sep 2016)Leröy turkey intro eng  (28 sep 2016)
Leröy turkey intro eng (28 sep 2016)
 
CAN2
CAN2CAN2
CAN2
 

Similar to Jawdat Mini Hackaton 2016 by Jumroh Arrasid

PENYELESAIAN UKK FIX TKJ SMK NEGERI 4 GORONTALO (2019)
PENYELESAIAN UKK FIX TKJ SMK NEGERI 4 GORONTALO (2019)PENYELESAIAN UKK FIX TKJ SMK NEGERI 4 GORONTALO (2019)
PENYELESAIAN UKK FIX TKJ SMK NEGERI 4 GORONTALO (2019)
Walid Umar
 
Tutorial Menginstall Konfigurasi Router Debian 7
Tutorial Menginstall Konfigurasi Router Debian 7Tutorial Menginstall Konfigurasi Router Debian 7
Tutorial Menginstall Konfigurasi Router Debian 7
Desman Tumanggor
 
Pembahasansoallks2013
Pembahasansoallks2013Pembahasansoallks2013
Pembahasansoallks2013
dedd_simbolon
 
cara install ubuntu server
cara install ubuntu servercara install ubuntu server
cara install ubuntu server
aho77
 
Modul 4 konfigurasi router
Modul 4   konfigurasi routerModul 4   konfigurasi router
Modul 4 konfigurasi router
Thomas Ra Urus
 
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy ServerModul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
I Putu Hariyadi
 
Artikelserver
ArtikelserverArtikelserver
Artikelserver
HARRY CHAN PUTRA
 
Python Network Programming For Network Engineers
Python Network Programming For Network EngineersPython Network Programming For Network Engineers
Python Network Programming For Network Engineers
I Putu Hariyadi
 
FreeBSD Web Server
FreeBSD Web ServerFreeBSD Web Server
FreeBSD Web Server
Telkom Institute of Management
 
Cara Install Openbravo 2.50 MP 43 di Ubuntu
Cara Install Openbravo 2.50 MP 43 di UbuntuCara Install Openbravo 2.50 MP 43 di Ubuntu
Cara Install Openbravo 2.50 MP 43 di Ubuntu
Wirabumi Software
 
Tutorial Membangun SNORT Integrasi Terhadap MySQL dan BASE
Tutorial Membangun SNORT Integrasi Terhadap MySQL dan BASETutorial Membangun SNORT Integrasi Terhadap MySQL dan BASE
Tutorial Membangun SNORT Integrasi Terhadap MySQL dan BASE
Thomas Gregory
 
Mengatur rutter pada debian 5 lenny
Mengatur rutter pada debian 5 lennyMengatur rutter pada debian 5 lenny
Mengatur rutter pada debian 5 lennyAnto Wibawanto
 
Routing dan proxy debian
Routing dan proxy debianRouting dan proxy debian
Routing dan proxy debian
Arga Prahara
 
Presetasi hotspot Mubad Zahroni
Presetasi hotspot Mubad ZahroniPresetasi hotspot Mubad Zahroni
Presetasi hotspot Mubad Zahroni
indonesiku
 
Konfigurasi Statik Routing pada Linux CentOS
Konfigurasi Statik Routing pada Linux CentOSKonfigurasi Statik Routing pada Linux CentOS
Konfigurasi Statik Routing pada Linux CentOS
I Putu Hariyadi
 
Static port security packet tracer
Static port security packet tracerStatic port security packet tracer
Static port security packet tracer
Ryandika Alfarishi
 
Laporan tugas keamanan snort ids
Laporan tugas keamanan snort idsLaporan tugas keamanan snort ids
Laporan tugas keamanan snort ids
ramasatriaf
 
presetasi hotspot.ppt
presetasi hotspot.pptpresetasi hotspot.ppt
presetasi hotspot.ppt
Mul yaji
 
Firewall di-ubuntu
Firewall di-ubuntuFirewall di-ubuntu
Firewall di-ubuntu
its
 
Pembahasan soal paket 1
Pembahasan soal paket 1Pembahasan soal paket 1
Pembahasan soal paket 1
Irwansyah Irwan
 

Similar to Jawdat Mini Hackaton 2016 by Jumroh Arrasid (20)

PENYELESAIAN UKK FIX TKJ SMK NEGERI 4 GORONTALO (2019)
PENYELESAIAN UKK FIX TKJ SMK NEGERI 4 GORONTALO (2019)PENYELESAIAN UKK FIX TKJ SMK NEGERI 4 GORONTALO (2019)
PENYELESAIAN UKK FIX TKJ SMK NEGERI 4 GORONTALO (2019)
 
Tutorial Menginstall Konfigurasi Router Debian 7
Tutorial Menginstall Konfigurasi Router Debian 7Tutorial Menginstall Konfigurasi Router Debian 7
Tutorial Menginstall Konfigurasi Router Debian 7
 
Pembahasansoallks2013
Pembahasansoallks2013Pembahasansoallks2013
Pembahasansoallks2013
 
cara install ubuntu server
cara install ubuntu servercara install ubuntu server
cara install ubuntu server
 
Modul 4 konfigurasi router
Modul 4   konfigurasi routerModul 4   konfigurasi router
Modul 4 konfigurasi router
 
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy ServerModul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
Modul Solusi UN SMK TKJ Paket 1 - Membangun PC Router & Proxy Server
 
Artikelserver
ArtikelserverArtikelserver
Artikelserver
 
Python Network Programming For Network Engineers
Python Network Programming For Network EngineersPython Network Programming For Network Engineers
Python Network Programming For Network Engineers
 
FreeBSD Web Server
FreeBSD Web ServerFreeBSD Web Server
FreeBSD Web Server
 
Cara Install Openbravo 2.50 MP 43 di Ubuntu
Cara Install Openbravo 2.50 MP 43 di UbuntuCara Install Openbravo 2.50 MP 43 di Ubuntu
Cara Install Openbravo 2.50 MP 43 di Ubuntu
 
Tutorial Membangun SNORT Integrasi Terhadap MySQL dan BASE
Tutorial Membangun SNORT Integrasi Terhadap MySQL dan BASETutorial Membangun SNORT Integrasi Terhadap MySQL dan BASE
Tutorial Membangun SNORT Integrasi Terhadap MySQL dan BASE
 
Mengatur rutter pada debian 5 lenny
Mengatur rutter pada debian 5 lennyMengatur rutter pada debian 5 lenny
Mengatur rutter pada debian 5 lenny
 
Routing dan proxy debian
Routing dan proxy debianRouting dan proxy debian
Routing dan proxy debian
 
Presetasi hotspot Mubad Zahroni
Presetasi hotspot Mubad ZahroniPresetasi hotspot Mubad Zahroni
Presetasi hotspot Mubad Zahroni
 
Konfigurasi Statik Routing pada Linux CentOS
Konfigurasi Statik Routing pada Linux CentOSKonfigurasi Statik Routing pada Linux CentOS
Konfigurasi Statik Routing pada Linux CentOS
 
Static port security packet tracer
Static port security packet tracerStatic port security packet tracer
Static port security packet tracer
 
Laporan tugas keamanan snort ids
Laporan tugas keamanan snort idsLaporan tugas keamanan snort ids
Laporan tugas keamanan snort ids
 
presetasi hotspot.ppt
presetasi hotspot.pptpresetasi hotspot.ppt
presetasi hotspot.ppt
 
Firewall di-ubuntu
Firewall di-ubuntuFirewall di-ubuntu
Firewall di-ubuntu
 
Pembahasan soal paket 1
Pembahasan soal paket 1Pembahasan soal paket 1
Pembahasan soal paket 1
 

Jawdat Mini Hackaton 2016 by Jumroh Arrasid

  • 1. Jawdat Mini-Hackaton 2016 I'm going to show you my SDN skill! Jumroh Arrasid Watch the demo here: https://youtu.be/BZB_7EuTtxo
  • 2. Jawdat Mini-Hackaton 2016 Informasi Dokumen Jenis Dokumen Laporan Hackathon Target SDN NFV AIO VM v1.0 Penulis Jumroh Arrasid Versi Dokumen 1.0 Tanggal Dibuat 25/03/2016 Sejarah Versi Versi Tanggal Penulis Deskripsi 1.0 25/03/2016 Jumroh Arrasid Dokumen Awal Kontak Nama Jumroh Arrasid E-Mail jumroharrasid@gmail.com
  • 3. Jawdat Mini-Hackaton 2016 Contents Deskripsi Pekerjaan ................................................................................... 1 Konfigurasi...............................................................................................................2 1. Konfigurasi Topologi....................................................................................................................2 2. Konfigurasi file “startaio.sh” .......................................................................................................2 3. Konfigurasi file “configpusher.py”...............................................................................................2 4. Konfigurasi file “aiomanager.py” ................................................................................................3 5. Konfigurasi file “topo.py “ ...........................................................................................................4 6. Konfigurasi OpenFlow Entries “HQ-FLOW.txt” dan “BR1-FLOW.txt” .........................................6 7. Konfigurasi file “pushOVS.sh” dan “clearOVS.sh”.......................................................................6 8. Konfigurasi file “ovsHQpusher.py” dan “ovsBR1pusher.py” ......................................................7 9. Konfigurasi file “ovsHQclear.py” dan “ovsBR1clear.py” .............................................................8 Hasil dan Pembahasan..........................................................................................9
  • 4. 1 Jawdat Mini-Hackaton 2016 Deskripsi Pekerjaan Dalam SDN Mini-Hackathon kali ini penulis melakukan beberapa perubahan pada Jawdat AIO VM dengan melakukan penambahan dan pengurangan node dan mencoba menemukan solusi network automation pada topologi jaringan yang berbeda (Opsi skenario 5). Berikut penjelasan perubahan yang ditambah dan topologi jaringan yang dibuat oleh penulis: i. Penulis membuat kasus dimana suatu perusahaan ingin menghubungkan jaringan pada 2 kantor yang berbeda secara geografis (HQ dan Branch1) serta membangun komunikasi yang aman antara ke-2 cabang tersebut yang terhubung melalui Internet. ii. Setiap cabang pada perusahaan menggunakan 1 Cisco Router dan 1 Open vSwitch. Dilokasi HQ terdapat Jawdat AIO VM yang digunakan untuk melakukan automasi pada jaringan tersebut. iii. Untuk mewujudkan komunikasi yang aman penulis mebangun jaringan point-to-point antara HQ dan BR1 dengan menggunakan GRE over IPsec Tunnel. iv. Pada Open vSwitch tidak digunakan menggunakan SDN Controller, penulis mencoba melakukan entry manual untuk OpenFlow entries(just for lab purposes, not recommended for large networks). v. Penulis juga membangun layer 2 adjacency pada masing-masing Open vSwitch dengan menggunakan VXLAN sebagai mekanisme tunneling. Host pada setiap Open vSwitch menggunakan alamat IP yang sama (overlapping). vi. Routing Protocol yang digunakan adalah EIGRP. vii. Semua konfigurasi di push melalui Jawdat AIO VM. viii. Berikut topologi jaringan yang akan dibangun dengan menggunakan network automation:
  • 5. 2 Jawdat Mini-Hackaton 2016 Konfigurasi 1. Konfigurasi Topologi Node Running On Interface Cisco IOU GNS3 VM 1.4.4 VMnet1 Jawdat AIO VM VMware WS 10.0.1 VMnet4 Open vSwitch (Mininet VM) VirtualBox 5.0.10 VBox Host only # 2. Konfigurasi file “startaio.sh” Pada file shell “startaio.sh” penulis menonaktifkan beberapa services pada AIO VM dan hanya mengaktifkan services yang dibutuhkan yaitu webgui dan aiomanager. Hal ini dilakukan karena penulis merubah topologi jaringan dan juga untuk menghemat penggunaan memory pada VM. 3. Konfigurasi file “configpusher.py”
  • 6. 3 Jawdat Mini-Hackaton 2016 Konfigurasi Pada file “configpusher.py” penulis hanya merubah nilai pada variable self.waiting_time = 5 dengan tujuan ketika proses SSH Failed penulis hanya perlu menunggu selama 5 detik. 4. Konfigurasi file “aiomanager.py”  Function def start(), penulis menambah baris perintah untuk melakukan SSH ke router HQ dan BR1 dan list konfigurasi yang akan di push ke masing-masing router (provision). config_list_HQ = [ "int e0/0", "ip nat outside", "int range e0/1-2", "ip nat inside", "access-list 10 permit any", "ip nat inside source list 10 interface e0/0 overload", "crypto isakmp policy 1", "authentication pre-share", "group 1", "crypto isakmp key KUNCI address 33.33.33.2", "crypto ipsec transform-set SECURE esp-3des esp-sha-hmac", "access-list 100 permit gre host 11.11.11.2 host 33.33.33.2", "crypto map SECURE-MAP 1 ipsec-isakmp", "set peer 33.33.33.2", "set transform-set SECURE", "match address 100", "int e0/0 ", "crypto map SECURE-MAP", "interface tun 1", "ip add 10.10.10.1 255.255.255.252", "tunnel source e0/0", "tunnel destination 33.33.33.2", "router eigrp 10", "network 10.10.10.0 0.0.0.3", "network 192.168.99.0", "192.168.100.0", "!"] config_list_BR1 = [ "int e0/0", "ip nat outside", "int e0/1", "ip nat inside", "access-list 10 permit any", "ip nat inside source list 10 interface e0/0 overload", "crypto isakmp policy 1", "authentication pre-share", "group 1", "crypto isakmp key KUNCI address 11.11.11.2", "crypto ipsec transform-set SECURE esp-3des esp-sha-hmac", "access-list 100 permit gre host 33.33.33.2 host 11.11.11.2 ", "crypto map SECURE-MAP 1 ipsec-isakmp", "set peer 11.11.11.2", "set transform-set SECURE", "match address 100", "int e0/0 ", "crypto map SECURE-MAP", "ip route 192.168.100.0 255.255.255.0 10.10.10.1", "interface tun 1", "ip add 10.10.10.2 255.255.255.252", "tunnel source e0/0", "tunnel destination 11.11.11.2", "router eigrp 10", "network 10.10.10.0 0.0.0.3", "network 172.16.99.0 0.0.0.255","!"] HQ=ConfigPusher("HQ", "ios", config_list_HQ, "ssh", "192.168.100.1", 22,"cisco","cisco") BR1=ConfigPusher("BR1", "ios", config_list_BR1, "ssh", "33.33.33.2", 22,"cisco","cisco") HQ.start() BR1.start()
  • 7. 4 Jawdat Mini-Hackaton 2016 Konfigurasi  Function def stop(), penulis menambah baris perintah untuk melakukan SSH ke router HQ dan BR1 dan akan menghapus konfigurasi yang telah di push pada masing-masing router (deprovision). config_list_HQ = [ "int e0/0","no crypto map SECURE-MAP", "no crypto isakmp policy 1", "no crypto isakmp key KUNCI address 33.33.33.2", "no access-list 100", "no crypto map SECURE-MAP 1 ipsec-isakmp", "no crypto ipsec transform-set SECURE", "no int tun 1", "no router eigrp 10", "!"] config_list_BR1 = [ "int e0/0","no crypto map SECURE-MAP", "no crypto isakmp policy 1", "no crypto isakmp key KUNCI address 11.11.11.2", "no access-list 100", "no crypto map SECURE-MAP 1 ipsec-isakmp", "no crypto ipsec transform-set SECURE", "no int tun 1", "no router eigrp 10", "!"] HQ = ConfigPusher("HQ","ios",config_list_HQ, "ssh","192.168.100.1",22,"cisco","cisco") BR1 = ConfigPusher("BR1","ios",config_list_BR1,"ssh","33.33.33.2",22,"cisco", "cisco") HQ.start() BR1.start() 5. Konfigurasi file “topo.py “ File “topo.py” adalah file yang berisikan script python yang akan digunakan untuk membuat Open vSwitch dan host yang berada pada Open vSwitch tersebut dimana pada kasus ini Open vSwitch di emulasikan dengan Mininet VM. from mininet.net import Mininet from mininet.cli import CLI from mininet.log import lg from mininet.node import Node from mininet.topolib import TreeNet from mininet.node import Controller #NAT Configuration# ######################################################################################## def startNAT( root, inetIntf='eth3', subnet='10.0/8' ): # Identify the interface connecting to the mininet network localIntf = root.defaultIntf() # Configure NAT root.cmd( 'iptables -I FORWARD -i', localIntf, '-d', subnet, '-j DROP' ) root.cmd( 'iptables -A FORWARD -i', localIntf, '-s', subnet, '-j ACCEPT' ) root.cmd( 'iptables -A FORWARD -i', inetIntf, '-d', subnet, '-j ACCEPT' ) root.cmd( 'iptables -t nat -A POSTROUTING -o ', inetIntf, '-j MASQUERADE' ) # Instruct the kernel to perform forwarding root.cmd( 'sysctl net.ipv4.ip_forward=1' ) def stopNAT( root ): """Stop NAT/forwarding between Mininet and external network""" # Flush any currently active rules root.cmd( 'iptables -F' )
  • 8. 5 Jawdat Mini-Hackaton 2016 Konfigurasi root.cmd( 'iptables -t nat -F' ) # Instruct the kernel to stop forwarding root.cmd( 'sysctl net.ipv4.ip_forward=0' ) def fixNetworkManager( root, intf ): cfile = '/etc/network/interfaces' line = 'niface %s inet manualn' % intf config = open( cfile ).read() if line not in config: print '*** Adding', line.strip(), 'to', cfile with open( cfile, 'a' ) as f: f.write( line ) # Probably need to restart network-manager to be safe - # hopefully this won't disconnect you root.cmd( 'service network-manager restart' ) def connectToInternet( network, switch='S1', rootip='10.254', subnet='10.0/8'): """Connect the network to the internet switch: switch to connect to root namespace rootip: address for interface in root namespace subnet: Mininet subnet""" switch = network.get( switch ) prefixLen = subnet.split( '/' )[ 1 ] # Create a node in root namespace root = Node( 'root', inNamespace=False ) # Prevent network-manager from interfering with our interface fixNetworkManager( root, 'root-eth3' ) # Create link between root NS and switch link = network.addLink( root, switch ) link.intf1.setIP( rootip, prefixLen ) # Start network that now includes link to root namespace network.start() # Start NAT and establish forwarding startNAT( root ) # Establish routes from end hosts for host in network.hosts: host.cmd( 'ip route flush root 0/0' ) host.cmd( 'route add -net', subnet, 'dev', host.defaultIntf() ) host.cmd( 'route add default gw', rootip ) return root ######################################################################################## if __name__ == '__main__': lg.setLogLevel( 'info') ################### Topologi OVS ################## net = Mininet( controller=Controller ) A1 = net.addHost( 'A1', ip='10.0.0.1/24', mac='00:00:00:00:00:A1' ) B1 = net.addHost( 'B1', ip='10.0.0.1/24', mac='00:00:00:00:00:B1' ) S1 = net.addSwitch( 'S1' ) net.addLink( A1, S1 ) net.addLink( B1, S1 ) ################### Topologi OVS ################### Pada konfigurasi diatas, terdapat konfigurasi NAT agar host pada Open vSwitch dapat berkomunisi keluar dari Open vSwitch. Konfigurasi tersebut bisa didapatkan dari file “/mininet/mininet/examples/nat.py”. Keterangan “## Topologi OVS ##” adalah script yang digunakan untuk membentuk topologi Open vSwitch. Script tersebut akan menghasilkan topologi seperti dibawah ini:
  • 9. 6 Jawdat Mini-Hackaton 2016 Konfigurasi 6. Konfigurasi OpenFlow Entries “HQ-FLOW.txt” dan “BR1-FLOW.txt” File “HQ-FLOW.txt” dan “BR1-FLOW.txt” adalah file teks yang dibuat oleh penulis yang berisi OpenFlow flow entries yang akan di push ke masing-masing Open vSwitch. Kedua file tersebut berada pada direktori “/var/www/html/flow/”. Terdapat 2 table pada file tersebut, table 0 berfungsi untuk menandai paket dan table 1 berfungsi untuk memforward paket. Berikut penjelasan entries pada file “BR1-FLOW.txt” (file HQ- FLOW.txt tidak dijelaskan karena fungsinya kurang lebih sama): *note: port 10 adalah VXLAN tunnel port. 7. Konfigurasi file “pushOVS.sh” dan “clearOVS.sh” Berfungsi untuk menandai (tag) flow yang melalui port 1 atau port 2 dengan VNI 1000 atau VNI 2000, dan kemudian flow tersebut akan di di proses pada Table 1. -jika VNI=1000 & dest.MAC=::A2, forward ke port 1 -jika VNI=2000 & dest.MAC=::B2, forward ke port 2 -jika VNI=1000 & dest.MAC=::A1, forward ke port 10 -jika VNI=2000 & dest.MAC=::B1, forward ke port 10 -Berfungsi untuk menentukan kemana untuk meneruskan ARP Request. Dalam kasus ini ke Local VM. -Explicit default drop (deny any)
  • 10. 7 Jawdat Mini-Hackaton 2016 Konfigurasi  File “pushOVS.sh” adalah file shell yang dibuat oleh penulis untuk melakukan push OpenFlow flow entries dan membuat VXLAN tunnel interface pada masing-masing Open vSwitch. Shell “pushOVS.sh” sendiri akan memanggil script python pada file /root/ovsBr1psuher.py dan /root/ovsHQpusher.py.  File “clearOVS.sh” adalah file shell yang dibuat oleh penulis untuk menghapus OpenFlow flow entries dan VXLAN tunnel interface pada masing-masing Open vSwitch. Shell “clearOVS.sh” sendiri akan memanggil script python pada file /root/ovsBr1clear.py dan /root/ovsHQclear.py. 8. Konfigurasi file “ovsHQpusher.py” dan “ovsBR1pusher.py” import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('192.168.99.10', port=22, username='mininet', password='mininet' ) stdin, stdout, stderr = ssh.exec_command('wget http://192.168.100.200/flow/HQ-FLOW.txt') stdin, stdout, stderr = ssh.exec_command('sudo ovs-ofctl add-flows S1 HQ-FLOW.txt') stdin, stdout, stderr = ssh.exec_command('sudo ovs-vsctl add-port S1 vtep -- set interface vtep type=vxlan option:remote_ip=172.16.99.10 option:key=flow ofport_request=10’) import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('172.16.99.10', port=22, username='mininet', password='mininet' ) stdin, stdout, stderr = ssh.exec_command('wget http://192.168.100.200/flow/BR1-FLOW.txt') stdin, stdout, stderr = ssh.exec_command('sudo ovs-ofctl add-flows S1 BR1-FLOW.txt') stdin, stdout, stderr = ssh.exec_command('sudo ovs-vsctl add-port S1 vtep -- set interface vtep type=vxlan option:remote_ip=192.168.99.10 option:key=flow ofport_request=10')  Penjelasan VXLAN Tunnel interface: 'sudo ovs-vsctl add-port S1 vtep -- set interface vtep type=vxlan option:remote_ip=192.168.99.10 option:key=flow ofport_request=10' File “ovsHQpusher.py” dan “ovsBR1pusher.py” adalah script python yang dibuat penulis untuk melakukan beberapa hal pada Open vSwitch: Membuat port pada OVS dengan nama port=“vtep” Konfigurasi interface sebagai VXLAN Tunnel Konfigurasi IP remote OVS, dalam kasus ini IP address OVS HQ Konfigurasi flow untuk menggunakan VNI yang ditentukan pada OpenFlow Eentries OpenFlow Port = 10
  • 11. 8 Jawdat Mini-Hackaton 2016 Konfigurasi i. Mengunduh OpenFlow Entries. ('wget http://192.168.100.200/flow/xx’) ii. Push OpenFlow Entries ke OVS. ('sudo ovs-ofctl add-flows S1 HQ-FLOW.txt’) iii. Membuat VXLAN Tunnel Interface. ('sudo ovs-vsctl add-port S1 vtep -- set interface vtep type=vxlan option:remote_ip=172.16.99.10 option:key=flow ofport_request=10’) File tersebut dibuat dengan modul paramiko (module pada Python untuk implementasi SSHv2). 9. Konfigurasi file “ovsHQclear.py” dan “ovsBR1clear.py” import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('192.168.99.10', port=22, username='mininet', password='mininet' ) stdin, stdout, stderr = ssh.exec_command('wget http://192.168.100.200/flow/HQ-FLOW.txt') stdin, stdout, stderr = ssh.exec_command('sudo ovs-ofctl add-flows S1 HQ-FLOW.txt') stdin, stdout, stderr = ssh.exec_command('sudo ovs-vsctl add-port S1 vtep -- set interface vtep type=vxlan option:remote_ip=172.16.99.10 option:key=flow ofport_request=10’) import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('172.16.99.10', port=22, username='mininet', password='mininet' ) stdin, stdout, stderr = ssh.exec_command('rm BR1-FLOW.txt*') stdin, stdout, stderr = ssh.exec_command('sudo ovs-ofctl del-flows S1') stdin, stdout, stderr = ssh.exec_command('sudo ovs-vsctl del-port S1 vtep -- set interface vtep type=vxlan option:remote_ip=192.168.99.10 option:key=flow ofport_request=10') File “ovsHQpusher.py” dan “ovsBR1pusher.py” adalah script python yang dibuat penulis untuk melakukan: i. Menghapus file FLOW.txt ii. Menghapus flow entries pada OVS. iii. Menghapus VXLAN Tunnel Interface.
  • 12. 9 Jawdat Mini-Hackaton 2016 Hasil dan Pembahasan Untuk hasil dan pembahasan penulis berharap pembaca dapat melihat short demo yang telah dibuat penulis pada url berikut:  https://youtu.be/BZB_7EuTtxo .