[openstack-dev] [Neutron] Why doesn't ml2-ovs work when it's "host" != the dhcp agent's host?
Noel Burton-Krahn
noel at pistoncloud.com
Tue Oct 21 07:00:35 UTC 2014
Hi Kevin,
The current method outlined in [1] is to manually assign networks to dhcp
agents. I need to be able to kill the node running the dhcp agent and
start it up on another node without manual intervention. Someone else
pointed me to the dhcp_agents_per_network option which I'm looking into now.
[1]
http://docs.openstack.org/trunk/config-reference/content/multi_agent_demo_configuration.html
On Mon, Oct 20, 2014 at 8:17 PM, Kevin Benton <blak111 at gmail.com> wrote:
> The current suggested way for DHCP agent fault tolerance is multiple
> agents per network. Is there a reason you don't want to use that option?
> On Oct 20, 2014 5:13 PM, "Noel Burton-Krahn" <noel at pistoncloud.com> wrote:
>
>> Thanks, Robert.
>>
>> So, ML2 needs the host attribute to match to bind the port. My other
>> requirement is that the dhcp agent must be able to migrate to a new host on
>> failover. The issue there is that if the dhcp service starts on a new host
>> with a new host name, then it will not take over the networks that were
>> served by the old host name. I'm looking for a way to start the dhcp agent
>> on a new host using the old host's config.
>>
>> --
>> Noel
>>
>>
>> On Mon, Oct 20, 2014 at 11:10 AM, Robert Kukura <kukura at noironetworks.com
>> > wrote:
>>
>>> Hi Noel,
>>>
>>> The ML2 plugin uses the binding:host_id attribute of port to control
>>> port binding. For compute ports, nova sets binding:host_id when
>>> creating/updating the neutron port, and ML2's openvswitch mechanism driver
>>> will look in agents_db to make sure the openvswitch L2 agent is running on
>>> that host, and that it has a bridge mapping for any needed physical network
>>> or has the appropriate tunnel type enabled. The binding:host_id attribute
>>> also gets set on DHCP, L3, and other agents' ports, and must match the host
>>> of the openvswitch-agent on that node or ML2 will not be able to bind the
>>> port. I suspect your configuration may be resulting in these not matching,
>>> and the DHCP port's binding:vif_type attribute being 'binding_failed'.
>>>
>>> I'd suggest running "neutron port-show" as admin on the DHCP port to see
>>> what the values of binding_vif_type and binding:host_id are, and running
>>> "neutron agent-list" as admin to make sure there is an L2 agent on that
>>> node and maybe "neutron agent-show" as admin to get that agents config
>>> details.
>>>
>>> -Bob
>>>
>>>
>>>
>>> On 10/20/14 1:28 PM, Noel Burton-Krahn wrote:
>>>
>>> I'm running OpenStack Icehouse with Neutron ML2/OVS. I've configured
>>> the ml2-ovs-plugin on all nodes with host = the IP of the host itself.
>>> However, my dhcp-agent may float from host to host for failover, so I
>>> configured it with host="floating". That doesn't work. In this case, the
>>> ml2-ovs-plugin creates a namespace and a tap interface for the dhcp agent,
>>> but OVS doesn't route any traffic to the dhcp agent. It *does* work if the
>>> dhcp agent's host is the same as the ovs plugin's host, but if my dhcp
>>> agent migrates to another host, it loses its configuration since it now has
>>> a different host name.
>>>
>>> So my question is, what does host mean for the ML2 dhcp agent and host
>>> can I get it to work if the dhcp agent's host != host for the ovs plugin?
>>>
>>> Case 1: fails: running with dhcp agent's host = "floating", ovs
>>> plugin's host = IP-of-server
>>> dhcp agent is running in netns created by ovs-plugin
>>> dhcp agent never receives network traffic
>>>
>>> Case 2: ok: running with dhcp agent's host = ovs plugin's host =
>>> IP-of-server
>>> dhcp agent is running in netns created by ovs-plugin (different tap
>>> name than case 1)
>>> dhcp agent works
>>>
>>> --
>>> Noel
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> OpenStack-dev mailing listOpenStack-dev at lists.openstack.orghttp://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>
>>>
>>>
>>> _______________________________________________
>>> OpenStack-dev mailing list
>>> OpenStack-dev at lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>
>>>
>>
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20141021/9e3e4053/attachment.html>
More information about the OpenStack-dev
mailing list