Primary Contributions by: Diego Pineda and Ryan McNair
This project was designed for and created as a practice to simulate a real-world scenario for building a network using
automation tools.
The entire project has been done using Ansible (with a bit support from a Python script or two), and although we did
hard-code some data, most of the Playbooks are dynamic.
- These tasks are considered basic items that were learned during the training course.
- These tasks are considered to be more difficult and were discussed in class, but not necessarily mastered.
- These tasks build upon all of what we learned and require additional information that was not learned in class.
A visual diagram of the network topology can be found below (or in the images directory).
The network consists of a core router that is connected to the Internet and four
internal routers. Each of the internal routers is connected to a bridge, and each
bridge has a host connected. By design this network has been built for expandability, but not
for redundancy or for being highly available.
- Data Structure File
- CAP Stone Main Deployment Playbook
- Deploy Host and Router Namespaces
- Deploy Bridge Interfaces (Virtual Switch)
- Deploy Host Veths (Virtual Connections)
- Deploy Router Veths (Virtual Connections)
- Assign LAN Host IP Addresses & Enable Veths
- Assign LAN Router IP Addresses & Enable Veths
- Deploy Core Router Veths
- Assign LAN Router and Core Router IP Addresses
- Deploy NAT Router Interfaces and IP Addresses
- Enable IP Forwarding
- Deploy IP Routes
- Enable iptables (Linux Firewall)
- Launch Virtual Machines (VMs) via Python Script
- Install and Launch iPerf on VMs
- Ping Test of Entire Network
- iPerf Test Results to VMs
- Launch Flask Server via gunicorn in abdul-ehost namespace

