Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Linux bridge agent functioning on controller, but not compute node; both nodes visible to each other, services running


I'm struggling with my network configuration (or Neutron configuration). I am following the RDO installation guide with "Networking Option 2." Both nodes are running a recent version of CentOS 7.

[root@controller ~]# openstack network agent list # output has been modified to fit on small screens

| ID | Agent Type         | Host       | Avail Zone | Alive | State | Binary                    |
| ID | Linux bridge agent | controller | None       | True  | UP    | neutron-linuxbridge-agent |
| ID | L3 agent           | controller | nova       | True  | UP    | neutron-l3-agent          |
| ID | DHCP agent         | controller | nova       | True  | UP    | neutron-dhcp-agent        |
| ID | Metadata agent     | controller | None       | True  | UP    | neutron-metadata-agent    |

According to the documentation, I should also have a "Linux bridge agent" on the compute node (compute1). I had issues with the controller bridge agent not appearing on this list either, but this was resolved by removing the Infiniband card on my server (apparently older versions of OpenStack don't like the non-standard MAC address). I also removed the card from the compute node, but this issue persists, which leads me to believe the problem is related to my network configuration.

The neutron-linuxbridge-agent service is running on the compute node, but it is restarting repeatedly in short intervals.

[root@compute1 ~]# systemctl | grep neutron

neutron-linuxbridge-agent.service                                                                                              loaded active running   OpenStack Neutron Linux Bridge Agent

[root@compute1 ~]# journalctl -xel

Jul 11 10:12:41 compute1 neutron-linuxbridge-agent[30559]: Could not load neutron.openstack.common.notifier.rpc_notifier
Jul 11 10:12:41 compute1 systemd[1]: neutron-linuxbridge-agent.service: main process exited, code=exited, status=1/FAILURE
Jul 11 10:12:41 compute1 systemd[1]: Unit neutron-linuxbridge-agent.service entered failed state.
Jul 11 10:12:41 compute1 systemd[1]: neutron-linuxbridge-agent.service failed.
Jul 11 10:12:41 compute1 systemd[1]: neutron-linuxbridge-agent.service holdoff time over, scheduling restart.
Jul 11 10:12:41 compute1 systemd[1]: Starting OpenStack Neutron Linux Bridge Agent...

The error message is different on the compute node. The IP is the management IP of the controller and is associated with the device "eno1."

[root@compute1 ~]# tail -40 /var/log/neutron/linuxbridge-agent.log

2017-07-11 10:33:53.806 10798 INFO neutron.common.config [-] Logging enabled!
2017-07-11 10:33:53.806 10798 INFO neutron.common.config [-] /usr/bin/neutron-linuxbridge-agent version 10.0.1
2017-07-11 10:33:53.806 10798 INFO neutron.plugins.ml2.drivers.linuxbridge.agent.linuxbridge_neutron_agent [-] Interface mappings: {'provider': 'eno2'}
2017-07-11 10:33:53.807 10798 INFO neutron.plugins.ml2.drivers.linuxbridge.agent.linuxbridge_neutron_agent [-] Bridge mappings: {}
2017-07-11 10:33:53.827 10798 ERROR neutron.plugins.ml2.drivers.linuxbridge.agent.linuxbridge_neutron_agent [-] Tunneling cannot be enabled without the local_ip bound to an interface on the host. Please configure local_ip on the host interface to be used for tunneling and restart the agent.

The compute node is visible to the controller.

[root@controller ~]# openstack host list

| Host Name  | Service     | Zone     |
| compute1   | compute     | nova     |
| controller | consoleauth | internal |
| controller | conductor   | internal |
| controller | scheduler   | internal |

[root@controller ~]# openstack hypervisor list

| ID | Hypervisor Hostname | Hypervisor Type | Host IP     | State |
|  2 | compute1            | QEMU            | | up    |

Both my controller node and compute node have the interface "eno2" assigned as the provider for the networking.

cat /etc/neutron/plugins/ml2/linuxbridge_agent.ini

physical_interface_mappings = provider:eno2

Unfortunately, I cannot use the default networking configuration provided by the documentation for security reasons. I have one VLAN configured to use NAT for Internet access and one that is entirely isolated. I have tried to assign static IP addresses to all interfaces and put everything on the same VLAN (with Internet access) with the hope that the problem might be more obvious, but all commands have the same output regardless. I currently have BOOTPROTO=none on my provider interfaces (eno2), but I have put them on the same VLAN as the other interfaces.

If you need to see any other files or want me to change any settings, please let me know; I'd be happy to. I can also provide more information about my network configuration and servers as needed.

Thanks in advance!