yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #72994
[Bug 1652654] Re: Routes for neighbour subnets missing after dhcp agents restart
Reviewed: https://review.openstack.org/566405
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=2e34279ec3f4e93a7eca1e89b307fdbeb15b211e
Submitter: Zuul
Branch: master
commit 2e34279ec3f4e93a7eca1e89b307fdbeb15b211e
Author: Brian Haley <bhaley@xxxxxxxxxx>
Date: Fri May 4 16:43:45 2018 -0400
Fix lack of routes for neighbour IPv4 subnets
According to [1], when a network contains more that one IPv4
subnet, they are returned in the 'classless-static-routes'
DHCP option, regardless of whether DHCP is enabled for them
or not.
However, the get_active_networks_info() method used for
synchronizing networks after the dhcp agent restarts filters
subnets with "enable_dhcp=True", which differs from the
get_network_info() method. This will block VM access to
other VMs in the dhcp disabled subnets, even though they are
in the same network. This is visible by looking at the "opts"
file before and after a restart.
Change the dhcp agent to ask for all subnets in its
get_active_networks_info() RPC call by adding an
enable_dhcp_filter argument to toggle the behavior, with the
default being True to not break backwards compatibility.
Based on https://review.openstack.org/#/c/352530/ by Quan Tian.
[1] https://review.openstack.org/#/c/125043/
Change-Id: I11ca1d1a603d02587f3b8d4a5a52a96b0587d61f
Closes-Bug: #1652654
** 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/1652654
Title:
Routes for neighbour subnets missing after dhcp agents restart
Status in neutron:
Fix Released
Bug description:
According to [1], when network contains more that one IPv4 subnets, report these subnets in 'classless-static-routes' DHCP option.
However, the 'classless-static-routes' of dhcp disabled subnets will be deleted after dhcp agents restart because the DhcpRpcCallback.get_active_networks_info method used for synchronize networks filter subnets with "enable_dhcp=True". Then VMs can't access the other VMs in the dhcp disabled subnets in the same network.
[1] https://review.openstack.org/#/c/125043/
How to reproduce:
1. create a network with two subnets in it, disable one subnet's dhcp.
+--------------------------------------+----------------------+----------------+-------------+
| id | name | cidr | enable_dhcp |
+--------------------------------------+----------------------+----------------+-------------+
| 1b14508b-a381-4d73-9128-c05661497c49 | subnet_dhcp_enabled | 192.168.1.0/24 | True |
| 3572a614-79f0-4b4d-8850-60e74225745a | subnet_dhcp_disabled | 192.168.2.0/24 | False |
+--------------------------------------+----------------------+----------------+-------------+
At this time, dhcp opts should like this:
$ cat neutron/dhcp/004a4f00-f8cf-4c11-a9e7-52bc9961c297/opts
tag:tag0,option:classless-static-route,192.168.2.0/24,0.0.0.0,0.0.0.0/0,192.168.1.1
tag:tag0,249,192.168.2.0/24,0.0.0.0,0.0.0.0/0,192.168.1.1
tag:tag0,option:router,192.168.1.1
2. restart the dhcp agent, the "classless-static-routes" disappear
$ cat neutron/dhcp/004a4f00-f8cf-4c11-a9e7-52bc9961c297/opts
tag:tag0,option:router,192.168.1.1
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1652654/+subscriptions
References