Wednesday 31 July 2013

The Open vSwitch plugin with VLANs

This post looks at the Grizzly Open vSwitch plugin when it is configured to use VLANs to isolate the VM traffic of different Quantum networks on the physical network.

Wednesday 19 June 2013

Metadata via the DHCP namespace

This is a follow-on from the previous post that described how metadata requests go from instances to the Nova metadata service via a namespace proxy in a Quantum router namespace. This post shows how requests can go via a namespace proxy in a DHCP namespace instead.

Thursday 13 June 2013

Metadata via the Quantum router

Grizzy adds support for the Nova metadata service to work with overlapping IP address spaces from Quantum. Now Quantum proxies metadata requests to Nova adding HTTP headers which Nova uses to identify the source instance. Quantum actually uses two proxies to do this: a namespace proxy and a metadata agent. This post shows how a metadata request gets from an instance to the Nova metadata service via a namespace proxy running in a Quantum router. It is also possible to run the namespace proxy in a DHCP namespace, but that is not covered here.

Monday 10 June 2013

Path MTU discovery and GRE

When using the Open vSwitch Quantum plugin with GRE there can be problems connecting to some sites while other sites work fine. E.g. 'git clone' hangs or 'apt-get update' takes over an hour. This is because the GRE tunnel can reduce the path MTU to a value less than the common 1500 bytes, and some sites do not engage in standard techniques for path MTU discovery.

Friday 7 June 2013

Dnsmasq logging and options for the Quantum DHCP agent

Dnsmasq logs to syslog by default when the Quantum DHCP agent is configured to use it as the DHCP driver. This fills the syslog on the network node very quickly with dnsmasq messages - a request and reply line once per minute per instance when the lease time is the default 120 seconds. This post shows how to make dnsmasq log to a different file, give extra log detail and provide additional DHCP options for the clients.

Friday 17 May 2013

The Quantum L3 router and floating IPs

This post shows how the Quantum L3 Agent uses the Linux IP stack to implement the Quantum L3 Routing and NAT API extensions. It explains in detail how external access with floating IP works and how it can be debugged.

Friday 10 May 2013

Debugging Quantum DHCP and Open vSwitch

This post describes how Quantum DHCP in Grizzly works when using the Open vSwitch plugin. A basic understanding of the mechanism is needed to troubleshoot issues.

Sunday 14 April 2013

OpenStack Grizzly with Quantum multi-node auto-install script


This Ansible script installs OpenStack Grizzly onto three Vagrant/VirtualBox nodes using the OpenStack packages from the Ubuntu cloud archive. The install steps are in the readme.

Thursday 4 April 2013

Using the python-quantumclient

I was not able to find any doc except this, so I used the client source for clues on the functions/arguments and the API guide for the make-up of the request/response dictionaries.

This script creates a network (net1) and configures the external network. Then a router is created with its gateway is set to the external network and it is given an interface on net1. An instance is created with an nic connected to net1, and a floating IP is created and associated with the port the vm's nic is plugged into. Here is the CLI doing the same.

Saturday 30 March 2013

Automated OpenStack Folsom with Quantum install using Ansible/Vagrant/VirtualBox


This script (folsom branch) installs OpenStack Folsom with Quantum networking fully configured in about 10 minutes - once the prereqs are in place. The readme has the usage. It is written in Ansible which is easy to learn and quick to work with. It uses the OpenStack packages from the Ubuntu cloud archive and sets up this configuration:

Thursday 21 March 2013

Eventlet snippets

OpenStack services use the green threads model as described here. I found an excellent explanation of Eventlet in a video by Donovan Preston. I have typed in some of the snippets he uses here.

Paste config in OpenStack



If you are new to OpenStack you may be wondering what ini files like this are all about. OpenStack services (Nova, Glance, Quantum etc) use Paste Deployment to wire up middleware like authorisation, API extensions, request rate limiting etc. It helps to have a basic knowledge of this stuff for installing and troubleshooting. This post is a simple example based on this presentation. Here I have put the various parts in different modules.