Not seeing a Scroll to Top Button? Go to our FAQ page for more info. [Python] Forwarding 3 Switch 6 Hosts | -

My Imaginations

-
Follow Me

[Python] Forwarding 3 Switch 6 Hosts



By  Galeh Fatma Eko Ardiansa     Maret 24, 2017     
Saya kali ini akan membagi tutorial bagaimana cara untuk forwarding pada sebuah switch yang bisa dijadikan sebagai implementasi Software Define Network, saya menggunakan emulator yang dapat di install pada ubuntu 14.04 atau sistem operasi linux yang lain, berikut tutorial dan sourcecode yang sudah saya pelajari selama kuliah.

Forrwarding : Meneruskan suatu paket yang dikirimkan oleh host ke interface lain sesuai dengan tujuan yang sudah ditentukan oleh pengirim paket.
Topologi :

Gambar 1 : Topologi 3 switch 6 host




Prosedur :
      1.      Membuka software miniedit pada terminal dengan cara
   $sudo ~/mininet/examples/miniedit.py
      2.      Membuat topologi 6 host 3 switch dan 1 kontroller seperti pada gambar 1.
      3.      Membuat file python pada folder /pyretic/pyretic/modules dengan nama Forwarding1.py (nama file bisa dirubah sesuai dengan keinginan) sesuai dengan source code dibawah ini.
      4.      Run topologi yang sudah dibuat dengan cara klik run pada pojok kiri bawah
      5.      Export PYTHONPATH dengan cara
  $export PYTHONPATH=$HOME/pox:$HOME/mininet:$HOME/pyretic
      6.      Jalankan Forwarding1.py dengan cara
·         Masuk directory pyretic 
$cd pyretic
·         Jalankan perintah
$python pyretic.py –m p0 pyretic.modules.forwarding1
      7.       Lakukan ping ke host lain di terminal host miniedit dengan klik kanan host yang dipilih dan klik terminal.
Source Code Forwarding1.py :
1    
2  
3  
4  
5  
6  
7  
8  
9  
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from pyretic.lib.corelib import *
from pyretic.lib.std import *
from pyretic.lib.query import *

ip1= IPAddr('10.0.0.1')
ip2= IPAddr('10.0.0.2')
ip3= IPAddr('10.0.0.3')
ip4= IPAddr('10.0.0.4')
ip5= IPAddr('10.0.0.5')
ip6= IPAddr('10.0.0.6')

sw1 =      ((match(dstip=ip1) >> fwd(1))+
     (match(dstip=ip2) >> fwd(2))+
     (match(dstip=ip3) >> fwd(3))+
     (match(dstip=ip4) >> fwd(3))+
     (match(dstip=ip5) >> fwd(3))+
     (match(dstip=ip6) >> fwd(3)))

sw2 = ((match(dstip=ip1) >> fwd(3))+
     (match(dstip=ip2) >> fwd(3))+
     (match(dstip=ip3) >> fwd(1))+
     (match(dstip=ip4) >> fwd(2))+
     (match(dstip=ip5) >> fwd(4))+
     (match(dstip=ip6) >> fwd(4)))

sw3 = ((match(dstip=ip1) >> fwd(3))+
     (match(dstip=ip2) >> fwd(3))+
     (match(dstip=ip3) >> fwd(3))+
     (match(dstip=ip4) >> fwd(3))+
     (match(dstip=ip5) >> fwd(1))+
     (match(dstip=ip6) >> fwd(2)))

l3forward = (if_(match(switch=1),sw1) + (if_(match(switch=2),sw2)) + (if_(match(switch=3),sw3)))

def main():
     return l3forward


Penjelasan :
            Pada program forwarding1.py pertama dilakukan import library pyretic dan inisialisasi awal untuk  ip address pada semua host, kemudian dilakukan inisialisasi pada masing – masing switch, switch pertama mempunyai alur kerja jika tujuan ke ip1 maka akan dilakukan forward pada port 1, ip2 ke port 2, ip3, ip4, ip5 ke port 3, switch kedua jika tujuan ke ip1 dan ip2 akan di forward pada port 3, ip3 ke port 1, ip4 ke port 2, ip5 dan ip6 ke port 4, sedangkan switch ketiga jika tujuan ke ip1, ip2, ip3, ip4 akan diforward ke port 3 dan jika tujuan ke ip5 dan ip6 masing-masing akan di forward ke port 1 dan 2. Kemudian dilakukan pengkondisian jika paket yang dituju ada pada port switch 1 maka akan di teruskan ke switch 1 dan untuk paket yang menuju switch 2 maka akan diforward ke switch 2 dan begitu pun untuk switch 3.
Screenshoot :


Gambar 2 : Menjalankan forwarding1.py





Gambar 3 : Ping ke semua host

Oke selamat mencoba, semoga berhasil.

About Galeh Fatma Eko Ardiansa

If you can dream it, you can do it | Genius is one percent inspiration and ninety-nine percent perspiration | If you don’t make mistakes, you’re not working on hard enough problems | The best and most beautiful things in the world cannot be seen or even touched - they must be felt with the heart | I can't change the direction of the wind, but I can adjust my sails to always reach my destination.

Tidak ada komentar:

Posting Komentar


Formulir Kontak

Nama

Email *

Pesan *

Advertisement

Disqus Shortname