Cross Cloud VNF Simulation
The simulator has two folders:
- FederatedSDNSecurity: this folder contains the service manifest (YAML1.txt and YAML2.txt) and the generator. The file main.py reads the service manifest and generates the VNF and SFC code for each of the clouds in the network federation in the folder .
- GeneratedCode: contains the code that is generated by main.py
To run the generation: go to folder FederatedSDNSecurity and execute main.py and hit enter when prompted to step through the code generation process.
To run the simulation: go to folder GeneratedCode and start the VNF in a new shell (process): start-VNF-LISTENER_1_from_2.py, start-VNF-LISTENER_2_from_1.py, start-VNF-LISTENER_1_from_3.py and start-VNF-LISTENER_3_from_1.py. the simulation should be run in two phases: first create a federated network and associated security VNF between cloud 1 and cloud 2 by executing start-VNF-LISTENER_1_from_2.py and start-VNF-LISTENER_2_from_1.py in separate shells. This creates a socket connection between the two processes, configures the VNF and simulates some traffic between cloud1 and cloud2. In a second phase the federation is extended from cloud1 to cloud3. To simulate this execute start-VNF-LISTENER_1_from_3.py and start-VNF-LISTENER_3_from_1.py in separate shells. This will create a socket between cloud1 and cloud3 and will simulate traffic between the two clouds. The traffic is routed to encryption and decryption VNF. The private key is used to encrypt the traffic with OpenSSL and the public key is used to decrypt the traffic with OpenSSL.