Integrating VXLAN In OpenStack Quantum

Since the announcement of VXLAN last summer, there has been interest in the Open Source community for an open implementation of this. With the increasing number of Open Source cloud and virtualization technologies out there, where does VXLAN fit into this picture? I think one logical place for it to exist is inside OpenStack Quantum. As a service providing network connectivity between interface devices, this is a logical place for it to exist, especially as it pertains to disparite plugins.

But before I explain how VXLAN could plug into Quantum, some background may be good. Omar Sultan posted a great 3 part blog series on VXLAN (Part 1, Part 2, and Part 3). Reading this will give you a good, relevant background on VXLAN.

An Open Source implementation of VXLAN would require 2 pieces: A data path piece, to implement the protocol and framing format. And a control path piece, to handle orchestration of segment IDs and multicast addresses. For the data path piece, patches were posted to the Open vSwitch mailing list in October 2011, but so far have not been merged into either the Open vSwitch project’s git tree, nor the upstream Open vSwitch kernel code in the Linux tree. Once these patches make it into a public git repository, the data path portion of the equation is complete.

But what about the control path piece? One logical landing spot would be in OpenStack Quantum. Looking at version 1.0 of the Quantum API guide, we can begin to see how to add VXLAN support into Quantum. Quantum networks are created agnostic of their underlying segmentation technology. Currently, VLANs are used. Adding in VXLAN support would be as simple as adding in a type to “Create Network” call. Specifying VXLAN would allow Quantum to provision a Segment ID, and allocate a block of multicast addresses to use. Multiple hosts could still be added to multiple networks with a type of VXLAN. Quantum would work great for handling these types of tasks.

The place where this really begins to shine, however, is in the plugin architecture of Quantum. With Quantum handling the tasks of segment ID allocation, the plugins will have to handle the VXLAN protocol implementation for a network with type VXLAN. Vendors can now implement VXLAN in their plugins, and this buys end users the ability to have a heterogenous VXLAN environment out of the box.

Leave a comment

We'd love to hear from you! To earn points and badges for participating in the conversation, join Cisco Social Rewards. Your comment(s) will appear instantly on the live site. Spam, promotional and derogatory comments will be removed.

Some of the individuals posting to this site, including the moderators, work for Cisco Systems. Opinions expressed here and in any corresponding comments are the personal opinions of the original authors, not of Cisco. The content is provided for informational purposes only and is not meant to be an endorsement or representation by Cisco or any other party. This site is available to the public. No information you consider confidential should be posted to this site. By posting you agree to be solely responsible for the content of all information you contribute, link to, or otherwise upload to the Website and release Cisco from any liability related to your use of the Website. You also grant to Cisco a worldwide, perpetual, irrevocable, royalty-free and fully-paid, transferable (including rights to sublicense) right to exercise all copyright, publicity, and moral rights with respect to any original content you provide. The comments are moderated. Comments will appear as soon as they are approved by the moderator.