CSCI 5380 - Network Virtualization and Orchestration
Lab 9 Automate VM, VN, Docker, and BGP path
University of Colorado Boulder Department of Computer Science Network Engineering
Professor Levi Perigo, Ph.D.
Summary: In this lab, you will use what you have learned in previous labs and automate the processes into a single application. Required technologies: • BGP • Hypervisor/Orchestrator (such as OpenStack) • Containers • SDN Controller • Hardware server • Service-chain Objectives: Virtualized Network Automation Create an application that meets the following functionality (each objective must be a separate Python module in your code i.e. your main .py file should import the different modules you write):
- Automate the creation of multiple virtual networks (VNs) within the hypervisor and their connection to the public network.
I created 2 networks DHCP and my_network. I added interfaces of the virtual router to all these networks so the VMs could reach internet

- Automate the creation of multiple VMs within the hypervisor- a) Both single tenant (same VN) and multi-tenant (different VNs). b) All VMs should be accessible from the host server and be able to access the Internet.
I created 2 VM in network my_network and 1 VM in DHCP network. Using the virtual router these VMs are aboe to ping each other and the internet

- Automate the security groups and port security configuration to make intra-VN and inter-VN communication possible. In this section I added ICMP for both the ingress and egress port to enable the connectivity
- Automate spinning up and configuring a Quagga/FRR BGP router as a Docker container. a) Automate its BGP configuration to peer with the SDN controller in the next objective.
For this I created a Dockerfile to create image of ExaBGP and RYU controller using pyhton code. Then i used this image to create containers for the same using script.
For the BGP neighborship I created bgp.conf file for the containers and was able to establish the neighborship.
- Automate spinning up and configuring an SDN controller as another Docker container. a) Automate its BGP speaker configuration to peer with Quagga/FRR.
For this I created a Dockerfile to create image of ExaBGP and RYU controller using pyhton code. Then i used this image to create containers for the same using automation.
For the BGP neighborship I created bgp.conf file for the containers and was able to establish the neighborship.
Deliverable:
Create a personal GitHub page that demonstrates the required functionality.



