- Setup a Mininet environment on a VM (see instructions). If you're using Windows on your local machine, consider working with PuTTY & Xming in order to enable xterm usage in Mininet
- Setup HPE VAN SDN Controller on a separated VM (see videos). Note: use Ubuntu 14.04.
- For both VMs, in the Network settings, set Adapter 1 as NAT and Adapter 2 as Host-only Adapter.
- Bring up the VMs of Mininet and the SDN controller.
- Clone this project to the Mininet VM and browse to the
iot-zipris
directory. - Bring up Mininet with the project's topology, OF 1.3 switches and the HPE VAN SDN Controller:
sudo mn --custom exercises/iot_sec_host/infrastructure/iot-zipris-topo.py --topo ziprisTopo --controller=remote,ip=<SDN Controller IP> --switch ovsk,protocols=OpenFlow13 --nat
You can execute in the Mininet terminal the command pingall
to make sure that the topology established successfully.
Note: for simulating a realistic environment, post the following requests manually to the SDN controller:
- Generate a token for the controller using the request in
exercises/iot_sec_host/infrastructure/payloads/request_auth.json
- Enable port-mirroring in the main router, so traffic from the home network will be mirrored to the 'security SmartNIC':
exercises/iot_sec_host/infrastructure/payloads/request_router_port_mirroring.json
- Enable DSCP marking on the home network switches:
exercises/iot_sec_host/infrastructure/payloads/request_switch_mark_iot_dscp.json
The project's topology enables the following hosts:
h1
- the security SmartNIC of the ISPh2
- an IoT device in the home network #1h4
- a non-IoT device in the home network #1h5
- a valid destination ofh2
h6
- an invalid destination ofh2
h7
- an IoT device in the home network #2h8
- a valid destination ofh7
h9
- an invalid destination ofh7
After bringing up the project's Mininet topology, use xterm <host name>
in order to control the hosts.
On h1
, browse iot-zipris/exercises/iot_sec_host
and execute python security_switch/listener.py h1
in order to monitor the traffic to h1
and enable packets classification solution.
On the rest of the hosts, browse iot-zipris/exercises/iot_sec_host
and execute python receive_qos.py <host name>
in order to monitor the traffic.
Now use Mininet terminal in order to send traffic between the hosts and monitor the network's behavior.