Phdservices.org team have been greatly benefited for scholars as we have a well-structured team of subject expert guide to handle all your doubts in MININET DDOS. By adhering to our professional advice and instructions, there will be no obstacles preventing you from attaining your doctorate. We effortlessly handle topic selection and thesis writing in all areas of MININET DDOS Simulation. To get best simulation results we will be your right partner. Your journey towards obtaining a PhD will be seamless and prosperous. Our objective is to uncover valuable information and draw meaningful conclusions for your MININET project. Through the utilization of Mininet, to carry out a Distributed Denial-of-Service (DDoS) attack simulation and performance analysis, you must adhere to these major procedures:
- Configure Mininet: On your framework, it is advisable to install and arrange Mininet.
- Construct a Network Topology: A virtual network topology has to be developed in such a manner that depicts your scenario in an explicit way.
- Apply DDoS Attack: Through the utilization of tools such as Scapy or hping3, construct a DDos attack simulation.
- Assess Performance Metrics: It is appreciable to gather and examine significant network performance parameters.
- Examine the Outcomes: In order to evaluate the influence, contrast the outcomes before, during, and after the DDoS attack.
Step-by-Step Guide
Step 1: Configuring Mininet
By means of employing the following procedures, install Mininet on your Linux machine.
# Clone the Mininet repo
git clone https://github.com/mininet/mininet.git
# Install Mininet
cd mininet
util/install.sh –a
Step 2: Construct Network Topology
Encompassing numerous switches and hosts, develop a Mininet topology. For example, develop a basic topology file topology.py:
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import OVSController
from mininet.cli import CLI
class DDOSTopology(Topo):
def build(self):
switch = self.addSwitch(‘s1’)
# Add normal hosts
for i in range(1, 4):
host = self.addHost(f’h{i}’)
self.addLink(host, switch)
# Add attacker hosts
for j in range(4, 7):
attacker = self.addHost(f’h{j}’)
self.addLink(attacker, switch)
def start_network():
topo = DDOSTopology()
net = Mininet(topo=topo, controller=OVSController)
net.start()
CLI(net)
net.stop()
if __name__ == ‘__main__’:
start_network()
Step 3: Apply DDoS Attack
To produce DDoS traffic from the assaulting hosts such as h4, h5, h6 in this situation, aim to employ tools such as Scapy or hping3. It is appreciable to assure that these tools are installed on your framework:
# Install hping3
sudo apt-get install hping3
# Install hping3
sudo apt-get install hping3
Launch a SYN flood attack from the attacking hosts:
# On attacker host h4, h5, h6
h4 hping3 -S -p 80 –flood 10.0.0.1
h5 hping3 -S -p 80 –flood 10.0.0.1
h6 hping3 -S -p 80 –flood 10.0.0.1
Step 4: Assess Performance Metrics
You can assess network performance by means of employing iperf tool, before beginning the DDoS assault.
# On server host h1
iperf -s
# On client host h2
iperf -c h1
To evaluate the influence, document the latency and bandwidth before and after initiating the assault.
For packet-level exploration, you can also utilize tools such as Wireshark or tcpdump.
# On any host to capture packets
tcpdump -i any -w ddos_traffic.pcap
Step 5: Examine the Outcomes
- Network Bandwidth Analysis: Focus on contrasting the iperf outcomes before and during the assault.
- Packet Capture Analysis: Through employing Wireshark, examine the packet capture (ddos_traffic.pcap).
- Latency Measurements: By means of ping, assess latency before and during the assault.
Python-Based Analysis with Scapy
In order to investigate traffic trends, employ Scapy.
from scapy.all import rdpcap
packets = rdpcap(“ddos_traffic.pcap”)
# Process packets here to analyze traffic patterns
Performance Analysis Report Structure
- Introduction: This section explains the goal and focus of the DDoS attack simulation.
- Methodology:
- Network Topology
- Attack Policy
- Assessment Tools
- Results:
- Bandwidth Exploration (Tables, Graphs)
- Packet Exploration (Frequency, Types)
- Latency Parameters
- Conclusion: Focus on outlining the outcomes and influence of DDoS assault.
- Recommendations: Specifically, for reduction policies or upcoming research regions, it offers beneficial recommendations.
How can I run multiple SDN controllers Floodlight Ryu ODL etc for a topology in Mininet?
There are many steps involved to execute numerous SDN controllers in Mininet. We suggest a stepwise instruction based on how to perform this in effective manner:
Steps to Run Multiple SDN Controllers with Mininet
- Install the Controllers: It is appreciable to make sure that every controller is installed on your system.
- Configure Controllers: Mainly, for every controller arrange the listening ports and protocols.
- Create a Mininet Topology: A topology has to be modelled in such a way that can be regulated by numerous controllers.
- Assign Controllers to Specific Switches: To allocate individual controllers to certain switches, employ the Mininet API.
Instance Configuration
- Install the Controllers
Aim to assure that OpenDaylight, Floodlight, and Ryu are installed in a correct manner.
Floodlight
bash
# Install Java if you haven’t already
sudo apt install openjdk-11-jdk
# Clone and build Floodlight
git clone https://github.com/floodlight/floodlight.git
cd floodlight
./gradlew shadowJar
Ryu
# Install Ryu
pip install ryu
OpenDaylight
# Download and extract OpenDaylight
wget https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/distribution-karaf/0.10.2-Helium/distribution-karaf-0.10.2-Helium.tar.gz
tar -zxvf distribution-karaf-0.10.2-Helium.tar.gz
cd distribution-karaf-0.10.2-Helium
# Start OpenDaylight
./bin/karaf
- Configure Controllers
Floodlight
# Run Floodlight
java -jar target/floodlight.jar
Floodlight will begin listening on port 6653.
Ryu
# Run Ryu controller
ryu-manager –ofp-tcp-listen-port 6654 ryu.app.simple_switch_13
OpenDaylight By default, OpenDaylight will listen on port 6633.
- Create a Mininet Topology
To specify the network, it is better to develop a Mininet topology script such as multi_controller_topology.py.
from mininet.net import Mininet
from mininet.topo import Topo
from mininet.node import RemoteController, OVSSwitch
from mininet.cli import CLI
from mininet.log import setLogLevel
class MultiControllerTopo(Topo):
def build(self):
# Create switches
s1 = self.addSwitch(‘s1′, protocols=’OpenFlow13’)
s2 = self.addSwitch(‘s2′, protocols=’OpenFlow13’)
s3 = self.addSwitch(‘s3′, protocols=’OpenFlow13’)
# Create hosts
h1 = self.addHost(‘h1’)
h2 = self.addHost(‘h2’)
h3 = self.addHost(‘h3’)
h4 = self.addHost(‘h4’)
# Add links between switches and hosts
self.addLink(h1, s1)
self.addLink(h2, s1)
self.addLink(h3, s2)
self.addLink(h4, s3)
# Add links between switches
self.addLink(s1, s2)
self.addLink(s2, s3)
def start_network():
topo = MultiControllerTopo()
net = Mininet(topo=topo, switch=OVSSwitch)
# Define controllers
floodlight = RemoteController(‘floodlight’, ip=’127.0.0.1′, port=6653)
ryu = RemoteController(‘ryu’, ip=’127.0.0.1′, port=6654)
odl = RemoteController(‘opendaylight’, ip=’127.0.0.1′, port=6633)
# Add controllers to Mininet net.addController(floodlight)
net.addController(ryu)
net.addController(odl)
# Associate specific controllers with switches net.get(‘s1’).start([floodlight])
net.get(‘s2’).start([ryu])
net.get(‘s3’).start([odl])
net.start()
CLI(net)
net.stop()
if __name__ == ‘__main__’:
setLogLevel(‘info’)
start_network()
- Run the Topology
By means of multi_controller_topology.py script, execute the Mininet topology:
sudo python3 multi_controller_topology.py