SDN Lab Manual
SDN Lab Manual
MASTER RECORD
DEPARTMENT : IT
REGULATION : AU-R2021
VISION
To be a reputed Institution that fosters excellence in education, research and innovation
while upholding the highest standards of ethics and social responsibility.
MISSION
M1. To provide a comprehensive education that prepares students for successful careers.
M2. To foster a culture of research and innovation that drives progress.
M3. To collaborate with industry partners to provide practical experience for students.
M4. To promote ethical behavior and social responsibility among our community.
M5. To empower strong communication and leadership skills through open collaboration.
DEPARTMENT OF INFORMATION TECHNOLOGY
VISION
To be a school of excellence by providing holistic education and fostering research in
Information Technology to produce technically competent, socially and ethically
responsible students.
MISSION
M1. To provide a solid foundation in computational engineering for a successful career in
Information Technology.
M2. To provide technical support and facilities to enrich research and development in the
field of Information Technology.
PEO4 To be prepared for their career in the software industry or pursue higher
studies to enhance their professional knowledge.
PSO1 To apply basic science, programming, algorithms and data management for
developing software solutions.
PSO2 To apply data driven technology and information security principles for
developing reliable information systems
Syllabus
CourseObjectives:
The main objectives of this course are to:
• To understand the need for SDN and its data plane operations
• To understand the functions of control plane
• To comprehend the migration of networking functions to SDN environment
• To explore various techniques of network function virtualization
• To comprehend the concepts behind network virtualization
List of Programs:
TOTAL:30 PERIODS
Course Outcomes
CO Details BTL
CO603.1 Describe the basic concepts and architecture of SDN K2 – Understand
CO603.2 Explain the use cases of SDN and NFV. K2 – Understand
CO603.3 Demonstrate network applications using SDN.. K3 – Apply
CO603.4 Illustrate the migration of networking functions to SDN environment. K2-Understand
CO603.5 Describe the Network Functions Virtualization components and it’s
K2-Understand
working.
CO603.6 Discuss the major requirements of the design of an SDN protocol K3 – Apply
CO and PO Mapping
Program
Program Outcomes Specific
CO
Outcomes
PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2
CO1 3 2 - - - - - - 2 2 2 - 2 3
CO2 3 3 2 2 - - - - 2 2 2 - 2 3
CO3 3 2 2 3 2 - - - 3 2 2 - 3 2
CO4 3 2 - 3 - 2 2 - 3 2 2 2 2 3
CO5 3 3 - 2 - 2 2 - 3 2 3 - 3 2
CO6 3 3 2 3 3 2 3 3 3 3 3 3 3 2
2. 2. 2. 2. 2. 2. 2.
3 2 2 3 2.3 2.5 2.5
5 6 5 3 6 1 5
CORRELATION
STRONG S/3 MEDIUM M/2 WEAK W/1
INDEX
I Cycle Experiments
3 2 1
3. Inferences drawn Correct inferences Inferences drawn are Inferences drawn are
from the have been drawn and correctly but not partially incorrectly or
experiment / presented presented incorrect
exercise(3) Professionally Professionally
3 2 1
4. Presentation of Calculation are Calculation are present Wrong calculations.
results(3) present neatly with neatly with minor Major mistakes.
accurate results. mistakes
Aim:
To install our own SDN layer by using mininet, kithara, and GNS3
Algorithm:
1) By using mininet
a. Install mininet: start by installing mininet through official instruction
b. Mininet CCI setup: Lauch the miniset CCI with ‘sudo mn’ to establish the
default networks topology install vm ware / install gns3 / install GNS3 VM
/
c. Start SDN controller: Launch the SDN controller using the sudo mn
d. Custom topology (Option) : 16 Cleaned a custom network topology in
mininet using python.
2) By using kithara
a. Download and install kithara visit www.kathara.org
b. Install SDN controller: choose and SDN controller open add blood light and
yellow its documentation to install in your system
c. Create kithara environment
d. Lauch environment
e. Intract with CLI
3) By using GNS
a. Download and install GNS from the install based on your DS
b. Install dependencies: Install addition as needed during the GNS3
c. Download SDN controller virtual machine VM
d. Create and drag devices on to the wavespace
e. Connection device power the SDN controller VM and configuring network
interfaces and application
Output:
Marks Obtained:
Result:
Thus the installation and setup of our virtual SDN lab successfully.
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()
ryu-manager
• 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
Pre-Viva Questions:
1. What is Keras?
DEPARTMENTOF IT, M.A.M. COLLEGE OF ENGINEERING AND TECHNOLOGY
M.A.M. College of Engineering and Technology
Siruganur, Tiruchirappalli – 621105.
Result:
Thus the creation of a simple mininet topology with SDN controller and use
wireshark to capture and visualization was executed successfully.
Ex.No: 3 Date:…….
Aim:
To create SDN application that uses the northbound API to program table rules on the
switch for various use cases like L2 learning switch.
Algorithm:
1) Choose an SDN Controller
2) Setup Development Environment
3) Familiarize Northbound API
4) Choose programming language and framework
5) Develop application structure
6) Implement L2 learning switch use case
7) Implement traffic engineering use case
8) Implement Firewall use case
9) Expose APIs for Northbound communication
Program:
import requests
class SDNApp(object):
def __init__(self, controller_ip):
self.controller_ip = controller_ip
self.session = requests.Session()
Args:
def create_l2_learning_switch(self):
"""Creates an L2 learning switch.
This switch will learn the MAC addresses of devices connected to it and
forward traffic accordingly.
"""
rules = [
{
"match": {"eth_type": 0x800},
"action": "learn_mac"
},
{
"match": {"eth_dst": "00:00:00:00:00:00"},
"action": "flood"
},
{
"match": {"eth_dst": "unicast"},
"action": "forward"
}
]
self.program_table_rules("l2_learning", rules)
def create_traffic_engineering_switch(self):
"""Creates a traffic engineering switch.
rules = [
{
"match": {"ip_dst": "10.0.0.0/8"},
"action": "forward_to_port_1"
},
{
"match": {"ip_dst": "192.168.0.0/24"},
"action": "forward_to_port_2"
}
]
self.program_table_rules("traffic_engineering", rules)
def create_firewall(self):
"""Creates a firewall.
This firewall will block traffic according to the given firewall rules.
"""
rules = [
{
"match": {"ip_src": "10.0.0.0/8"},
"action": "drop"
},
{
"match": {"ip_dst": "192.168.0.0/24"},
"action": "allow"
}
]
self.program_table_rules("firewall", rules)
if __name__ == "__main__":
controller_ip = "10.0.0.1"
app = SDNApp(controller_ip)
# Create a firewall.
app.create_firewall()
Output
$ python sdn_app.py
Creating L2 learning switch...
Creating traffic engineering switch...
Creating firewall...
Pre-Viva Questions:
1. What is a perceptron?
2. How does a perceptron learn?
3. What are the key components of a perceptron?
4. How do you represent the input and output of a perceptron?
5. What is the activation function used in a perceptron?
6. How do you initialize weights and bias in a perceptron?
7. How do you update weights and bias during training?
8. What is the role of the learning rate in training a perceptron?
9. What are the limitations of a single-layer perceptron?
10. How can you extend a perceptron to handle non-linearly separable data?
Post-Viva Questions:
1. How would you evaluate the performance of a trained perceptron?
2. What regularization techniques could you apply to prevent overfitting in a perceptron
model?
3. How do you handle class imbalances in the training data when training a perceptron
for classification tasks?
4. Could you explain the difference between a perceptron and a neural network with
multiple layers?
5. How do you visualize the decision boundary learned by a perceptron?
6. What considerations would guide your choice of activation function for a perceptron?
7. How do you interpret the weights learned by a trained perceptron?
8. What are some strategies for improving convergence and reducing training time in a
perceptron?
9. How would you deploy a trained perceptron model into a production environment?
10. What are some practical applications of perceptrons in real-world problems?
Marks Obtained:
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 Date:………..
Aim:
• Create a simple end-to-end network service with two VNFs using vim-emu.
• Install OSM and onboard and orchestrate the network service.
PROCEDURE:
2. Install vim-emu:
Follow the instructions in the vim-emu GitHub repository
(https://github.com/containernet/vim-emu) to install vim-emu.
net = Containernet()
net.start()
CLI(net)
net.stop()
6. 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.
Output:
Pre-Viva Questions:
1. What is a feed-forward neural network?
2. How does a feed-forward network differ from other types of neural networks?
3. What are the main components of a feed-forward network?
4. How do you represent the architecture of a feed-forward network?
5. What is the role of activation functions in a feed-forward network?
6. How do you initialize weights and biases in a feed-forward network?
7. What is the purpose of the forward pass in a feed-forward network?
8. What is backpropagation, and how is it used in training a feed-forward network?
9. How do you choose the number of layers and neurons in a feed-forward network?
10. What are some common challenges faced when training a feed-forward network?
Post-Viva Questions:
1. How do you evaluate the performance of a trained feed-forward network?
2. What techniques can you use to prevent overfitting in a feed-forward network?
3. How do you handle vanishing or exploding gradients in training a deep feed-forward
network?
4. Could you explain the concept of batch normalization and its role in training a feed-
forward network?
5. How would you implement dropout regularization in a feed-forward network?
6. What are some techniques for optimizing the hyperparameters of a feed-forward
network?
7. How do you interpret the learned features in the hidden layers of a feed-forward
network?
8. What are some strategies for improving convergence and reducing training time in a
feed-forward network?
9. How do you handle non-numeric data inputs in a feed-forward network?
10. What are some real-world applications where feed-forward networks are commonly
used?
Marks Obtained:
Result:
Thus the program for implementing informed search algorithms like A* and memory-
bounded A* has verified successfully and output is verified.
Thus the program for implementing informed search algorithms like A* and memory-
bounded A* has verified successfully and output is verified.
Thus the creation of simple and to end network service with two VNFs using Vim-
emu was successfull
Aim:
To install osm and onboard and orchestrate network service
Procedure:
1. Setup openstack environment
2. Install magnum
3. Configure magnum
4. Onboard network service
5. Orches trate network service
6.Manage and Monitor
Pre Requirements:
2CDUS
6GB RAM
40GB Disk
Single inferface with internet aceess
Ubuntu 20.04
Installation:
Install OSM
wget https://osm-download.etsi.org/ftp/osm-15.0-fifteen/install_osm.sh
chmod +x install_osm.sh
Optionally
./install_osm.sh --juju –lxd
Help
-y: do not prompt for confirmation, assumes yes
-r <repo>: use specified repository name for osm packages
-R <release>: use specified release for osm binaries (deb packages, lxd images, ...)
-u <repo base>: use specified repository url for osm packages
-k <repo key>: use specified repository public key url
--showopts: print chosen options and exit (only for debugging)
-D <devops path> use local devops installation path
-h / --help: prints help
Output
DEPARTMENTOF IT, M.A.M. COLLEGE OF ENGINEERING AND TECHNOLOGY
M.A.M. College of Engineering and Technology
Siruganur, Tiruchirappalli – 621105.
Pre-Viva Questions:
1. What is a Convolutional Neural Network (CNN)?
2. How do CNNs differ from traditional feedforward neural networks?
3. What are the key components of a CNN architecture?
4. How do CNNs handle spatial hierarchies in data such as images?
5. What is the purpose of convolutional layers in a CNN?
6. How do pooling layers contribute to feature extraction in CNNs?
7. What is the role of activation functions in CNNs?
8. How are parameters learned and updated in a CNN during training?
9. What are some common techniques used to prevent overfitting in CNNs?
10. How do you evaluate the performance of an image classifier built using CNNs?
Post-Viva Questions:
1. How do you interpret the learned filters in the convolutional layers of a CNN?
2. What strategies can be employed to handle limited training data in CNNs?
DEPARTMENTOF IT, M.A.M. COLLEGE OF ENGINEERING AND TECHNOLOGY
M.A.M. College of Engineering and Technology
Siruganur, Tiruchirappalli – 621105.
Marks Obtained:
Result:
Thus the program for implementing informed search algorithms like A* and memory-
bounded A* has verified successfully and output is verified.
Thus the program for implementing informed search algorithms like A* and memory-
bounded A* has verified successfully and output is verified.
Thus the installation of OSM and onboard orchestrate network service was successful.