With Flat DHCP, the host(-s) running nova-network act as the gateway to the
virtual nodes. If you're using single-host networking, you can optionally set
network_host
on the nova.conf
stored on
the nova-compute node to tell it which host the nova-network is running on so it can
more efficiently communicate with nova-network. In any setup with flat networking,
the hosts with nova-network on it are responsible for forwarding traffic from the
private network configured with the fixed_range=
directive in
nova.conf
and the flat_network_bridge
flag which you must also set to the name of the bridge (as there is no default). The
nova-network service will track leases and releases in the database, using dnsmasq's
dhcp-script facility (the script bin/nova-dhcpbridge is supplied) so it knows if a VM
instance has stopped properly configuring via DHCP (e.g. when a DHCP lease expires,
the fixed IP is released from the nova database). Lastly, it sets up iptables rules
to allow the VMs to communicate with the outside world and contact a special
metadata server to retrieve information from the cloud.
Compute hosts in the FlatDHCP model are responsible for bringing up a matching bridge and bridging the VM tap devices into the same ethernet device that the network host is on. The compute hosts should not have an IP address on the VM network, because the bridging puts the VMs and the network host on the same logical network. When a VM boots, the VM sends out DHCP packets, and the DHCP server on the network host responds with their assigned IP address (remember, the address is actually assigned by nova and put into DHCP server's configuration file, the DHCP server merely tells the VM what it is).
You can read a detailed walk-through of what exactly happens in single-host Flat DHCP mode in this blogpost, parts of which are also relevant in other networking modes.
FlatDHCP doesn't create VLANs, it creates a bridge. This bridge works just fine on a single host, but when there are multiple hosts, traffic needs a way to get out of the bridge onto a physical interface.