Berikut merupakan dokumentasi Tugas Akhir AJT
- Login ke AWS Student Portal, kemudian klik Start Lab pada module Learner Lab. Tunggu hingga indikator Lab berubah menjadi hijau.
- Tekan tombol AWS disebelah indikator hijau untuk memasuki portal AWS untuk melakukan setup instance. Tekan EC2 untuk memasuki menu untuk membuat instance EC2.
- Pada dasbor instance EC2, tekan tombol Launch Instance yang berwarna oren untuk membuat sebuah instance EC2.
- Pada menu pembuatan instance EC2, buat sebuah instance dengan kriteria berikut: Name and tags: Tugas Akhir OS Images: Ubuntu Server 22.04 LTS 64 bit Instance type: t2.medium Key pair: vockey Edit Network settings: allow SSH, allow HTTP, allow HTTPS, allow TCP port 8080, allow TCP port 8081 Configure storage: 30 GiB, gp3
kemudian tekan Launch Instance untuk menyalakan instance EC2 yang telah kita setup.
- Kembali ke dasbor EC2, kemudian tekan refresh agar instance yang baru kita buat terlihat di instance list. Pastikan instance dalam kondisi Running dan tunggu beberapa saat agar instance selesai melakukan booting.
- Tekan instance-ID, kemudian tekan Connect. pada window ini, tekan SSH client, kemudian lakukan copy command yang kita perlukan untuk login ke dalam instance menggunakan SSH.
- Buka SSH client yang kita pakai (dalam praktikum ini saya menggunakan Windows PowerShell bawaan dari Windows 10), kemudian paste command yang telah kita copy ke dalam PowerShell. tekan Enter untuk menghubungkan klien dengan server.
- Lakukan syntax berikut untuk memastikan kita sedang menggunakan OS image terbaru dan up-to-date
sudo apt-get update
sudo apt-get upgrade
setelah upgrade selesai, lakukan sebuah server reboot. Setup instance EC2 selesai
- Pastikan kita sudah terkoneksi dengan server melalui SSH
- Unduh file repositori mininet dari
https://mininet.org/download
dengan menggunakan command berikut,
git clone https://github.com/mininet/mininet
kemudian install dengan menggunakan command berikut,
mininet/util/install.sh -nfv
- Unduh file repositori RYU dan install
git clone https://github.com/osrg/ryu.git
cd ryu; pip install .
cd
- Unduh file repositori Flowmanager
git clone https://github.com/martimy/flowmanager
cd
-
Setelah melakukan instalasi MiniNet dan RYU, lakukan sebuah reboot server menggunakan command
sudo reboot
-
Setelah melakukan reboot, maka kita bisa mulai tes satu-per-satu aplikasi yang telah kita instal, dimulai dari MiniNet. Untuk membuka MiniNet, kita menggunakan command
sudo mn
pada SSH.
MiniNet akan secara default membuat sebuah jaringan yang terdiri dari 2 host, 1 switch, dan 1 OpenFlow Reference Controller.
- Untuk menampilkan apa saja yang bisa kita lakukan dengan mininet, kita bisa menggunakan perintah
help
- untuk menampilkan node yang ada, kita bisa menggunakan perintah
node
- untuk menampilkan link antar node, kita bisa menggunakan perintah
net
- untuk menampilkan informasi dari semua node, kita bisa menggunakan perintah
dump
- Kemudian, kita akan mengetes konektivitas antar node pada jaringan default tersebut dengan menggunakan perintah
pingall
danh1 ping -c 2 h2
- Buat file script bernama tugas22sw2h.py menggunakan command
vim tugas22sw2.py
pada SSH
- isi dengan script berikut,
" Custom Topology "
from mininet.topo import Topo
from mininet.log import setLogLevel, info
class MyTopo( Topo ):
def addSwitch(self, name, **opts ):
kwargs = {'protocols' : 'OpenFlow13'}
kwargs.update( opts )
return super(MyTopo, self).addSwitch( name, **kwargs )
def __init__(self):
# Inisialisasi Topology
Topo.__init__( self )
# Tambahkan node, switch, dan host
info('*** Add switches\n')
s1 = self.addSwitch('s1')
s2 = self.addSwitch('s2')
# ....
info('*** Add hosts\n')
h1 = self.addHost('h1', ip='10.1.0.1/24')
h2 = self.addHost('h2', ip='10.1.0.2/24')
# ....
self.addLink(s1, h1, port1=1, port2=1)
self.addLink(s1, s2, port1=2, port2=1)
self.addLink(s2, h2, port1=2, port2=1)
# ....
topos = {'mytopo': ( lambda: MyTopo() ) }
- Ketika sudah selesai membuat script, maka kita akan menjalankan command berikut
sudo mn --controller=none --custom tugas22sw2h.py --topo mytopo --mac --arp
- Setelah MiniNet berjalan, jalankan command berikut,
sh ovs-ofctl add-flow s1 -O OpenFlow13 "in_port=2,action=output:1"
sh ovs-ofctl add-flow s2 -O OpenFlow13 "in_port=1,action=output:2"
sh ovs-ofctl add-flow s2 -O OpenFlow13 "in_port=2,action=output:1"
- Lakukan uji koneksi dengan menggunakan command
h1 ping -c2 h2
- Topology 2 Switch 2 Host selesai. Maka kita kaan berlanjut ke topologi selanjutnya, yakni 3 switch dengan 6 host menggunakan STP, berikut scriptnya;
class MyTopo( Topo ):
"Simple topology example."
def build( self ):
"Create custom topo."
# Add hosts and switches
H1 = self.addHost( 'h1', ip = '10.1.0.1/24' )
H2 = self.addHost( 'h2', ip = '10.1.0.2/24' )
H3 = self.addHost( 'h3', ip = '10.1.0.3/24' )
H4 = self.addHost( 'h4', ip = '10.1.0.4/24' )
H5 = self.addHost( 'h5', ip = '10.1.0.5/24' )
H6 = self.addHost( 'h6', ip = '10.1.0.6/24' )
S1 = self.addSwitch( 's1' )
S2 = self.addSwitch( 's2' )
S3 = self.addSwitch( 's3' )
# Add links
self.addLink(S1, S2, port1=4, port2=2)
self.addLink(S1, S3, port1=1, port2=3)
self.addLink(S2, S3, port1=1, port2=4)
self.addLink(H1, S1, port1=1, port2=2)
self.addLink(H2, S1, port1=1, port2=3)
self.addLink(H3, S2, port1=1, port2=3)
self.addLink(H4, S2, port1=1, port2=4)
self.addLink(H5, S3, port1=1, port2=2)
topos = { 'mytopo': ( lambda: MyTopo() ) }
- Save scriptnya, kemudian jalankan command
sudo mn --controller=none --custom tugas23sw6h.py --topo mytopo --mac --arp
- lakukan test pingall
- Pertama, git clone dahulu repository learn_sdn dengan menggunakan command
git clone https://github.com/abazh/learn_sdn.git
- Copy file topo_lb.py ke direktori home anda
- Jalankan mininet dengan command
sudo python3 topo_lb.py
- Buka sebuah SSH session di window lain, kemudian jalankan command
ryu-manager rr_lb.py
NOTE: Ada sebuah bug dalam Eventlet pada Python3.10 sehingga praktikum tidak bisa dilanjut. See #687
- Jalankan command
sudo python3 topo-spf_lab.py
- Buka sebuah SSH session di window lain, kemudian jalankan command
ryu-manager dijkstra_Ryu_controller.py
NOTE: Ada sebuah bug dalam Eventlet pada Python3.10 sehingga praktikum tidak bisa dilanjut. See #687