This project simulates a network via Mininet and forwards OpenFlow data to Elasticsearch/Logstash/Kibana for visualisation.
- Download the COMS4200.ova file:
scp sxxxxxxx@moss.labs.eait.uq.edu.au:/home/material/courses/COMS4200/COMS4200.ova .
- Import the image to VirtualBox (Suggest changing to 4 cores / 16gb of RAM if available)
- In the network adapters settings for the VM, set the adapter as Bridged (So you can access all the ports from your main desktop)
- Start the VM, login as
sdn/sdn
and runifconfig
to grab the IP address on your local network - Shutdown the VM and start it up in headless mode.
- SSH to the VM with the
sdn/sdn
user accountssh sdn@<ip-address>
- Confirm that
onos
works (Leave running):cd ~/onos onos-buck run onos-local -- clean
- From a new terminal (See #6), confirm that
mininet
works (Leave running):A bunch of messages should stream through on thesudo mn –-topo tree,3,2 --mac –-controller remote
onos
terminal. - Confirm you can access the
onos
GUI by navigating to and logging in withonos/rocks
:http://<ip-address>:8181/onos/ui
- Install
docker
on the VM:sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install docker-ce
- Install
docker-compose
on the VM:sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
- Install
docker-elk
on the VM:git clone https://github.com/deviantony/docker-elk cd docker-elk sudo docker-compose up -d
- Clone this repository and from the top level run:
maven clean install
- Install the application (Whilst running
onos
):onos-app localhost install path/to/coms4200-1.10.0.oar
- Activate the application and de-activate conflicting ones:
onos> app activate org.coms4200.app onos> app deactivate org.onosproject.fwd onos> app deactivate org.onosproject.proxyarp
- Access Kibana at:
http://<ip-address>:5601/app/kibana
- Open 4 terminals on the VM
- In terminal #1 (Onos)
cd ~/onos && onos-buck run onos-local -- clean
- In terminal #2 (Mininet CLI)
or (if you want a more advanced network)
sudo mn --topo single,3 --mac --controller remote
sudo python <repo>/mininet/performanceNetwork.py
NOTE: If you screw up your network interfaces run
sudo mn -c
to clean them up - In terminal #3 (Onos CLI)
onos localhost
- In terminal #4 (ELK + General purpose)
or (to reinstall and immediately activate)
cd docker-elk sudo docker-compose up -d onos-app localhost install path/to/coms4200-1.10.0.oar
onos-app localhost reinstall! path/to/coms4200-1.10.0.oar