Pemrograman Mininet
Pemrograman Mininet
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 :
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)
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.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
• 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
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