As a part of course CSC 791 - Linux Networking, we decided to create a SaaS project, Transit Routing as a Service.
In order to have high availability, companies generally choose to have a multi-cloud deployment and would require services to connect instances over L2 or L3 network.
Cloud providers, having a strong backbone network and presence all over around the globe, can monopolize the routing service. We decided to build an opensource SaaS product, extending Linux virtualization, to provide such services to achieve required custom connectivity for the clients' sites.
- Python (Logic)
- Ansible (Orchestration)
- Bash (Low level linux API interaction)
- Linux Network Namespace utility (Custom Virtual Network Devices)
- Quagga (BGP Implementation)
- VxLAN (L2 Connectivity)
- GRE (L3 Connectivity)
- Docker (Infrastructure)
We took leverage of Linux virtualization technology to create a custom topology over the internet which could give L2 and L3 connectivity.
Multi Cloud Transit VPC based Routing as a Service
This directory is where tenants place their config files (We have populated this directory for demo purposes)
This directory is where any run time information and logs are placed
This directory is where all the core processing logic and Ansible playbooks
execute.sh that is used to run as the driver code in order to create VPCs, Spines, Leaves, L1 Transits or L2 Transit Nodes.
Has a set of pre defined constants and paths
Define, Start and Attach interface to VMs
Used to create leaf nodes that hosts a subnet with one or more multiple PCs
Used to create spines, L1 transits and L2 transits nodes
Used to create a VPC
Utitlity functions that are built to work on the JSON file stored on…