This section describes how to use component extension for L3 agents scalability and HA.
One router can be hosted by more than one L3 agent, where only one agent takes the 'default' role, and other L3 agents are used in 'colocated' mode.
When a nova-compute node, a L3 agent and a DHCP agent have the same 'host' configuration option value, the VMs on that nova-compute can use the 'colocated' mode of networking if the colocated L3 agent is hosting the related routers. In the 'colocated' mode, the VMs' networking will have the 'colocated' L3 agent's routers' interfaces as the default gateway.
Regarding to how to run multiple DHCP agents, please see "Scale and HA of DHCP agents"
![]() | Note |
---|---|
This demo depends on 'component' extension. We can use quantum client command to check if the component extension enabled: gongysh@gongysh-laptop:~$ quantum ext-list -c name -c alias +-----------+------------------------+ | alias | name | +-----------+------------------------+ | component | component | | router | Quantum L3 Router | | binding | Port Binding | | quotas | Quotas for each tenant | | provider | Provider Network | +-----------+------------------------+ |

Just as shown by above figure, there will be four hosts in the setup:
Host | Description |
---|---|
OpenStack Controller host - controlnode | Runs the Quantum service, Keystone and all of the Nova services that are required to deploy a VM. The service must have at least one network interface, this should be connected to the "Management Network". Note nova-network should not be running. This is replaced by Quantum. |
HostA | Runs Nova compute, Quantum L2 agent, DCHP agent and L3 agent. This host is in the colocated mode since we are running both DHCP agent and L3 agent on it. Note: we need the colocated L3 agent host the related routers if we want the VMs on the host to use the colocated network. |
HostB | Runs Quantum L2 agent, L3 agent. The L3 agent will be running as default L3 agent for routers. |
HostC | Runs Nova compute, Quantum L2 agent, DHCP agent. Since we have no L3 agent running on HostC, the VMs will pass their traffic to HostB if the traffic needs routing. |
After the configuration and operations in this demo, we will have:

VMA_1, HostA's L3 agent and DHCP agent are colocated and the L3 agent is hosting a router whose interface is on subnet1, so VMA_1's traffic to public network will be via HostA's eth1 directly. However, VMA_2's traffic must go a long way to HostB (where default L3 agent is running.) and reach the public network via HostB's eth1 since the router hosted by the colocated L3 agent has no interface on subnet2.
If a VM is using colocated networking, the floating IP associated to it will be implemented by the colocated L3 agent. We can see the traffic to floating IP for VMA_1 is going into HostA's eth1 and into VMA_1, whereas traffic to floating IP for VMC_1 has to enter HostB's eth1, pass its eth0, arrive at HostC's eth0 and get into VMC_1.