Anda di halaman 1dari 45

SOFTWARE DEFINED NETWORK

Tim Teaching MKP SDN

BAGIAN 3
MININET
S1 Teknik Telekomunikasi
Fakultas Teknik Elektro
2016
Apa itu mininet ?
Mininet adalah emulator berbasis CLI yang digunakan untuk membuat
sebuah topologi jaringan pada Software Defined Network.
• Sebuah emulator jaringan yang menciptakan jaringan virtual yang realistis.
• Berjalan dengan kernel yang sama seperti aslinya, switch dan kode aplikasi pada mesin yang
seperti aslinya.

• Menyediakan Command Line Interface (CLI) dan Application Programming Interface (API)
• Abstraction
• Host: mengemulatorkan pada level OS process
• Switch: mengemulatorkan berdasarkan fungsi dari software pada switch
• Contoh : Open vSwitch, SoftSwitch
Tipe-tipe dari Testbeds pada Jaringan
Platform Advantages Disadvantages
Hardware testbed  Lebih Cepat  Mahal
 Akurat  Susah untuk di konfigurasi ulang
 Susah untuk di ubah
 Susah untuk di download
Simulator  Tidak mahal, fleksibel  May require app changes
 Mudah untuk di download  Might not run OS code
 Kurang akurat  May not be “believable”
 May be slow/non-interactive
Emulator  Tidak mahal, fleksibel  Lebih lambat dari hadware
 Memiliki konfigurasi aslinya
seperti aslinya  Kemungkinan akurasinya kurang
 Cukup akurat ketika terlalu banyak perangkat
 Mudah di download yang diemulatorkan
 Cepat
Instalasi Mininet
Cara instalasi mininet di Ubuntu
• Clone mininet dari github dengan perintah :

• Menginstall : Mininet + Open vSwtich + wireshark + etc dengan perintah :


Instalasi Mininet lanjut
• Melakukan pengecekan apakah mininet sudah terinstall dengan benar atau belum
dengan perintah mn –test pingall .
Mininet Topologi
•Terdapat beberapa topologi bawaan pada mininet :
Contoh command untuk membuat topologi bawaan dari mininet:

Single, membuat topologi single switch dengan jumlah host 4 :


$ mn --topo single,4 --mac --switch ovsk --controller=remote

Tree, membuat topologi tree yang memiliki level kedalaman 2 :


$ mn --topo tree,2 --mac --switch ovsk --controller=remote
Mininet Topologi
 Linear, membuat topologi linear dengan 3 switch dan 1 host tiap switchnya :
$ mn --topo linear,3 --mac --switch ovsk --controller=remote
Custom Topologi VND
• Pada mininet kita juga dapat melakukana custom topologi. Kita dapat
menggunakan berbagai pilihan dalam membuat custom topologi.
1. Menggambarkan topologi dengan virtuan network description (VND)
• Akses VND secara online pada situs http://www.ramonfontes.com/vnd/
Custom Topologi VND
• Gambar topologi yang diinginkan
Custom Topologi VND
• Lakukan konfigurasi pada controller dengan melakukan double click pada
icon controller

Setting mulai dari ip controller, apakah controller


bersifat remote atau tidak dan jenis controller yang di
gunakan. Setelah melakukan setting tinggal klik apply
setting. Selain itu kita juga bisa membuat flow table
sesuai dengan yang kita inginkan dengan mengklik
create flow table
Custom Topologi VND
• Klik File>Export>Export to mininet, kemudian ubah format file menjadi .py
• Copy file eksport yang telah di buat ke dalam folder mininet/examples
• Buat agar file vnd dapat dieksekusi oleh mininet dengan bantuan chmod +x
$ chmod +x <nama file vnd>
• Untuk melakukan pengecekan apakah topologi yang kita gunakan sudah berjalan
dengan bener atau tidak kita. Kita lakukan pengecekan dengan menjalankan
topologi yang telah di buat. tetapi sebelum menjalankan topologi yang telah di
buat kita jalankan controllernya terlebih dahulu. Pada percobaan ini controller
yang di gunakan adalah controller pox sebagai controller dengan fungsi
forwarding l2 learning
Custom Topologi VND

$ sudo ./pox.py forwarding.l2_learning

• Jalankan script topologi dengan menggunakan command


$ sudo ./<nama file vnd>
Custom Topologi VND
• Lalu lakukan pengecekan koneksi dengan perintah pingall pada mininet
Custom Topologi MiniEdit
2. Menggunakan GUI untuk membentuk topologi dengan MiniEdit
• Jalankan MiniEdit dengan menggunakan perintah

• Lalu akan muncul tampilan miniedit sebagai berikut


Custom Topologi MiniEdit
• Bentuk topologi yang diinginkan
Custom Topologi MiniEdit
• Setelah di bentuk topologi yang diinginkan, lakukan konfigurasi pada controller

