In Mininet, developing a SDN simulation model is not an easy approach, it requires moving on with the process in a gradual manner. A systematic guide with the application of Mininet and a basic Python application as a SDN controller is exhibited in this article for guiding you in simulating the SDN framework in Mininet:
SDN Simulation Model in Mininet
Step 1: State the Network Topology
By using numerous switches and hosts, design a Mininet topology.
- Python Script for Network Topology (sdn_topology.py):
# sdn_topology.py
From mininet.net import Mininet
From mininet.node import RemoteController, OVSSwitch
From mininet.cli import CLI
From mininet.log import setLogLevel
Def sdn_topology ():
# Initialize Mininet network
Net = Mininet (controller=RemoteController, switch=OVSSwitch)
# Add a remote SDN controller
net.addController (‘c0′, controller=RemoteController, ip=’127.0.0.1’, port=6633)
# add switches and host
s1 = net.addSwitch (‘s1’)
s2 = net.addSwitch (‘s2’)
h1 = net.addHost (‘h1′, ip=’10.0.0.1’)
h2 = net.addHost (‘h2′, ip=’10.0.0.2’)
h3 = net.addHost (‘h3′, ip=’10.0.0.3’)
h4 = net.addHost (‘h4′, ip=’10.0.0.4’)
# create links between switches and hosts
net.addLink (h1, s1)
net.addLink (h2, s1)
net.addLink (h3, s2)
net.addLink (h4, s2)
# Create a link between the two switches
net.addLink (s1, s2)
# Start the network
net.start ()
CLI (net)
Net. Stop ()
If __name__ == ‘__main__’:
SetLogLevel (‘info’)
sdn_topology ()
- Configure the Mininet Topology:
Sudo python3 sdn_topology.py
Step 2: Execute a Simple SDN Controller
To manage packet forwarding, use POX or Ryu to design a SDN controller application.
- Ryu Controller Application (simple_switch.py):
# simple_switch.py
From ryu.base import app_manager
From ryu.controller import ofp_event
From ryu.controller.handler import MAIN_DISPATCHER, set_ev_cls
From ryu.ofproto import ofproto_v1_3
From ryu.lib.packet import packet, ethernet
Class SimpleSwitch (app_manager.RyuApp):
OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION]
Def __init__ (self, *args, **kwargs):
Super (SimpleSwitch, self).__init__(*args, **kwargs)
self.mac_to_port = {}
@set_ev_cls (ofp_event.EventOFPSwitchFeatures, MAIN_DISPATCHER)
Def switch_features_handler (self, ev):
Datapath = ev.msg.datapath
Ofproto = datapath.ofproto
Parser = datapath.ofproto_parser
Match = parser.OFPMatch ()
Actions = [parser.OFPActionOutput (ofproto.OFPP_CONTROLLER, ofproto.OFPCML_NO_BUFFER)]
self.add_flow (datapath, 0, match, actions)
Def add_flow (self, datapath, priority, match, actions, and buffer_id=none):
Ofproto = datapath.ofproto
Parser = datapath.ofproto_parser
inst = [parser.OFPInstructionActions(ofproto.OFPIT_APPLY_ACTIONS, actions)]
If buffer_id:
Mod = parser.OFPFlowMod (datapath=datapath, buffer_id=buffer_id, priority=priority, match=match, instructions=inst)
Else:
Mod = parser.OFPFlowMod (datapath=datapath, priority=priority, match=match, instructions=inst)
datapath.send_msg (mod)
@set_ev_cls (ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
Def packet_in_handler (self, ev):
Msg = ev.msg
Datapath = msg.datapath
Ofproto = datapath.ofproto
Parser = datapath.ofproto_parser
in_port = msg.match [‘in_port’]
Pkt = packet.Packet (msg.data)
Eth = pkt.get_protocols (ethernet.ethernet)[0]
DST = eth.dst
Src = eth.src
Dpid = datapath.id
self.mac_to_port.setdefault (dpid, {})
self.mac_to_port [dpid][src] = in_port
If DST in self.mac_to_port [dpid]:
out_port = self.mac_to_port [dpid][dst]
Else:
out_port = ofproto.OFPP_FLOOD
Actions = [parser.OFPActionOutput (out_port)]
If out_port! = ofproto.OFPP_FLOOD:
Match = parser.OFPMatch (in_port=in_port, eth_dst=dst)
self.add_flow (datapath, 1, match, actions)
Data = None
If msg.buffer_id == ofproto.OFP_NO_BUFFER:
Data = msg.data
Out = parser.OFPPacketOut (datapath=datapath, buffer_id=msg.buffer_id, in_port=in_port, actions=actions, data=data)
datapath.send_msg (out)
- Run the Ryu Controller:
Ryu-manager simple_switch.py
Step 3: Formulate Traffic Patterns
Formulate traffic patterns by implementing Mininet’s CLI commands or conventional Python programs.
Traffic Generation Commands:
- Ping All Hosts:
Mininet> pingall
- Evaluate Latency between Two Hosts:
Mininet> h1 ping -c 10 h2
- Assess Throughput Using iperf:
On h1, begin the iperf server
Mininet> h1 iperf –s
On h2, initiate the iperf client
Mininet> h2 iperf -c h1
- Automate Traffic Generation Using Python Script (traffic_test.py):
# traffic_test.py
From mininet.net import Mininet
From mininet.node import RemoteController, OVSSwitch
From mininet.log import setLogLevel
Def traffic_test ():
# Initialize Mininet network
Net = Mininet (controller=RemoteController, switch=OVSSwitch)
# Add a remote SDN controller
net.addController (‘c0′, controller=RemoteController, ip=’127.0.0.1’, port=6633)
# add switches and hosts
s1 = net.addSwitch (‘s1’)
s2 = net.addSwitch (‘s2’)
h1 = net.addHost (‘h1′, ip=’10.0.0.1’)
h2 = net.addHost (‘h2′, ip=’10.0.0.2’)
h3 = net.addHost (‘h3′, ip=’10.0.0.3’)
h4 = net.addHost (‘h4′, ip=’10.0.0.4’)
# create links between switches and hosts
net.addLink (h1, s1)
net.addLink (h2, s1)
net.addLink (h3, s2)
net.addLink (h4, s2)
net.addLink (s1, s2)
# Start the network
net.start ()
# generate traffic patterns
h1 = net.get (‘h1’)
h2 = net.get (‘h2’)
h3 = net.get (‘h3’)
h4 = net.get (‘h4’)
# Ping test between hosts
h1.cmd (‘ping -c 5 10.0.0.2’)
h1.cmd (‘ping -c 5 10.0.0.3’)
h1.cmd (‘ping -c 5 10.0.0.4’)
# Throughput test using iperf
h1.cmd (‘iperf -s -i 1 > h1_server.log &’)
h2.cmd (‘iperf -c 10.0.0.1 -t 10 -i 1 > h2_client.log’)
# Stop the network
Net. Stop ()
if __name__ == ‘__main__’:
SetLogLevel (‘info’)
traffic_test ()
- Execute the Automated Traffic Test:
Sudo python3 traffic_test.py
Step 4: Gather and Evaluate Results
Evaluating the iperf Logs:
Throughput outcomes need to be examined.
- Verify Throughput Results:
Cat h2_client.log
- Verify ping Results:
Tail -n 10 ping_results log
What are some cool projects that make use of software defined radio?
For assessing the modulation and demodulation of radio signals, SDR (Software Defined Radio) is a specifically designed radio communication system which applies specific software. Based on SDR, some of the trending and intriguing project concepts are suggested by us:
- FM Radio Station: To develop your custom FM radio station, deploy SDR. By means of FM radio frequencies, modify the audio signals and transfer them that could be received through any standard radio, as this research includes the configuration of SDR.
- Aircraft Tracking with ADS-B: Data such as altitude, position and speed on a frequency of 1090 MHz are transmitted through the aircraft transponders. To monitor the aircraft practically, you can deploy SDN to receive those signals. For visualizing the flight routes, it could be synthesized with mapping software.
- Radio Astronomy: As regards the simple radio astronomy deployments as an example, at specific frequencies, observing the noise from Jupiter or Sun, SDR could be highly adaptable. On the basis of crucial space phenomena and the activities of these astronomical bodies, it might assist you in further investigation.
- Weather Satellite Image Reception: From weather satellites like METEOR and NOAA, derive images rapidly with the help of SDR. To acquire actual-time weather images and data, these satellites transfer APT (Automatic Picture Transmission) signals that might be decoded.
- GSM Network Sniffing: SDR is efficiently applied to interpret the function of cellular networks and analyze the GSM signal spectrum with the proper legal access. Examine traffic and clarify the data which is transferred without any wires by incorporating the sniffing GSM frequencies.
- Ham Radio Digital Modes: In ham radio, investigate the employed diverse digital communication modes like PSK31, FT8 or JT65. Among these modes, SDR makes the switch process simpler and examines further about digital communication.
- RFID Reader and Analysis: To interpret and evaluate RFID frequencies, deploy SDR. How the RFID tags and readers perform is clearly explained through this research and you can also examine various kinds of RFID applications.
- Signal Jamming and Interference Analysis: Conduct an extensive research and interpretation of RF signal interference, in what way the signals are blocked and how to overcome these issues. In business industries as well as defense applications, it is considered as a significant area of study.
- Spectrum Monitoring: For actual-time spectrum analysis and supervising, make use of SDR. Considering the specific areas, spectrum monitoring is beneficial for the process of entire management of the RF spectrum, identifying the illicit transmissions and detection of unoccupied frequency.
- Emergency Communication Systems: Specifically in fields where conventional communication architecture is inaccessible or impaired this research involves developing a SDR-based system which might be applied for emergency warning systems.
SDN Simulator Projects
The SDN Simulator Projects listed above have been made available for scholars at all academic levels by phdtopic.com. This unique company specializes in offering innovative research topics tailored to your specific areas of interest. Feel free to reach out to our team for personalized support and further information.
- Flow-based anomaly intrusion detection using machine learning model with software defined networking for OpenFlow network
- Scalable multicasting with multiple shared trees in software defined networking
- Traffic engineering framework with machine learning based meta-layer in software-defined networks
- Managing IoT-based smart healthcare systems traffic with software defined networks
- Service-aware adaptive link load balancing mechanism for Software-Defined Networking
- Improving QoS in real-time internet applications: from best-effort to Software-Defined Networks
- Flexible network-based intrusion detection and prevention system on software-defined networks
- An intelligent software defined network controller for preventing distributed denial of service attack
- Flooding DDoS mitigation and traffic management with software defined networking
- Trends on virtualisation with software defined networking and network function virtualisation
- Deep packet inspection based application-aware traffic control for software defined networks
- Deep reinforcement learning based smart mitigation of DDoS flooding in software-defined networks
- Technology-related disasters: A survey towards disaster-resilient software defined networks
- Abstracting network state in Software Defined Networks (SDN) for rendezvous services
- Future space-based communications infrastructures based on high throughput satellites and software defined networking
- Survivable virtual infrastructure mapping with dedicated protection in transport software-defined networks
- BlockCSDN: towards blockchain-based collaborative intrusion detection in software defined networking
- Deep reinforcement learning for the management of software-defined networks and network function virtualization in an edge-IoT architecture
- Reliability-based controller placement algorithm in software defined networking
- Optimal network reconfiguration for software defined networks using shuffle-based online MTD