-
Bug
-
Resolution: Not a Bug
-
Undefined
-
None
-
None
-
None
-
False
-
-
False
-
?
-
?
-
?
-
?
-
None
-
-
-
Important
When BGP is configured with ovn routing, the following flows are added to the EDPM nodes:
[root@compute-uf4kxaep-2 ~]# ovs-ofctl dump-flows br-ex cookie=0x3e7, duration=92.332s, table=0, n_packets=139, n_bytes=25278, priority=1000,ip,in_port=eth3,nw_dst=192.168.133.0/24 actions=mod_dl_dst:6a:c2:e2:88:9a:4a,output:"patch-bgp-ex-lo" cookie=0x3e7, duration=92.320s, table=0, n_packets=0, n_bytes=0, priority=1000,ip,in_port=eth2,nw_dst=192.168.133.0/24 actions=mod_dl_dst:6a:c2:e2:88:9a:4a,output:"patch-bgp-ex-lo" cookie=0x0, duration=129527.592s, table=0, n_packets=12209196, n_bytes=1965073065, priority=0 actions=NORMAL
This is implemented here:
https://opendev.org/openstack/ovn-bgp-agent/src/commit/4f8fe6adbfca242c5d4ef7d4d66b9240785f945e/ovn_bgp_agent/drivers/openstack/utils/wire.py#L419
The CIDR 192.168.133.0/24 from the previous example corresponds to the provider network's CIDR. Hence, packets whose destination IP matches that CIDR are routed so that they can reach the VM instances running on that compute. And this works well.
However, when we try to ping from one VM instance to another VM's FIP, it doesn't work (it only works for VMs running on the same compute). It seems the packets whose destination IP is another VMs' FIP are not properly routed to the external interfaces due to the previously mentioned flows. Same happens with any other IP from the provider network (it doesn't need to be a VM's FIP).
In thefollowing example, a VM with internal IP 192.168.199.240 tries to ping an IP from the provider network 192.168.133.1, but according to tcpdump the packets are only captured on the tap interface:
[root@compute-uf4kxaep-2 ~]# tcpdump -vnne -i any icmp and host 192.168.133.1 tcpdump: data link type LINUX_SLL2 dropped privs to tcpdump tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes 08:44:27.003509 tap996ad23c-46 P ifindex 573 fa:16:3e:45:81:f2 ethertype IPv4 (0x0800), length 104: (tos 0x0, ttl 64, id 33896, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.199.240 > 192.168.133.1: ICMP echo request, id 31267, seq 17, length 64 08:44:28.027489 tap996ad23c-46 P ifindex 573 fa:16:3e:45:81:f2 ethertype IPv4 (0x0800), length 104: (tos 0x0, ttl 64, id 33898, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.199.240 > 192.168.133.1: ICMP echo request, id 31267, seq 18, length 64 08:44:29.051468 tap996ad23c-46 P ifindex 573 fa:16:3e:45:81:f2 ethertype IPv4 (0x0800), length 104: (tos 0x0, ttl 64, id 33998, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.199.240 > 192.168.133.1: ICMP echo request, id 31267, seq 19, length 64
- blocks
-
OSPRH-884 BZ#2127951 BGP Fast Data Path support
- Testing