OpenStack Lab Network - Introduction

Posted by Michael Wadman on February 8, 2018

Overview

This post is the first in a series that plans to document my progress through installing and configuring an OpenStack Lab, focusing predominantly on the configuration of the network components.

The series will roughly look like the following:

  1. Setup VirtualBox and virtual machines using Vagrant.
  2. Install and configure ZTP server and boot switches.
  3. Configure network switches using Ansible
  4. Configure network overlay (VXLAN with EVPN) using Ansible.
  5. Deployment of OpenStack servers using OpenStack-Ansible

If you’re reading this sentence, the above is subject to change as I haven’t yet written all posts yet.

Subject

I’ve recently taken an interest in a few different topics. These are, in no particular order:

  • OpenStack: A cloud computing software platform. Neutron, the networking project, is especially interesting.
  • Cumulus Linux: A network operating system that you can load onto ‘white box’ switches.
  • Vagrant: Reproducible Virtual Machine deployment as code for labs.
  • ZTP (Zero Touch Provisioning): Used to provision a network device in the same way that a server can be, using DHCP.
  • VXLAN (Virtual Extensible LAN): A layer 2 overlay/tunnelling network protocol used primarily in data centres.
  • EVPN (Ethernet VPN): A MP-BGP address family used to route layer 2 addresses, commonly used in conjunction with VXLAN for routable layer 2 data centre fabrics.

As I’m a masochist a person who likes to learn as much as possible when I’m not procrastinating, I thought it best to build a lab network that would use all above technologies and document my progress.

Diagrams

I’ve drawn some quick diagrams that I’ll be using when setting up the lab.

The management network diagram:

OpenStack Lab Management Network

The first network interface (as adapter 1 is Cumulus’ management interface - “eth0”) on all switches will connect to a bridged adapter on my host machine (which also has access out to the internet).

I’ll also be creating three Ubuntu server 18.04 VM’s - one ZTP server and two to take part in the OpenStack ‘cloud’. Each of the server VM’s will have its’ first network interface connected to the bridge adapter too.

And the production network diagram:

OpenStack Lab Production Network

After some initial research into both OpenStack and Cumulus (and using them together) I’ve decided to go with a leaf/spine network design. I’ve chosen this to become familiar with the most common data centre network design out there in 2018.

The two OpenStack servers will each have two interfaces connected to two ‘top of rack’ (leaf) switches, through which they will talk OSPF and BGP.

I’ll go over the more specific choices when we get around to configuring the switches.

Conclusion

This was a quick post, meant as a foundation for the rest of the series and for me to document before I start configuring anything.

The next post in the series covers the use Vagrant to set up the environment in VirtualBox.