ha router - vxlan - incorrect ovs flow ?
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
New
|
Medium
|
Unassigned |
Bug Description
Hi all,
* Summary:
ha router - vxlan - incorrect ovs flow ?
* High level description:
When creating a ha router, there's sometimes a flow on the active neutron-l3-agent server for that router that points to a network-l3-agent server that isn't hosting the router. Therefore packet are sent to a useless host generating unnecessary network/cpu processing.
* Pre-conditions:
12 x neutron-l3-agent on dedicated servers
dvr disabled
no DPDK
routers in ha mode with 2 agents (active/standby)
* Step-by-step reproduction steps
Simply creating a router using :
openstack router create router1
* Actual output
openstack network agent list --router 67d62ea8-
+------
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary | HA State |
+------
| 0b506db2-
| 53d24a34-
+------
network-node-7>_ ~ # ip netns exec qrouter-
1: lo: <LOOPBACK,
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
235: ha-3172bc80-9b: <BROADCAST,
link/ether fa:16:3e:88:7c:33 brd ff:ff:ff:ff:ff:ff
inet 169.254.194.212/18 brd 169.254.255.255 scope global ha-3172bc80-9b
valid_lft forever preferred_lft forever
inet 169.254.0.248/24 scope global ha-3172bc80-9b
valid_lft forever preferred_lft forever
inet6 fe80::f816:
valid_lft forever preferred_lft forever
network-node-7>_ ~ # ovs-ofctl dump-ports-desc br-int | grep ha-3172bc80-9b
227(ha-
network-node-7>_ ~ # ovs-appctl ofproto/trace br-int in_port=
Flow: in_port=
bridge("br-int")
----------------
0. priority 0, cookie 0x67f75f52fb46d598
goto_table:60
60. priority 3, cookie 0x67f75f52fb46d598
NORMAL
-> no learned MAC for destination, flooding
bridge("br-ex")
---------------
0. in_port=2, priority 2, cookie 0x43bc653b06d7eccb
drop
bridge("br-tun")
----------------
0. in_port=1, priority 1, cookie 0xd40beb3f0a036588
goto_table:2
2. dl_dst=
goto_table:20
20. priority 0, cookie 0xd40beb3f0a036588
goto_table:22
22. dl_vlan=158, priority 1, cookie 0xd40beb3f0a036588
pop_vlan
set_
output:155
-> output to kernel tunnel
output:156
-> output to kernel tunnel
Final flow: unchanged
Megaflow: pkt_mark=
Datapath actions: push_vlan(
I don't understand the flow.
1.2.3.8 = active l3-agent
1.2.3.2 = standby l3-agent
1.2.3.12 = another l3-agent, not part of the router's configuration, never was.
why is 1.2.3.12 listed here ?
network-node-7>_ ~ # ovs-dpctl dump-flows -m | grep 0x24be
ufid:17870c16-
ufid:08137467-
* Version:
dpkg -l | grep neutron
ii neutron-common 2:17.4.
ii neutron-dhcp-agent 2:17.4.
ii neutron-
ii neutron-l3-agent 2:17.4.
ii neutron-
ii neutron-
ii python3-neutron 2:17.4.
ii python3-
ii python3-neutron-lib 2.6.2-1~bpo11+1 all Neutron shared routines and utilities - Python 3.x
ii python3-
kernel : 5.10.0-19-amd64
Changed in neutron: | |
importance: | Undecided → Medium |