Neutron ML2: VM instances do not get IP via DHCP

Hi All,

I am trying icehouse.

I followed the openstack and mellanox documentation to successfully bring up my own setup. I created Ethernet SR-IOV instances on compute node by following the steps in this doc:

http://www.mellanox.com/openstack/pdf/mellanox-openstack-solution.pdf http://www.mellanox.com/openstack/pdf/mellanox-openstack-solution.pdf

The VM instances boot and even show the mellanox virtual eth interface that was 'pass-through’ed to it. However, it doesn’t get a IP automatically.

My queries are:

  1. Has anyone seen DHCP working with mellanox ml2 setup?

  2. I have not installed ‘Mellanox Dnsmasq driver’ as it is mentioned under the ‘InfiniBand Network’ section of mellanox-icehouse doc whereas I am configuring ‘Ethernet Network’. Should I still install ‘Mellanox Dnsmasq driver’?

  3. I see this error in /var/log/neutron/dhcp-agent.log on network node - “TRACE neutron.agent.dhcp_agent RemoteError: Remote error: AgentNotFoundByTypeHost Agent with agent_type=DHCP agent and host=controller could not be found”. Should I worry about it?

  4. Can I do something else (run some quick tests, check logs etc) to debug this?

Note:

  • neutron-dhcp-agent is running on network node.

  • While the VM instance is coming up, it shows this on console for few seconds - “Determing IP information for eth0…”. And, finally it says “failed”.

Any help is greatly appreciated. Thanks!

This issue is solved finally. There were two problems that are needed to be fixed:

  1. Openstack icehouse documentation (Configure network node - OpenStack Installation Guide for Red Hat Enterprise Linux, CentOS, and Fedora … http://docs.openstack.org/icehouse/install-guide/install/yum/content/neutron-ml2-network-node.html ) asks the users to do following on network node:

Due to a packaging bug, the Open vSwitch agent initialization script explicitly looks for the Open vSwitch plug-in configuration file rather than a symbolic link /etc/neutron/plugin.ini pointing to the ML2 plug-in configuration file. Run the following commands to resolve this issue:

# cp /etc/init.d/neutron-openvswitch-agent /etc/init.d/neutron-openvswitch-agent.orig

# sed -i ‘s,plugins/openvswitch/ovs_neutron_plugin.ini,plugin.ini,g’ /etc/init.d/neutron-openvswitch-agent

But, this is not required as it causes the neutron-openvswitch-agent to not load the correct config file (/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini). neutron-openvswitch-agent must load config from this file. Also, it looks like they have wrongly fixed it in the icehouse repository. So now, the neutron-openvswitch-agent service script always points to the wrong file on Linux.

  1. Mellanox documentation (Mellanox-Neutron-Icehouse-Redhat - OpenStack https://wiki.openstack.org/wiki/Mellanox-Neutron-Icehouse-Redhat ) asks users to edit /etc/neutron/dhcp_agent.ini to set “interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver”. But this should be set to “neutron.agent.linux.interface.OVSInterfaceDriver” otherwise a tap port is not created under br-int for the DHCP process

After making the above changes, my VM instances are getting IPs assigned

Hi Nishant,

you don’t need to install mlnx-dhcp agent. it is only for IB.

to make sure all other configuration is correct, please try to give your vm static IP and ping another vm or node in the network.

Actually, I wanted to confirm whether mellanox ml2 agents have anything to do with DHCP configuration or handling. Since, you are indicating they are unrelated. I will now pursue it as a separate generic issue.

Thanks for confirming and for the link!

The Mellanox community forum rocks!

Hi,

I would suggest to follow official OpenStack documentation for non Mellanox issues.

For DHCP installation and configuration you can follow:

DHCP agent - OpenStack Cloud Administrator Guide - current http://docs.openstack.org/admin-guide-cloud/content/section_adv_cfg_dhcp_agent.html

Hello again Nurit :-)

Thanks for confirming that mlnx-dhcp agent is not needed for ethernet. With static IPs I can ping between VMs (no problems there). Is there anything that I can try to debug the DHCP part?

Hi Nishant,

I just noticed that you were using documentation that was not updated with Icehouse Ml2 related details.

Can you please verify your steps according to the following: Mellanox-Neutron-ML2 - OpenStack https://wiki.openstack.org/wiki/Mellanox-Neutron-ML2 ?

Hi Irena,

I followed that doc too.

However, I ignored the following under “3. Configure the DHCP server according to the following guidelines” as the link is broken. Can you please update the doc with a valid link. Maybe this link can help me.

For additional information refer to:

http://docs.openstack.org/trunk/openstack-network/admin/content/adv_cfg_dhcp_agent.html http://docs.openstack.org/trunk/openstack-network/admin/content/adv_cfg_dhcp_agent.html

^^^^^

This link is broken

Thanks!

Hi Nishant,

Thank you for your questions. Sorry that the steps are not clear enough.

Your comments will help us to improve existing documentation.