Abstract:
Our system has three main components: the controller, switch, and security gateway. The controller takes responsibility for network management and acts as the model parameter aggregation server on the FL. The switch is responsible for communication and will maintain a flow table for routing. The security gateway is the network's access point, which will store the traffic data for IoT devices connected to it and train localized ML models based on saved data. Lastly, the gateway will retrieve an updated global model from the controller and then use it to monitor the communication traffic of the connected device. The controller will inject flow rules on the switch when traffic arrives, and will pass them to the security gateway for attack detection.
Dataset download:
Instructions:
The following instructions you need to take to run the Demo:
- Downloading the "processedDataset" and make it under a folder named "dataset"
- Open two terminals, one for the controller, and another for mininet
- Terminal 1 go to the path /Desktop/ryu/bin, run command:
python3 ryu-manager --observe-links <Path of controller>/controller.py
- Terminal 2 go to the path ./src, run command:
sudo -E mn --custom myTopo.py --topo create_topo --switch ovs --controller=remote --arp --mac
- In mininet, call xterm h1, xterm h2, xterm h3 to access three hosts
- Under host1, go to folder server, run (To enbale the aggregrator):
python3 server1.py
- Under host2 go to folder client, run (To enbale the worker1):
python3 client1.py
- Under host3 go to folder client, run (To enbale the worker2):
python3 client2.py
- Repeat for other clients