Kita dapat mengatur nama, port


controller dan juga ip yang di
gunakan oleh controller.
Custom Topologi MiniEdit
• Lalu lakukan setting pada miniedit di edit>preference
Centang pada start CLI untuk
memunculkan CLI mininet pada
terminal. Lalu klik ok

• Sebelum menjalankan mininet dari miniedit terlebih dahulu kita jalankan


controller yang di gunakan, dalam hal ini saya menggunakan controller pox
sebagai controller dengan fungsi forwarding l2 learning
Custom Topologi MiniEdit
• Jalankan minieditnya dengan mengklik run pada pojok kiri bawah
Custom Topologi MiniEdit
• Lalu buka kembali terminal yang di gunakan untuk mejalankan
miniedit tadi.

Mininet siap di gunakan, lakukan perintah pingall untuk mengetes koneksi antar
host. Untuk mengeluarkan miniedit exit terlebih dahulu pada mininet
Custom Topologi Format .py
3. Dengan menuliskan script dalam format .py seperti contoh di bawah ini:
from mininet.topo import Topo
from mininet.link import TCLink,Link

class Topologi(Topo):
def __init__(self):
Topo.__init__(self)

h1 = self.addHost('h1', mac= '00:00:00:00:01:01', ip='10.0.0.1/24')


h2 = self.addHost('h2', mac= '00:00:00:00:01:02', ip='10.0.0.2/24')
h3 = self.addHost('h3', mac= '00:00:00:00:01:03', ip='10.0.0.3/24')
h4 = self.addHost('h4', mac= '00:00:00:00:01:04', ip='10.0.0.4/24')

s1 = self.addSwitch('s1', mac='00:00:00:00:00:01')
s2 = self.addSwitch('s2', mac='00:00:00:00:00:02')
s3 = self.addSwitch('s3', mac='00:00:00:00:00:03')
s4 = self.addSwitch('s4', mac='00:00:00:00:00:04')
Custom Topologi Format .py
self.addLink( s1 , h1 )
self.addLink( s2 , h2 )
self.addLink( s3 , h3 )
self.addLink( s4 , h4 )

self.addLink(s1, s2, cls=TCLink, bw=70, delay='1ms')


self.addLink(s1, s3, cls=TCLink, bw=100, delay='4ms')
self.addLink(s2, s3, cls=TCLink, bw=90, delay='2ms')
self.addLink(s3, s4, cls=TCLink, bw=90, delay='3ms')

topos = {'switch4' :(lambda:Topologi())}

self.addHost Membangun entitas host dengan menggunakan nama yang kita inginkan.
Disini dapat pula di spesifikasikan mac address dan IP address yang
diinginkan
self.addSwitch Membangun entitas switch, dapat pula di spesifikasikan mac address yang
diinginkan
self.addLink Membangun link antar 2 node dan dapat mendefinisikan bandwidth dalam
mb dan delay dalam ms pada setiap link
Costum Topologi Format .py
• Setelah script di buat, file di simpan dalam format .py dan di simpan pada
direktori mininet/custom

• Sebelum menjalankan mininet dari miniedit terlebih dahulu kita jalankan


controller yang di gunakan, dalam hal ini saya menggunakan controller pox
sebagai controller dengan fungsi forwarding l2 learning
Costum Topologi Format .py
• Lalu jalankan file topologi yang telah di simpan dengan perintah
# sudo mn --custom switch3h.py --topo switch3 --mac --switch ovsk --controller=remote

• Mininet siap di gunakan, lakukan perintah pingall untuk mengetes koneksi


antar host.
Command Line Interface pada Mininet
Setelah kita masuk kedalam mininet kita bisa melakukan interaksi antar host dan
switch. Berikut adalah contoh dari beberapa command yang ada pada mininet.
• Melihat nodes yang ada di topologi
mininet> nodes

• Melihat interaksi links di topologi


mininet> net
Command Line Interface pada Mininet
• Melihat informasi nodes di topologi
mininet> dump

• Melihat seluruh interface pada masing-masing device di topologi


mininet> intfs
Command Line Interface pada Mininet
• Melihat status setiap link di topologi
mininet> links

• Test koneksi antara host satu dengan host lainya


mininet> h1 ping –c 3 h2
Melakukan perintah ping antar host 1 dengan host 2 sebanyak 3 kali.
Command Line Interface pada Mininet
Mengirim packet icmp antar host 1 dengan host 2 secara terus menerus.
mininet> h1 ping h2

untuk menghentikan dengan menekan ctrl+c


• Test koneksi antar semua host
mininet> pingall
Command Line Interface pada Mininet
• Melihat port yang aktif pada setiap node di topologi
mininet> ports

• Mematikan link antar dua node


mininet> link <device 1> <device 2> up/down
Mematikan link antara s2 dengan s3
mininet> link s2 s3 down
Command Line Interface pada Mininet
Menghidupkan link antara s2 dengan s3
mininet> link s2 s3 up

• Mematikan dan menyalakan salah satu node di topologi


mininet> switch <nama node> start/stop
Mematikan switch s3
Command Line Interface pada Mininet
Menghidupkan switch s3

• Membuka command line interface pada perangkat


mininet> xterm <nama device>
Command Line Interface pada Mininet
• Melihat isi, menghapus, dan menambahkan flow tabel pada switch openflow
mininet> dpctl <kondisi 1> - <kondisi 2>
Melihat isi dari flow table pada switch

Menghapus flow table pada semua switch


Command Line Interface pada Mininet
Untuk menghapus flow table pada spesifik switch kit bisa menggunakan xterm
dengan cara sebagai berikut :
• Buka xterm s1 pada mininet

• Cek flow table pada s1 dengan perintah sebagai berikut


# ovs-ofctl dump-flows s1
Command Line Interface pada Mininet
• Lalu hapus flow table pada s1 dengan perintah sebagai berikut
# ovs-ofctl del-flows s1

•Lalu cek flow table pada switch 1 dengan perintah berikut


# ovs-ofctl dump-flows s1

Flow table telah hilang dari switch 1


Command Line Interface pada Mininet
Lalu gimana cara menambahkan flow table secara manual? Ini dia caranya :
• Pertama buka kembali xterm pada node yang kita ingin tambah flow table
sendiri, dalam kasus ini switch 1 yang telah kita hapus flow tabelnya tadi.
Command Line Interface pada Mininet
• Untuk menambahkan rules pada flow table kita menggunakan perintah.
# ovs-ofctl add-flows s1 in_port=1, action=output:2

• Lalu kita lihat rules untuk flow table pada switch 1 dengan perintah
# ovs-ofctl dump-flows s1
Command Line Interface pada Mininet
• Lalu lakukan pengecekan ping pada mininet dengan pingall

Tetapi kenapa belum bisa melakukan ping pada packet yang melewati s1 ? karena
pada penambahan flow table yang kita buat kita hanya menambahkan rules flow
table yang berasal dari port 1 lalu melakukan action dengan meneruskan ke port
2. sedangkan ketika paket masuk dari port 2 kita tidak mengatur rules pada flow
table sehingga switch akan melakukan drop pada packet yang masuk.
Command Line Interface pada Mininet
• Sekarang kita menabahkan rules untuk port in 2 lalu melakukan action dengan
mengeluarkannya melalui port 1.
# ovs-ofctl add-flows s1 in_port=2, action=output:1

• Lakukan pengecekan flow table


# ovs-ofctl dump-flows s1
Command Line Interface pada Mininet
Flow table yang ada pada switch 1 sekarang adalah ketika paket masuk melalui
port 1 switch akan meneruskan packet ke port 2 sesuai dengan flow table yang
di buat. Begitu juga sebalikanya ketika ada packet masuk dari port 2 switch 1
akan meneruskan packet melalui port 1.
• Lalukan test pingall pada mininet, untuk melihat apakah host 1 sudah bisa
terhubung dengan semua host yang lain
Memberikan background traffic
Untuk membuat sebuah background traffic kita menggunakan iperf dengan host
tujuan sebagai server dan host pengirim sebagai client.
• Jalankan mininet yang telah terhubung semua hostnya
Memberikan background traffic
• Setelah itu buka xterm host yang ingin menjadi server dan client, dalam hal ini
menggunakan h1 sebagai pengirim dan h3 sebagai penerima.
Memberikan background traffic
• Lakukan ping h1 dengan h3 untuk melihat waktu yang di butuhkan untuk
melakukan ping antar host 1 dengan host 3 sebelum adanya background traffic.
Memberikan background traffic
• Buka xterm h3 sebagai penerima packet traffic (server) dan jalankan command
# iperf -s -u -i <waktu print traffic>
Memberikan background traffic
• Buka xterm h1 sebagai pengirim packet traffic (client) dan jalankan command
# iperf -c <ip server> -u -t <waktu> -i <waktu print traffic> -b <bandwith>
Memberikan background traffic
• Lalu lakukan ping antara h1 dan h3 pada mininet untuk melihat perubahan
waktu yang di dapat ketika melakukan ping.

Disini didapat waktu ping yang lebih lama ketika jaringan diberikan background
traffic melebihi dari kapasitas link.
Referensi

• http://www.brianlinkletter.com/using-pox-components-to-create-a-
software-defined-networking-application/
• http://www.ramonfontes.com/vnd/
• http://mininet.org/walkthrough/#link-updown
• http://dpnm.postech.ac.kr/cs702/2015/lecture/Mininet-
Tutorial.pptx

Anda mungkin juga menyukai