• Tidak ada hasil yang ditemukan

SOFTWARE DEFINED NETWORK BAGIAN 3 MININET. Tim Teaching MKP SDN. S1 Teknik Telekomunikasi Fakultas Teknik Elektro 2016

N/A
N/A
Protected

Academic year: 2021

Membagikan "SOFTWARE DEFINED NETWORK BAGIAN 3 MININET. Tim Teaching MKP SDN. S1 Teknik Telekomunikasi Fakultas Teknik Elektro 2016"

Copied!
45
0
0

Teks penuh

(1)

SOFTWARE DEFINED NETWORK

Tim Teaching MKP SDN

MININET

BAGIAN 3

S1 Teknik Telekomunikasi

Fakultas Teknik Elektro

(2)

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

(3)

Tipe-tipe dari Testbeds pada Jaringan

Platform Advantages Disadvantages Hardware testbed  Lebih Cepat

 Akurat

 Mahal

 Susah untuk di konfigurasi ulang  Susah untuk di ubah

 Susah untuk di download Simulator  Tidak mahal, fleksibel

 Mudah untuk di download  Kurang akurat

 May require app changes  Might not run OS code  May not be “believable”  May be slow/non-interactive Emulator  Tidak mahal, fleksibel

 Memiliki konfigurasi seperti aslinya

 Cukup akurat

 Mudah di download  Cepat

 Lebih lambat dari hadware aslinya

 Kemungkinan akurasinya kurang ketika terlalu banyak perangkat yang diemulatorkan

(4)

Instalasi Mininet

Cara instalasi mininet di Ubuntu

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

(5)

Instalasi Mininet lanjut

• Melakukan pengecekan apakah mininet sudah terinstall dengan benar atau belum dengan perintah mn –test pingall .

(6)

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

$ mn --topo tree,2 --mac --switch ovsk --controller=remote

•Terdapat beberapa topologi bawaan pada mininet :

Contoh command untuk membuat topologi bawaan dari mininet:

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

Mininet Topologi

(7)

$ mn --topo linear,3 --mac --switch ovsk --controller=remote

 Linear, membuat topologi linear dengan 3 switch dan 1 host tiap switchnya :

(8)

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)

(9)

Custom Topologi VND

• Gambar topologi yang diinginkan

(10)

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

(11)

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

• 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

(12)

Custom Topologi VND

$ sudo ./pox.py forwarding.l2_learning

$ sudo ./<nama file vnd>

(13)

Custom Topologi VND

(14)

Custom Topologi MiniEdit

2. Menggunakan GUI untuk membentuk topologi dengan MiniEdit

• Jalankan MiniEdit dengan menggunakan perintah

(15)

Custom Topologi MiniEdit

• Bentuk topologi yang diinginkan

(16)

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.

(17)

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

(18)

Custom Topologi MiniEdit

(19)

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

(20)

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')

(21)

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

(22)

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

(23)

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.

(24)

Command Line Interface pada Mininet

mininet> nodes

• Melihat nodes yang ada di topologi

Setelah kita masuk kedalam mininet kita bisa melakukan interaksi antar host dan switch. Berikut adalah contoh dari beberapa command yang ada pada mininet.

mininet> net

(25)

Command Line Interface pada Mininet

mininet> dump

mininet> intfs

• Melihat informasi nodes di topologi

(26)

Command Line Interface pada Mininet

mininet> links

• Melihat status setiap link di topologi

mininet> h1 ping –c 3 h2

• Test koneksi antara host satu dengan host lainya

(27)

Command Line Interface pada Mininet

Mengirim packet icmp antar host 1 dengan host 2 secara terus menerus.

untuk menghentikan dengan menekan ctrl+c

mininet> h1 ping h2

mininet> pingall

(28)

Command Line Interface pada Mininet

mininet> link <device 1> <device 2> up/down mininet> ports

• Melihat port yang aktif pada setiap node di topologi

• Mematikan link antar dua node

Mematikan link antara s2 dengan s3

(29)

Command Line Interface pada Mininet

mininet> switch <nama node> start/stop

Menghidupkan link antara s2 dengan s3

• Mematikan dan menyalakan salah satu node di topologi Mematikan switch s3

(30)

Command Line Interface pada Mininet

mininet> xterm <nama device>

Menghidupkan switch s3

(31)

Command Line Interface pada Mininet

mininet> dpctl <kondisi 1> - <kondisi 2>

• Melihat isi, menghapus, dan menambahkan flow tabel pada switch openflow Melihat isi dari flow table pada switch

(32)

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

(33)

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

Flow table telah hilang dari switch 1

(34)

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.

(35)

Command Line Interface pada Mininet

• Untuk menambahkan rules pada flow table kita menggunakan perintah.

• Lalu kita lihat rules untuk flow table pada switch 1 dengan perintah

# ovs-ofctl add-flows s1 in_port=1, action=output:2

(36)

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.

(37)

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

(38)

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

(39)

Memberikan background traffic

Untuk membuat sebuah background traffic kita menggunakan iperf dengan host tujuan sebagai server dan host pengirim sebagai client.

(40)

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.

(41)

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.

(42)

Memberikan background traffic

# iperf -s -u -i <waktu print traffic>

(43)

Memberikan background traffic

# iperf -c <ip server> -u -t <waktu> -i <waktu print traffic> -b <bandwith>

(44)

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.

(45)

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

Referensi

Dokumen terkait