Coder Social home page Coder Social logo

adv_networks_project's Introduction

Adding support of node migration for multimode mininet setup with config

Presentation:

Link

Structure

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.

Usage:

Prerequisites:

  • 2 VM's with installed FRR, mininet and traceroute and python3.6+
  • Connection between the VM's (may be through the internet)

Usage steps

  • 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 either server1 or server2 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

Task:

  1. Have at least 3 FRR routers in a cluster (2 routers on one server and one on another)
  2. Verify connectivity between all routers
  3. Do some runtime configuration on the routers. (IP, files, etc.)
  4. Migrate one router from the server with two routers to another server.
  5. Verify connectivity.
  6. Do configuration in a way that 2 additional hosts won’t lose connectivity during node migration.

Topology:

Topology

Plan:

  1. DONE Create Basic Topology
  2. DONE Create Server1 config and test it
  3. DONE Create Server2 config and test it
  4. DONE Test connectivity between servers
  5. DONE Send running config from Server2 to Server1
  6. DONE Migrate R3
  7. DONE Write tests
  8. DONE Create presentation

Other notes:

  • 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

adv_networks_project's People

Contributors

ddatsko avatar voravomas avatar

Watchers

James Cloos avatar  avatar

Forkers

mykytapanoply

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.