SDN LAB RECORD
SDN LAB RECORD
NAME :
REG NO :
YEAR :
SEMESTER :
BRANCH :
JEPPIAAR INSTITUTE OF TECHNOLOGY
SELF BELIEF | SELF DISCIPLINE | SELF RESPECT
KUNNAM, SUNGUVARCHATRAM, SRIPERUMBUDUR, CHENNAI - 631 604.
BONAFIDE CERTIFICATE
Register No.
Date
VISION OF THE INSTITUTION
Jeppiaar Institute of Technology aspires to provide technical education in
futuristic technologies with the perspective of innovative, industrial and
social application for the betterment of humanity.
II. To enrich graduates with the core competencies necessary for applying
knowledge of computer science and Data analytics tools to store, retrieve,
implement and analyze data in the context of business enterprise
IV. To equip the graduates with entrepreneurial skills and qualities which help them
to perceive the functioning of business, diagnose business problems, explore the
entrepreneurial opportunities and prepare them to manage business efficiently
CONTENTS
AIM:
To Setup your own virtual SDN lab using one of the three options:
Virtualbox/Mininet, Kathara, or GNS3
PROCEDURE:
RESULT:
AIM:
PROCEDURE:
1. Install Mininet:
Ensure you have Mininet installed on your system. You can use a Linux distribution for
this task.
2. Install Ryu SDN Controller:
Install Ryu, a popular SDN controller, using pip:
pip install ryu
3. Create the Mininet Topology:
Create a Python script (e.g., `mininet_topology.py`) to define your Mininet network
topology and start Mininet with the Ryu controller. Here's an example topology with a
single switch and two hosts:
```python
from mininet.net import Mininet
from mininet.topo import SingleSwitchTopo
from mininet.node import RemoteController
# Create a Mininet instance
net = Mininet(topo=SingleSwitchTopo(2), controller=RemoteController)
# Start Mininet
net.start()
```
4. Start the Ryu Controller:
In a separate terminal, start the Ryu controller:
```
ryu-manager
```
5. Capture OpenFlow Messages with Wireshark:
• Start Wireshark and select your network interface (e.g., `eth0`).
• Apply a display filter to capture only OpenFlow messages. Use the filter
expression: `of`.
• Begin capturing packets by clicking the "Start" button in Wireshark.
OUTPUT:
• The Wireshark capture should display OpenFlow messages exchanged between the
Ryu controller and the Mininet switch. You will see messages like FLOW_MOD,
PACKET_IN, and PACKET_OUT, along with their details.
• Use Wireshark's visualization tools to analyze and inspect the captured OpenFlow
messages. You can filter, sort, and drill down into specific messages to understand the
communication between the controller and switches.
RESULT:
This setup allows you to observe and analyze the OpenFlow messaging in a simple SDN
network. You can further customize the Mininet topology and generate more complex
OpenFlow scenarios for testing and analysis.
EX.NO: 3 Create a SDN application that uses the Northbound API to program flow table rules
on the switch for various use cases like L2 learning switch, Traffic Engineering,
DATE: Firewall etc
AIM:
Develop an SDN application that uses the Northbound API to program flow table
rules on SDN switches for different use cases: L2 learning switch, Traffic Engineering, and
Firewall.
PROCEDURE:
• For the L2 learning switch use case, the application should program flow rules that
enable the switch to learn and forward traffic based on MAC addresses.
• In the traffic engineering use case, the application should optimize traffic paths or
prioritize certain types of traffic as per your defined rules.
• In the firewall use case, the application should allow or block traffic based on your
defined criteria.
• The application's output should include log messages or other forms of feedback,
showing that it is functioning correctly.
RESULT:
The result is a working SDN application that leverages the Northbound API to program flow
table rules on SDN switches for different use cases. The application should effectively
control network traffic based on the specified policies and rules.
EX.NO: 4 Create a simple end-to-end network service with two VNFs using vim-emu
https://github.com/containernet/vim-emu
DATE:
AIM:
• Create a simple end-to-end network service with two VNFs using vim-emu.
PROCEDURE:
2. Install vim-emu:
Follow the instructions in the vim-emu GitHub repository
(https://github.com/containernet/vim-emu) to install vim-emu.
```python
from mininet.net import Containernet
rom mininet.node import Docker
from mininet.link import TCLink
from mininet.cli import CLI
net = Containernet()
net.start()
CLI(net)
net.stop()
```
```
sudo python network_topology.py
```
When running the network topology script with vim-emu, you should see the network and
VNFs being deployed. You can test connectivity and traffic between VNFs.
RESULT:
The result is a fully orchestrated end-to-end network service with two VNFs, established
using vim-emu. The network service is now ready to accept and process traffic as specified
in your descriptor.
EX.NO:2
5) Install OSM and onboard and orchestrate network service.
DATE:
AIM:
Install OSM and onboard and orchestrate the network service
PROCEDURE:
1. Install OSM:
Follow the instructions on the OSM GitHub repository (https://osm.etsi.org) to install
OSM, which includes installing the OSM client and server components.
```
osm ns-create <your_network_service_descriptor_file>
```
```
osm ns-instantiate <ns-instance-name> <your_network_service_name>
```
After installing OSM and onboarding the network service descriptor, you should see your
network service listed within OSM.
When instantiating the network service, OSM will orchestrate the deployment of the VNFs
and connect them according to your descriptor.
RESULT:
The result is a fully orchestrated end-to-end network service with OSM. The network
service is now ready to accept and process traffic as specified in your descriptor.