While overlay networks are typically available on every host, flat or VLAN provider networks are often not. It may be the case where each rack only has access to a subset of networks defined in Neutron (Determined by the network's physical_network tag). In these cases, you would install a DHCP agent in every rack, but the DHCP scheduler could schedule a network to the wrong agent, and you end up in a situation where the dnsmasq instance is on the wrong rack and has no reachibility to its VMs.
Here's a diagram to explain the use case:
http://i.imgur.com/NTBxRxk.png
Both networks on physical_network 1 should be served only by DHCP agent 1.
More information may be found here:
https://etherpad.openstack.org/p/Network_Segmentation_Usecases.
Specifically "DHCP agents and metadata serices are run on nodes within each L2. When the neutron network is created we specifically assign the dhcp agent in that segment to that network".
Fix proposed to branch: master /review. openstack. org/205631
Review: https:/