-
Bug
-
Resolution: Done-Errata
-
Major
-
OVN FDP 24.C
-
False
-
-
False
-
None
-
-
-
+
Description:
route would fail when bfd for one of the ecmp is down
Version:
ovn24.03-24.03.0-5.el9
reproducer:
systemctl start openvswitch systemctl start ovn-northd ovn-nbctl set-connection ptcp:6641 ovn-sbctl set-connection ptcp:6642 ovs-vsctl set open . external_ids:system-id=hv1 external_ids:ovn-remote=tcp:20.0.211.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.211.25 systemctl restart ovn-controller ovn-nbctl ls-add network1 ovn-nbctl lsp-add network1 vm1 ovn-nbctl lsp-set-addresses vm1 "40:44:00:00:00:01 192.168.1.11 2000::11" ovn-nbctl lsp-add network1 vm2 ovn-nbctl lsp-set-addresses vm2 "40:44:00:00:00:02 192.168.1.12 2000::12" ovn-nbctl ls-add public ovn-nbctl lsp-add public public-localnet ovn-nbctl lsp-set-type public-localnet localnet ovn-nbctl lsp-set-addresses public-localnet unknown ovn-nbctl lsp-set-options public-localnet network_name=external ovs-vsctl add-br br-labNet ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=external:br-labNet ovs-vsctl add-port br-labNet ha_veth0 ip link set br-labNet up ovn-nbctl lr-add router1 ovn-nbctl lrp-add router1 router1-net1 40:44:00:00:00:04 192.168.1.1/24 2000::1/64 ovn-nbctl lsp-add network1 net1-router1 ovn-nbctl lsp-set-type net1-router1 router ovn-nbctl lsp-set-addresses net1-router1 router ovn-nbctl lsp-set-options net1-router1 router-port=router1-net1 ovn-nbctl lrp-add router1 router1-public 40:44:00:00:00:06 172.16.1.1/24 2002::1/64 ovn-nbctl lsp-add public public-router1 ovn-nbctl lsp-set-type public-router1 router ovn-nbctl lsp-set-addresses public-router1 "40:44:00:00:00:06" ovn-nbctl lsp-set-options public-router1 router-port=router1-public ovn-nbctl lrp-set-gateway-chassis router1-public hv1 ovn-nbctl lr-route-add router1 0.0.0.0/0 192.168.1.2 ovn-nbctl lr-route-add router1 ::/0 2000::12 ovs-vsctl add-port br-int vm1 -- set interface vm1 type=internal ip netns add vm1 ip link set vm1 netns vm1 ip netns exec vm1 ip link set lo up ip netns exec vm1 ip link set vm1 up ip netns exec vm1 ip link set vm1 address 40:44:00:00:00:01 ip netns exec vm1 ip addr add 192.168.1.11/24 dev vm1 ip netns exec vm1 ip -6 addr add 2000::11/64 dev vm1 ip netns exec vm1 ip route add default via 192.168.1.1 dev vm1 ip netns exec vm1 ip addr add 2000::11/64 dev vm1 ip netns exec vm1 ip -6 route add default via 2000::1 dev vm1 ovs-vsctl set Interface vm1 external_ids:iface-id=vm1 ovs-vsctl add-port br-int vm2 -- set interface vm2 type=internal ip netns add vm2 ip link set vm2 netns vm2 ip netns exec vm2 ip link set lo up ip netns exec vm2 ip link set vm2 up ip netns exec vm2 ip link set vm2 address 40:44:00:00:00:02 ip netns exec vm2 ip addr add 192.168.1.12/24 dev vm2 ip netns exec vm2 ip -6 addr add 192.168.1.12/24 dev vm2 ip netns exec vm2 ip route add default via 192.168.1.1 dev vm2 ip netns exec vm2 ip addr add 2000::12/64 dev vm2 ip netns exec vm2 ip -6 route add default via 2000::1 dev vm2 ovs-vsctl set Interface vm2 external_ids:iface-id=vm2 ip netns add external ip link add ha_veth0 type veth peer name ha_veth0_p netns external ip netns exec external ip link set lo up ip netns exec external ip link set ha_veth0_p up ip link set ha_veth0 up ip netns exec external ip addr add 172.16.1.50/24 dev ha_veth0_p ip netns exec external ip addr add 172.16.1.51/24 dev ha_veth0_p ip netns exec external ip -6 addr add 2002::50/64 dev ha_veth0_p ip netns exec external ip -6 addr add 2002::51/64 dev ha_veth0_p ip link add veth0 type veth peer name veth0_peer ip link set up dev veth0 ip link set veth0_peer netns external ip netns exec external ip link set up dev veth0_peer ip netns exec external ip addr add 192.168.100.1/24 dev veth0_peer ip netns exec external ip -6 addr add 2003::1/24 dev veth0_peer ip addr add 192.168.100.2/24 dev veth0 ip -6 addr add 2003::2/24 dev veth0 ip route add 172.16.1.0/24 via 192.168.100.1 ip -6 route add 2002::/64 via 2003::1 ip netns exec external ip route add default via 172.16.1.1 ip netns exec external ip -6 route add default via 2002::1 ip netns exec external sysctl net.ipv4.ip_forward=1 ip netns exec external sysctl net.ipv6.ip_forward=1 ovn-nbctl --bfd lr-policy-add router1 1000 'ip4 && ip4.dst == 192.168.100.0/24' reroute 172.16.1.50,172.16.1.51 ovn-nbctl --bfd lr-policy-add router1 1000 'ip6 && ip6.dst == 2003::/64' reroute 2002::50,2002::51 ovn-nbctl --wait=hv sync ovn-nbctl list bfd ip netns exec vm1 ping 192.168.100.1 -c 1 -w 2 -W 2 ip netns exec external bfdd-beacon --listen=0.0.0.0 ip netns exec external bfdd-control allow 172.16.1.1 sleep 5 ovn-nbctl list bfd ip netns exec vm1 ping 192.168.100.1 -c 1 -w 2 -W 2 ip netns exec external ip addr del 172.16.1.50/24 dev ha_veth0_p sleep 5 ovn-nbctl list bfd ip netns exec vm1 ping 192.168.100.1 -c 1 -w 2 -W 2 pkill bfdd ip netns exec vm1 ping6 2003::1 -c 1 -w 2 -W 2 ip netns exec external bfdd-beacon --listen=:: ip netns exec external bfdd-control allow 2002::1 sleep 5 ovn-nbctl list bfd ip netns exec vm1 ping6 2003::1 -c 1 -w 2 -W 2 ip netns exec external ip -6 addr del 2002::50/64 dev ha_veth0_p sleep 10 ovn-nbctl list bfd ip netns exec vm1 ping6 2003::1 -c 1 -w 2 -W 2
actual result:
[root@wsfd-advnetlab18 FDP-234]# rpm -qa | grep -E "openvswitch|ovn" openvswitch-selinux-extra-policy-1.0-34.el9fdp.noarch openvswitch3.2-3.2.0-65.el9fdp.x86_64 python3-openvswitch3.2-3.2.0-65.el9fdp.x86_64 ovn24.03-24.03.1-5.el9fdp.x86_64 ovn24.03-central-24.03.1-5.el9fdp.x86_64 ovn24.03-host-24.03.1-5.el9fdp.x86_64 + ovn-nbctl --bfd lr-policy-add router1 1000 'ip4 && ip4.dst == 192.168.100.0/24' reroute 172.16.1.50,172.16.1.51 + ovn-nbctl --bfd lr-policy-add router1 1000 'ip6 && ip6.dst == 2003::/64' reroute 2002::50,2002::51 <=== bfd can be set for router policy + ovn-nbctl --wait=hv sync + ovn-nbctl list bfd _uuid : 79c6c6f1-5263-4f17-b8f0-d8b102c13ce8 detect_mult : [] dst_ip : "2002::50" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down _uuid : 5c7215ca-172a-4a56-b47a-d7294ce807e4 detect_mult : [] dst_ip : "2002::51" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down _uuid : 67354c5b-50a9-4a3b-96a6-5b09fb792633 detect_mult : [] dst_ip : "172.16.1.51" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down _uuid : cf3cf0ef-3287-4fc6-83ea-16eaad3822c3 detect_mult : [] dst_ip : "172.16.1.50" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down + ip netns exec vm1 ping 192.168.100.1 -c 1 -w 2 -W 2 PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data. --- 192.168.100.1 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 1006ms + ip netns exec external bfdd-beacon --listen=0.0.0.0 + ip netns exec external bfdd-control allow 172.16.1.1 Allowing connections from 172.16.1.1 + sleep 5 + ovn-nbctl list bfd _uuid : 79c6c6f1-5263-4f17-b8f0-d8b102c13ce8 detect_mult : [] dst_ip : "2002::50" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down _uuid : 5c7215ca-172a-4a56-b47a-d7294ce807e4 detect_mult : [] dst_ip : "2002::51" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down _uuid : 67354c5b-50a9-4a3b-96a6-5b09fb792633 detect_mult : [] dst_ip : "172.16.1.51" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : up _uuid : cf3cf0ef-3287-4fc6-83ea-16eaad3822c3 detect_mult : [] dst_ip : "172.16.1.50" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : up + ip netns exec vm1 ping 192.168.100.1 -c 1 -w 2 -W 2 PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data. 64 bytes from 192.168.100.1: icmp_seq=1 ttl=63 time=1.63 ms --- 192.168.100.1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.625/1.625/1.625/0.000 ms + ip netns exec external ip addr del 172.16.1.50/24 dev ha_veth0_p + sleep 5 + ovn-nbctl list bfd _uuid : 79c6c6f1-5263-4f17-b8f0-d8b102c13ce8 detect_mult : [] dst_ip : "2002::50" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down _uuid : 5c7215ca-172a-4a56-b47a-d7294ce807e4 detect_mult : [] dst_ip : "2002::51" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down _uuid : 67354c5b-50a9-4a3b-96a6-5b09fb792633 detect_mult : [] dst_ip : "172.16.1.51" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : up _uuid : cf3cf0ef-3287-4fc6-83ea-16eaad3822c3 detect_mult : [] dst_ip : "172.16.1.50" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down + ip netns exec vm1 ping 192.168.100.1 -c 1 -w 2 -W 2 PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data. --- 192.168.100.1 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 1013ms <==== ping failed when bfd for one of the ecmp is down + pkill bfdd + ip netns exec vm1 ping6 2003::1 -c 1 -w 2 -W 2 PING 2003::1(2003::1) 56 data bytes --- 2003::1 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 1016ms + ip netns exec external bfdd-beacon --listen=:: + ip netns exec external bfdd-control allow 2002::1 Allowing connections from 2002::1 + sleep 5 + ovn-nbctl list bfd _uuid : 79c6c6f1-5263-4f17-b8f0-d8b102c13ce8 detect_mult : [] dst_ip : "2002::50" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : up _uuid : 5c7215ca-172a-4a56-b47a-d7294ce807e4 detect_mult : [] dst_ip : "2002::51" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : up _uuid : 67354c5b-50a9-4a3b-96a6-5b09fb792633 detect_mult : [] dst_ip : "172.16.1.51" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down _uuid : cf3cf0ef-3287-4fc6-83ea-16eaad3822c3 detect_mult : [] dst_ip : "172.16.1.50" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down + ip netns exec vm1 ping6 2003::1 -c 1 -w 2 -W 2 PING 2003::1(2003::1) 56 data bytes 64 bytes from 2003::1: icmp_seq=1 ttl=63 time=0.989 ms --- 2003::1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.989/0.989/0.989/0.000 ms + ip netns exec external ip -6 addr del 2002::50/64 dev ha_veth0_p + sleep 10 + ovn-nbctl list bfd _uuid : 79c6c6f1-5263-4f17-b8f0-d8b102c13ce8 detect_mult : [] dst_ip : "2002::50" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down _uuid : 5c7215ca-172a-4a56-b47a-d7294ce807e4 detect_mult : [] dst_ip : "2002::51" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : up _uuid : 67354c5b-50a9-4a3b-96a6-5b09fb792633 detect_mult : [] dst_ip : "172.16.1.51" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down _uuid : cf3cf0ef-3287-4fc6-83ea-16eaad3822c3 detect_mult : [] dst_ip : "172.16.1.50" external_ids : {} logical_port : router1-public min_rx : [] min_tx : [] options : {} status : down + ip netns exec vm1 ping6 2003::1 -c 1 -w 2 -W 2 PING 2003::1(2003::1) 56 data bytes --- 2003::1 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 1024ms
expected result:
route can pass even bfd for one of the ecmp is down
- links to
-
RHBA-2024:130931
ovn24.03 bug fix and enhancement update