Description:
pmtud for the same subnet from east to west doesn't work
version:
ovn23.09-23.09.0-105.el9
roducer
1. start ovn on server
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:1.1.207.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=1.1.207.25
systemctl restart ovn-controller
ovn-nbctl ls-add sw0
ovn-nbctl lsp-add sw0 sw0-port1
ovn-nbctl lsp-set-addresses sw0-port1 "50:54:00:00:00:03 10.0.0.3 1000::3"
ovn-nbctl lsp-add sw0 sw0-port2
ovn-nbctl lsp-set-addresses sw0-port2 "50:54:00:00:00:04 10.0.0.4 1000::4"
ovn-nbctl ls-add sw1
ovn-nbctl lsp-add sw1 sw1-port1
ovn-nbctl lsp-set-addresses sw1-port1 "40:54:00:00:00:03 20.0.0.3 2000::3"
ovn-nbctl lr-add lr0
ovn-nbctl lrp-add lr0 lr0-sw0 00:00:00:00:ff:01 10.0.0.1/24 1000::a/64
ovn-nbctl lsp-add sw0 sw0-lr0
ovn-nbctl lsp-set-type sw0-lr0 router
ovn-nbctl lsp-set-addresses sw0-lr0 router
ovn-nbctl lsp-set-options sw0-lr0 router-port=lr0-sw0
ovn-nbctl lrp-add lr0 lr0-sw1 00:00:00:00:ff:02 20.0.0.1/24 2000::a/64
ovn-nbctl lsp-add sw1 sw1-lr0
ovn-nbctl lsp-set-type sw1-lr0 router
ovn-nbctl lsp-set-addresses sw1-lr0 router
ovn-nbctl lsp-set-options sw1-lr0 router-port=lr0-sw1
ovn-nbctl ls-add public
ovn-nbctl lsp-add public ln-public
ovn-nbctl lsp-set-type ln-public localnet
ovn-nbctl lsp-set-addresses ln-public unknown
ovn-nbctl lsp-set-options ln-public network_name=public
ovn-nbctl lrp-add lr0 lr0-public 00:11:22:00:ff:01 172.20.0.100/24
ovn-nbctl lsp-add public public-lr0
ovn-nbctl lsp-set-type public-lr0 router
ovn-nbctl lsp-set-addresses public-lr0 router
ovn-nbctl lsp-set-options public-lr0 router-port=lr0-public
ovn-nbctl lrp-set-gateway-chassis lr0-public hv1 10
ovn-nbctl lr-route-add lr0 0.0.0.0/0 172.20.0.1
ovn-nbctl lr-nat-add lr0 snat 172.20.0.100 10.0.0.0/24
ovn-nbctl lr-nat-add lr0 snat 172.20.0.100 20.0.0.0/24
ovn-nbctl acl-add sw0 from-lport 1002 'ip4 || ip6' allow-related
ovn-nbctl acl-add sw1 from-lport 1002 'ip4 || ip6' allow-related
ovs-vsctl add-br br-ex
ovs-vsctl set open . external-ids:ovn-bridge-mappings=public:br-ex
ip link add sw0p1_v type veth peer name sw0p1_vp
ovs-vsctl add-port br-int sw0p1_vp
ovs-vsctl set interface sw0p1_vp external_ids:iface-id=sw0-port1
ip link set sw0p1_vp up
ip netns add sw0p1
ip link set sw0p1_v netns sw0p1
ip netns exec sw0p1 ip link set sw0p1_v address 50:54:00:00:00:03
ip netns exec sw0p1 ip link set sw0p1_v up
ip netns exec sw0p1 ip addr add 10.0.0.3/24 dev sw0p1_v
ip netns exec sw0p1 ip route add default via 10.0.0.1
ip netns exec sw0p1 ip addr add 1000::3/64 dev sw0p1_v
ip netns exec sw0p1 ip -6 route add default via 1000::a
2. start ovn-controller on client
systemctl start openvswitch
ovs-vsctl set open . external_ids:system-id=hv0 external_ids:ovn-remote=tcp:1.1.207.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=1.1.207.26
systemctl restart ovn-controller
ovs-vsctl add-br br-ex
ovs-vsctl set open . external-ids:ovn-bridge-mappings=public:br-ex
ovs-vsctl add-port br-int sw0p2 -- set interface sw0p2 type=internal external_ids:iface-id=sw0-port2
ip netns add sw0p2
ip link set sw0p2 netns sw0p2
ip netns exec sw0p2 ip link set sw0p2 address 50:54:00:00:00:04
ip netns exec sw0p2 ip link set sw0p2 up
ip netns exec sw0p2 ip addr add 10.0.0.4/24 dev sw0p2
ip netns exec sw0p2 ip route add default via 10.0.0.1
ip netns exec sw0p2 ip addr add 1000::4/64 dev sw0p2
ip netns exec sw0p2 ip -6 route add default via 1000::a
ovs-vsctl add-port br-int sw1p1 -- set interface sw1p1 type=internal external_ids:iface-id=sw1-port1
ip netns add sw1p1
ip link set sw1p1 netns sw1p1
ip netns exec sw1p1 ip link set sw1p1 address 40:54:00:00:00:03
ip netns exec sw1p1 ip link set sw1p1 up
ip netns exec sw1p1 ip addr add 20.0.0.3/24 dev sw1p1
ip netns exec sw1p1 ip route add default via 20.0.0.1
ip netns exec sw1p1 ip addr add 2000::3/64 dev sw1p1
ip netns exec sw1p1 ip -6 route add default via 2000::a
3. change mtu for the route used by geneve on server
ip route change 1.1.207.0/24 dev ens1f0np0 mtu 1000
4. run ping in sw0p1
ip netns exec sw0p1 ping 10.0.0.4 -c 2 -s 1100 -M do
actual result:
sw0p1 doesn't receive the icmp packet for pmtu
expected result:
sw0p1 should receive the icmp packet for pmtu
other information:
[root@wsfd-advnetlab18 bz2241711]# ip netns exec sw0p1 ping 10.0.0.4 -c 3 -s 1100 -M do
PING 10.0.0.4 (10.0.0.4) 1100(1128) bytes of data.
— 10.0.0.4 ping statistics —
3 packets transmitted, 0 received, 100% packet loss, time 2038ms
[root@wsfd-advnetlab18 bz2241711]# ip netns exec sw0p1 ping 20.0.0.3 -c 3 -s 1100 -M do
PING 20.0.0.3 (20.0.0.3) 1100(1128) bytes of data.
From 20.0.0.3 icmp_seq=2 Frag needed and DF set (mtu = 942)
ping: local error: message too long, mtu=942
— 20.0.0.3 ping statistics —
3 packets transmitted, 0 received, +2 errors, 100% packet loss, time 2022ms
[root@wsfd-advnetlab18 bz2241711]# ip netns exec sw0p1 ip route get 20.0.0.3
20.0.0.3 via 10.0.0.1 dev sw0p1_v src 10.0.0.3 uid 0
cache expires 580sec mtu 942
[root@wsfd-advnetlab18 bz2241711]# ip netns exec sw0p1 ip route get 10.0.0.4
10.0.0.4 dev sw0p1_v src 10.0.0.3 uid 0
cache
[root@wsfd-advnetlab18 bz2241711]# rpm -qa | grep -E "openvswitch|ovn"
openvswitch-selinux-extra-policy-1.0-34.el9fdp.noarch
ovn23.09-23.09.0-105.el9fdp.x86_64
ovn23.09-central-23.09.0-105.el9fdp.x86_64
ovn23.09-host-23.09.0-105.el9fdp.x86_64
openvswitch3.2-3.2.0-52.el9fdp.x86_64
python3-openvswitch3.2-3.2.0-52.el9fdp.x86_64
it's related to https://bugzilla.redhat.com/show_bug.cgi?id=2241711
- links to
-
RHBA-2024:138790
ovn24.09 bug fix and enhancement update
- mentioned on