There are two topologies saved in directories server1
and server2
. Configuration of all the FRR daemons is stored in the conf
directory
of each of 2 directories stated above. All the testing staff is the same for two servers. You should pass the argument --topology
to
pytest to specify the selected one.
- 2 VM's with installed
FRR
,mininet
andtraceroute
andpython3.6+
- Connection between the VM's (may be through the internet)
- Clone this repository to both the VM's:
git clone https://github.com/Voravomas/adv_networks_project
- Run tests on both VM's but with different topologies
sudo pytest-3 test_main.py --topology <TOPOLOGY> --source_ip <CURRENT_VM_IP_ADDRESS> --remote_ip <REMOTE_VM_IP_ADDRESS> [-x]
Where<TOPOLOGY>
can be eitherserver1
orserver2
and-x
makes tests stop after the first failure
NOTE: tests should be run within at most 30 seconds interval. Otherwise, they will not be able to synchronize
- Have at least 3 FRR routers in a cluster (2 routers on one server and one on another)
- Verify connectivity between all routers
- Do some runtime configuration on the routers. (IP, files, etc.)
- Migrate one router from the server with two routers to another server.
- Verify connectivity.
- Do configuration in a way that 2 additional hosts won’t lose connectivity during node migration.
- DONE Create Basic Topology
- DONE Create Server1 config and test it
- DONE Create Server2 config and test it
- DONE Test connectivity between servers
- DONE Send running config from Server2 to Server1
- DONE Migrate R3
- DONE Write tests
- DONE Create presentation
-
To add internet to Mininet:
sudo dhclient eth1
-
Add l2tp tunnel:
sudo ip l2tp add tunnel tunnel_id 1000 peer_tunnel_id 1000 ncap udp local <LOCAL_IP> remote <REMOTE_IP> udp_sport 60000 udp_dport 60000
-
Add session:
sudo ip l2tp add session name eth12 tunnel_id 1000 session_id 2000 peer_session_id 2000