Doc book: Understanding OpenStack Networking
An operator needs to have a decent understanding of how OpenStack Networking is implemented in order to deploy it. An operator needs to have a decent understanding of how OpenStack Networking is implemented in order to deploy it.
The target audience would be an operator with a lot of Linux experience, but not necessarily much networking experience.
Therefore, the proposed book would cover a lot more background material than a typical OpenStack guide would. In particular, it would cover just enough functionality of upstream technologies (e.g., network namespaces, Open vSwitch, iptables, dnsmasq) so that the reader would have an understanding of how these technologies work.
This approach would be different from other guides, which focus entirely on OpenStack-specific technologies. Here, we would be explaining how some of the underlying technologies work as well.
Proposed table of contents
(This is a bit of a hodgepodge right now)
- Layer 2
- L2 segment
- Subnets and Submasks
- Promiscuous mode
- Layer 3
- IP forwarding
- Virtual networking
- VLANs: switches
- VLANs: Linux VLANs
- Tap devices
- Veth pairs
- GRE tunnels
- Network namespaces
- Open vSwitch
- Libvirt networking (*)
- nova-network (**)
- ML2 plugin implementations
- Open vSwitch
- Linux bridge
- L3 agent
- DHCP agent
- Metadata service
- Use cases from the configuration manual
- ML2 with L2 population mechanism driver
- Scenario 1: L2 population with Open vSwitch agent
- Scenario 2: L2 population with Linux Bridge agent
- Enable security group API
(*) While OpenStack doesn't actually use Libvirt networking, it's worth explaining because Libvirt networking looks like a simplified version of nova-network, and it also explains the presence of the confusing virbr0 Linux bridge. I believe that we should just tell them how to eliminate the presence of this bridge (delete one syslink in /etc/libvirt/qeum/network/autostart/default.xml)
(**) Nova-network should be deprecated. Let's not encourage anyone new to use it. So we should keep anything we put here very limited.
Eventually, should also cover topics such as IPv6 and Open Flow.