ddosdn is developed and has primary testing on Ubuntu 18.04.
docker
docker-compose
- Java 8
sudo apt install openjdk-8-jdk
maven
openvswitch
sudo apt install openvswitch-common sudo apt install openvswitch-switch
containernet
sudo apt-get install ansible git aptitude
git clone https://github.com/containernet/containernet.git
cd containernet/ansible
sudo ansible-playbook -i "localhost," -c local install.yml
cd ..
For Ubutu 20.04 replace in containernet/util/install.sh
cgroup-bin
forcgroup-tools
,python-scapy
forpython3-scapy
run containernet/util/install.sh
.
NOTE: there are some compiling erros whit Openflow but ignore those. and install mininet
apt install mininet
make -f Makefile develop
git clone https://github.com/ser0090/ddosdn
cd ddosdn/envr
docker-compose build snort
docker-compose build apache
docker-compose build bot
docker-compose build usr
This projecs use onos-1.13
. We suggest clone ONOS repositoy
here. Then add onos 1.13 commands
to .bashrc
wget https://github.com/opennetworkinglab/onos/archive/1.13.10.tar.gz
tar -xf 1.13.10.tar.gz
# add to .bashrc
export ONOS_ROOT=~/onos-1.13.10
source $ONOS_ROOT/tools/dev/bash_profile
We suggest up onos 1.13 in a docker container instead of up locally
docker-compose up onos
in ddosdn folder build apps
cd apps
mvn clean install -f ddos-detection/ -Dcheckstyle.skip
mvn clean install -f ddos-mitigation/ -Dcheckstyle.skip
then install apps in onos controller (docker container),
Required Apps
IP_CONTAINER=192.168.60.2 # IP controller
onos-app ${IP_CONTAINER} activate org.onosproject.openflow-base # App Openflow
onos-app ${IP_CONTAINER} activate org.onosproject.openflow
onos-app ${IP_CONTAINER} activate org.onosproject.ofagent
onos-app ${IP_CONTAINER} activate org.onosproject.faultmanagement # alarms REST
Built Apps
onos-app ${IP_CONTAINER} reinstall! ddos-detection/target/*.oar
onos-app ${IP_CONTAINER} reinstall! ddos-mitigation/target/*.oar
Start Containernet SDN Topology similar to an ISP infrastructure.
Simplified block of the system.
Devices:
- EDGE (8)
- DISTRIBUTION (4)
- CORE (2)
- BORDER (1)
Hosts:
- Common user (13)
- Bot (7)
- IDS (4)
- Web Server (3)
Install dependencies
cd topo
pip3 install -e .
Configure annotations devices on Onos
onos-netcfg ${IP_CONTAINER} resources/jsonAnnotations.json
python3 topo.py
Default values
IP_CONTROLLER = '192.168.50.2'
PORT_CONTROLLER = 6653
Commands
pingall
to test connectivity- Use
docker
for access to Hosts - ContainerNet commands in Doc