Skip to content

This is the repository for our Network Softwarization Project 1. In this project, we implement network slicing using ComNetsEmu.

Notifications You must be signed in to change notification settings

NafisIrtija/Network_slicing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Realizing Network Slicing

Nafis Irtija (UNM ID: 101902057) Fisayo Sangoleye (UNM ID: 101875639)

In this project, we demonstrate how to implement network slicing in an SDN to enable the isolation of network resources. The goal of this example is to show that the different requirements can be fulfilled on a shared physical infrastructure by using network slicing. We assume there are six hosts (h1, h2, h3, h4, h5, h6) and two switches (s1, s2) in the network:

                                              Normal Scenario

h1 ---- 2.5mbps                 2.5mbps--- h3
       |                              |
       |             5mbps            |
        s1 ======================= s2        
       |             5mbps            |
       |                              |
h2 ---- 2.5mbps                 2.5mbps--- h4
                                              Emergency Scenario

h1 ---- 2.5mbps                 2.5mbps --- h4
       |   ----------3mbps---------  |
2.5mbps|  |                        | |2.5mbps
h2 ---- s1 -----------3mbps-------  s2 ----h5
       |  |                        | |
       |   -----------4mbps--------  |
h3 ---- 2mbps                    2mbps  --- h6

This folder contains the following files:

  1. network.py: Script to build a network with six hosts and two switches.

  2. slicing.py: Application to isolate the network topology into multiple slices.

How to Run

Run the emulation applications with following commands in ./app/NetworkSlicing/.

  1. Enable Ryu-controller to load the application and to run in background:
    $ ryu-manager slicing.py &
  2. Start the network with Mininet:
    $ sudo python3 network.py
  3. There will be a prompt, type no:
    is there an Emergency? 
    Enter 'yes' if there's an emergency or 'no' if no emergency: no 
    
    
    
    

Normal Scenario

There are two steps to verify the slice:

a. ping: for verifying connectivity

mininet> pingall
*** Ping: testing ping reachability
h1 -> X X h4 X X 
h2 -> X X X h5 X 
h3 -> X X X X h6 
h4 -> h1 X X X X 
h5 -> X h2 X X X 
h6 -> X X h3 X X 
*** Results: 80% dropped (6/30 received)

b. iperf : for verifying bandwidth

mininet> iperf h1 h4
*** Iperf: testing TCP bandwidth between h1 and h4 
*** Results: ['2.39 Mbits/sec', '2.64 Mbits/sec']
mininet> iperf h2 h5
*** Iperf: testing TCP bandwidth between h2 and h5 
*** Results: ['2.38 Mbits/sec', '2.68 Mbits/sec']
  1. We exit Mininet.

Emergency Scenario

  1. We start the network with Mininet again:

    $ sudo python3 network.py
  2. There will be a prompt, type yes:

    is there an Emergency? 
    Enter 'yes' if there's an emergency or 'no' if no emergency: yes 
    
    

There are two steps to verify the slice:

a. ping: for verifying connectivity

mininet> pingall
*** Ping: testing ping reachability
h1 -> X X h4 X X 
h2 -> X X X h5 X 
h3 -> X X X X h6 
h4 -> h1 X X X X 
h5 -> X h2 X X X 
h6 -> X X h3 X X 
*** Results: 80% dropped (6/30 received)

b. iperf: for verifying bandwidth

mininet> iperf h1 h4
*** Iperf: testing TCP bandwidth between h1 and h4 
*** Results: ['2.28 Mbits/sec', '2.53 Mbits/sec']
mininet> iperf h2 h5
*** Iperf: testing TCP bandwidth between h2 and h5 
*** Results: ['2.18 Mbits/sec', '2.42 Mbits/sec']
mininet> iperf h3 h6
*** Iperf: testing TCP bandwidth between h3 and h6 
*** Results: ['1.91 Mbits/sec', '2.31 Mbits/sec']

About

This is the repository for our Network Softwarization Project 1. In this project, we implement network slicing using ComNetsEmu.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages