To configure HA routers, two or more L3 agents are required. To install the Neutron L3 agent, run the following command on the remaining compute nodes:
# apt-get install neutron-l3-agent
Both the LinuxBridge and Open vSwitch mechanism drivers support HA routers, and the Neutron L3 agent must be configured to use the interface driver that corresponds to the chosen mechanism driver.
Update the Neutron L3 configuration file on the compute nodes at /etc/neutron/l3_agent.ini
and specify one of the following interface drivers.
For LinuxBridge, use the following code:
[DEFAULT] ... interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
For Open vSwitch, use the following code:
[DEFAULT] ... interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
The external_network_bridge
configuration option was discussed in detail in the previous chapter and should be configured identically across all L3 agents.
On all nodes, set the external_network_bridge
configuration option to an unset value in the L3 agent configuration file, as follows:
[DEFAULT] ... external_network_bridge =
By default, the Neutron L3 agent will not delete network namespaces when a router is deleted due to a bug found in older releases of the iproute2 utility. In modern operating systems, including the latest Ubuntu 14.04 LTS discussed in this book, the router_delete_namespaces
option in the L3 agent configuration file can be set from false
to true
as follows:
[DEFAULT] ... router_delete_namespaces = true
The Neutron L3 agent considers HA routers as legacy routers, as many of the same mechanisms used for standalone routers are shared with HA routers. The default value for agent_mode
is legacy
, which will remain unchanged for the remainder of this chapter.
After making changes to the configuration of the Neutron L3 agent, issue the following command on the compute nodes to restart the agent:
# service neutron-l3-agent restart
After a restart of the services, the additional agents should check in. Use the following Neutron agent-list
command to return a listing of all L3 agents:
# neutron agent-list --agent_type="L3 Agent"
The API should return similar output to that shown in the following image:
If an agent is not listed in the output as expected, troubleshoot any errors that may be indicated in the /var/log/neutron/l3-agent.log
log file on the respective node.