yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #48660
[Bug 1478100] Re: DHCP agent scheduler can schedule dnsmasq to an agent without reachability to the network its supposed to serve
Reviewed: https://review.openstack.org/205631
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=0267c6a5acdcb68ea7e83ecb980362c4235ed1d7
Submitter: Jenkins
Branch: master
commit 0267c6a5acdcb68ea7e83ecb980362c4235ed1d7
Author: Assaf Muller <amuller@xxxxxxxxxx>
Date: Thu Jul 23 18:14:35 2015 -0400
Make DHCP agent scheduler physical_network aware
Currently neutron DCHP scheduler assumes that that every server running
a dhcp-agent can reach every network. Typically the scheduler can
wrongly schedule a vlan network on a dhcp-agent that has no reachability
to the network it's supposed to serve (ex: network's physical_network
not supported).
Typically such usecase can append if:
* physical_networks are dedicated to a specific service and we don't
want to mix dnsmasqs related to different services (for
isolation/configuration purpose),
* physical_networks are dedicated to a specific rack (see example
diagram http://i.imgur.com/NTBxRxk.png), the rack interconnection can
be handled outside of neutron or inside when routed-networks will be
supported.
This change makes the DHCP scheduler network reachability aware by
querying plugin's filter_hosts_with_network_access method.
This change provides an implementation for ML2 plugin delegating host
filtering to its mechanism drivers: it aggregates the filtering done by
each mechanism or disables filtering if any mechanism doesn't overload
default mechanism implementation[1] (for backward compatibility with
out-of-tree mechanisms). Every in-tree mechanism overloads the default
implementation: OVS/LB/SRIOV mechanisms use their agent mapping to filter
hosts, l2pop/test/logger ones return empty set (they provide to "L2
capability").
This change provides a default implementation[2] for other plugins
filtering nothing (for backward compatibility), they can overload it to
provide their own implementation.
Such host filtering has some limitations if a dhcp-agent is on a host
handled by multiple l2 mechanisms with one mechanism claiming network
reachability but not the one handling dhcp-agent ports. Indeed the
host is able to reach the network but not dhcp-agent ports! Such
limitation will be handled in a follow-up change using host+vif_type
filtering.
[1] neutron.plugin.ml2.driver_api.MechanismDriver.\
filter_hosts_with_network_access
[2] neutron.db.agents_db.AgentDbMixin.filter_hosts_with_network_access
Closes-Bug: #1478100
Co-Authored-By: Cedric Brandily <zzelle@xxxxxxxxx>
Change-Id: I0501d47404c8adbec4bccb84ac5980e045da68b3
** Changed in: neutron
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1478100
Title:
DHCP agent scheduler can schedule dnsmasq to an agent without
reachability to the network its supposed to serve
Status in neutron:
Fix Released
Bug description:
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".
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1478100/+subscriptions
References