Creating a Cloud based Virtual Network Lab
This begins an extensive series describing the activities necessary to completely configure a cloud based virtual network lab. For the example lab in this series, I have created a completely Linux based virtual lab providing a portal for automating BGP black hole advertisement to full BGP speakers. The lab components include BGP speakers, a BGP black-hole route advertisement speaker, an HTML/CSS based portal supported by angularjs for data binding and Flask/Python for data I/O including a NoSQL (black hole route) back end data base. The portal supports the selection of black hole route advertisement, route withdrawal or full re-advertisement of all black hole routes contained in the NoSQL data base.
The series scope topics will be in the following order:
- All of the preparatory foundational installations:
- server – nginx
- Bower: requirements
- requirements
- GIT
- NODEjs
- nam
- managed updates/dependencies for
- angularjs
- CSS
- Bootstrap
- requirements
- Web development Framework Model-View-Controller
- Model
- Flask
- Python
- View
- nginx
- wsgi
- Controller
- Angularjs
- Model
- Backend Database:
- jquery
- json/bson data structure and implementation
- NoSQL (backend route archive): mongodb
- python mongodb integration: pymongo
- Web Developer tools
- Chrome Developer Tools
- Microsoft “Code”
- Linux BGP speaker utility: Quagga BGP
- Linux Black Hole Advertiser utility: ExaBGP
- Directory structures:
- virtual environment (virtualenv) container
- python
- flask
- uwsgi
- Bower project
- Document source code
- Flask/Python
- templates
- CSS
- html
- static/js
- angularjs
- Document source code
- virtual environment (virtualenv) container
- Lab Architecture
- Portal presentation illustration and functional Operation
- Basic BGP configuration
- Configure Linux BGP speakers: Quagga
- Configure Linux Black Hole route advertiser: ExaBGP
- Portal
- View: html code and CSS files
- Controller: Angularjs components
- script code
- Angularjs scope concepts and application
- Model: Flask/Python data handler code
- Backend Database:
- NoSQL db and collection structure
- Integration: View-Controller-Model process/execution flow
- Tool usage
- Troubleshooting with Chrome Developer Tools
- coding with Microsoft “Code”