-
Bug
-
Resolution: Not a Bug
-
Major
-
None
-
4.18
-
Critical
-
None
-
Proposed
-
False
-
Description of problem:
IPv6 traffic can't communicate between pods on different nodes when configuring the UDN CRD with Layer 3 and role: Secondary. But testing passed when configuring Layer2.
Version-Release number of selected component (if applicable):
Client Version: 4.17.0-0.nightly-2024-09-16-195350 Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3 Server Version: 4.18.0-0.test-2024-11-11-032603-ci-ln-wb12crk-latest Kubernetes Version: v1.31.2
How reproducible:
Always
Steps to Reproduce:
1. Configuring UDN CRD for pod primary network
apiVersion: k8s.ovn.org/v1
kind: UserDefinedNetwork
metadata:
name: udncrd-l3-primary
namespace: test
spec:
topology: Layer3
layer3:
role: Primary
mtu: 9000
subnets:
- cidr: "10.100.0.0/16"
hostSubnet: 24
2. Configuring UDN CRD for pod Secondary network with setting topology Layer3
apiVersion: k8s.ovn.org/v1 kind: UserDefinedNetwork metadata: name: udncrd-l3-secondary namespace: test spec: topology: Layer3 layer3: role: Secondary mtu: 9000 subnets: - cidr: "20.100.0.0/16" hostSubnet: 24 - cidr: "2010:100:0::0/48" hostSubnet: 64
3. Creating three pods, 2 pods in worker1 and 1 pod in worker2
4. Verifying all pods get ip addresses for both primary and secondary interface
$ oc get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES test-pod-1 1/1 Running 0 8m6s 10.128.2.21 ip-10-0-9-181.us-east-2.compute.internal <none> <none> test-pod-2 1/1 Running 0 7m58s 10.128.2.22 ip-10-0-9-181.us-east-2.compute.internal <none> <none> test-pod-3 1/1 Running 0 7m54s 10.131.0.53 ip-10-0-59-123.us-east-2.compute.internal <none> <none>
$ oc exec test-pod-1 -- ip a 3: ovn-udn1@if34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default link/ether 0a:58:0a:64:00:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.100.0.4/24 brd 10.100.0.255 scope global ovn-udn1 valid_lft forever preferred_lft forever inet6 fe80::858:aff:fe64:4/64 scope link valid_lft forever preferred_lft forever 4: net1@if35: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default link/ether 0a:58:14:64:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 20.100.0.3/24 brd 20.100.0.255 scope global net1 valid_lft forever preferred_lft forever inet6 2010:100:0:1::3/64 scope global valid_lft forever preferred_lft forever inet6 fe80::858:14ff:fe64:3/64 scope link valid_lft forever preferred_lft forever $ oc exec test-pod-2 -- ip a 3: ovn-udn1@if37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default link/ether 0a:58:0a:64:00:06 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.100.0.6/24 brd 10.100.0.255 scope global ovn-udn1 valid_lft forever preferred_lft forever inet6 fe80::858:aff:fe64:6/64 scope link valid_lft forever preferred_lft forever 4: net1@if38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default link/ether 0a:58:14:64:00:05 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 20.100.0.5/24 brd 20.100.0.255 scope global net1 valid_lft forever preferred_lft forever inet6 2010:100:0:1::5/64 scope global valid_lft forever preferred_lft forever inet6 fe80::858:14ff:fe64:5/64 scope link valid_lft forever preferred_lft forever $ oc exec test-pod-3 -- ip a 3: ovn-udn1@if74: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default link/ether 0a:58:0a:64:04:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.100.4.4/24 brd 10.100.4.255 scope global ovn-udn1 valid_lft forever preferred_lft forever inet6 fe80::858:aff:fe64:404/64 scope link valid_lft forever preferred_lft forever 4: net1@if75: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP group default link/ether 0a:58:14:64:04:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 20.100.4.3/24 brd 20.100.4.255 scope global net1 valid_lft forever preferred_lft forever inet6 2010:100:0:5::3/64 scope global valid_lft forever preferred_lft forever inet6 fe80::858:14ff:fe64:403/64 scope link valid_lft forever preferred_lft forever
5. Verifying pods' communication through secondary interfaces would pass within and cross the nodes.
Actual results:
$ oc exec test-pod-3 -- curl -g [2010:100:0:1::3]:8080 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:06 --:--:-- 0^C $ oc exec test-pod-3 -- curl -g [2010:100:0:1::5]:8080 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:03 --:--:-- 0^C $ oc exec test-pod-1 -- curl -g [2010:100:0:1::5]:8080 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 17 100 17 0 0 20681 0 --:--:-- --:--:-- --:--Hello Test Pod-2 :-- 17000 $ oc exec test-pod-3 -- curl 20.100.0.3:8080 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0Hello Test Pod-1 100 17 100 17 0 0 5851 0 --:--:-- --:--:-- --:--:-- 8500 $ oc exec test-pod-3 -- curl 20.100.0.5:8080 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0Hello Test Pod-2 100 17 100 17 0 0 6805 0 --:--:-- --:--:-- --:--:-- 8500
Expected results:
IPv6 traffic testing should pass when configuring both layer2 and layer3
Additional info: