From 41ba76d23e79791f9de4e8b3857bac17eea2d15d Mon Sep 17 00:00:00 2001 From: Lars Ekman Date: Tue, 9 Jan 2024 07:15:31 +0100 Subject: [PATCH] kube-proxy: don't use invalid cidrs in unit test CIDRs like 192.168.200.3/24 and fd00:20::1/64 replaced with 192.168.200.0/24 and fd00:20::/64 --- cmd/kube-proxy/app/server_linux_test.go | 54 ++++++++++++------------- pkg/proxy/util/iptables/traffic_test.go | 14 +++---- pkg/proxy/util/utils_test.go | 36 ++++++++--------- 3 files changed, 50 insertions(+), 54 deletions(-) diff --git a/cmd/kube-proxy/app/server_linux_test.go b/cmd/kube-proxy/app/server_linux_test.go index 6e6abc76bae..66664d0cc47 100644 --- a/cmd/kube-proxy/app/server_linux_test.go +++ b/cmd/kube-proxy/app/server_linux_test.go @@ -129,9 +129,9 @@ func Test_getLocalDetector(t *testing.T) { { name: "LocalModeClusterCIDR, IPv6 cluster", mode: proxyconfigapi.LocalModeClusterCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002::1234:abcd:ffff:c0a8:101/64"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002:0:0:1234::/64"}, family: v1.IPv6Protocol, - expected: resolveLocalDetector(t)(proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:c0a8:101/64")), + expected: resolveLocalDetector(t)(proxyutiliptables.NewDetectLocalByCIDR("2002:0:0:1234::/64")), errExpected: false, }, { @@ -145,7 +145,7 @@ func Test_getLocalDetector(t *testing.T) { { name: "LocalModeClusterCIDR, IPv4 cluster with IPv6 config", mode: proxyconfigapi.LocalModeClusterCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002::1234:abcd:ffff:c0a8:101/64"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002:0:0:1234::/64"}, family: v1.IPv4Protocol, expected: proxyutiliptables.NewNoOpLocalDetector(), errExpected: false, @@ -153,7 +153,7 @@ func Test_getLocalDetector(t *testing.T) { { name: "LocalModeClusterCIDR, IPv4 kube-proxy in dual-stack IPv6-primary cluster", mode: proxyconfigapi.LocalModeClusterCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002::1234:abcd:ffff:c0a8:101/64,10.0.0.0/14"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002:0:0:1234::/64,10.0.0.0/14"}, family: v1.IPv4Protocol, expected: resolveLocalDetector(t)(proxyutiliptables.NewDetectLocalByCIDR("10.0.0.0/14")), errExpected: false, @@ -179,10 +179,10 @@ func Test_getLocalDetector(t *testing.T) { { name: "LocalModeNodeCIDR, IPv6 cluster", mode: proxyconfigapi.LocalModeNodeCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002::1234:abcd:ffff:c0a8:101/64"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002:0:0:1234::/64"}, family: v1.IPv6Protocol, - expected: resolveLocalDetector(t)(proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:c0a8:101/96")), - nodePodCIDRs: []string{"2002::1234:abcd:ffff:c0a8:101/96"}, + expected: resolveLocalDetector(t)(proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:0:0/96")), + nodePodCIDRs: []string{"2002::1234:abcd:ffff:0:0/96"}, errExpected: false, }, { @@ -197,19 +197,19 @@ func Test_getLocalDetector(t *testing.T) { { name: "LocalModeNodeCIDR, IPv4 cluster with IPv6 config", mode: proxyconfigapi.LocalModeNodeCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002::1234:abcd:ffff:c0a8:101/64"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002:0:0:1234::/64"}, family: v1.IPv4Protocol, expected: proxyutiliptables.NewNoOpLocalDetector(), - nodePodCIDRs: []string{"2002::1234:abcd:ffff:c0a8:101/96"}, + nodePodCIDRs: []string{"2002::1234:abcd:ffff:0:0/96"}, errExpected: false, }, { name: "LocalModeNodeCIDR, IPv6 kube-proxy in dual-stack IPv4-primary cluster", mode: proxyconfigapi.LocalModeNodeCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "10.0.0.0/14,2002::1234:abcd:ffff:c0a8:101/64"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "10.0.0.0/14,2002:0:0:1234::/64"}, family: v1.IPv6Protocol, - expected: resolveLocalDetector(t)(proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:c0a8:101/96")), - nodePodCIDRs: []string{"10.0.0.0/24", "2002::1234:abcd:ffff:c0a8:101/96"}, + expected: resolveLocalDetector(t)(proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:0:0/96")), + nodePodCIDRs: []string{"10.0.0.0/24", "2002::1234:abcd:ffff:0:0/96"}, errExpected: false, }, { @@ -307,19 +307,19 @@ func Test_getDualStackLocalDetectorTuple(t *testing.T) { { name: "LocalModeClusterCIDR, dual-stack IPv4-primary cluster", mode: proxyconfigapi.LocalModeClusterCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "10.0.0.0/14,2002::1234:abcd:ffff:c0a8:101/64"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "10.0.0.0/14,2002:0:0:1234::/64"}, expected: resolveDualStackLocalDetectors(t)( proxyutiliptables.NewDetectLocalByCIDR("10.0.0.0/14"))( - proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:c0a8:101/64")), + proxyutiliptables.NewDetectLocalByCIDR("2002:0:0:1234::/64")), errExpected: false, }, { name: "LocalModeClusterCIDR, dual-stack IPv6-primary cluster", mode: proxyconfigapi.LocalModeClusterCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002::1234:abcd:ffff:c0a8:101/64,10.0.0.0/14"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002:0:0:1234::/64,10.0.0.0/14"}, expected: resolveDualStackLocalDetectors(t)( proxyutiliptables.NewDetectLocalByCIDR("10.0.0.0/14"))( - proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:c0a8:101/64")), + proxyutiliptables.NewDetectLocalByCIDR("2002:0:0:1234::/64")), errExpected: false, }, { @@ -334,10 +334,10 @@ func Test_getDualStackLocalDetectorTuple(t *testing.T) { { name: "LocalModeClusterCIDR, single-stack IPv6 cluster", mode: proxyconfigapi.LocalModeClusterCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002::1234:abcd:ffff:c0a8:101/64"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002:0:0:1234::/64"}, expected: [2]proxyutiliptables.LocalTrafficDetector{ proxyutiliptables.NewNoOpLocalDetector(), - resolveLocalDetector(t)(proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:c0a8:101/64"))}, + resolveLocalDetector(t)(proxyutiliptables.NewDetectLocalByCIDR("2002:0:0:1234::/64"))}, errExpected: false, }, { @@ -351,21 +351,21 @@ func Test_getDualStackLocalDetectorTuple(t *testing.T) { { name: "LocalModeNodeCIDR, dual-stack IPv4-primary cluster", mode: proxyconfigapi.LocalModeNodeCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "10.0.0.0/14,2002::1234:abcd:ffff:c0a8:101/64"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "10.0.0.0/14,2002:0:0:1234::/64"}, expected: resolveDualStackLocalDetectors(t)( proxyutiliptables.NewDetectLocalByCIDR("10.0.0.0/24"))( - proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:c0a8:101/96")), - nodePodCIDRs: []string{"10.0.0.0/24", "2002::1234:abcd:ffff:c0a8:101/96"}, + proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:0:0/96")), + nodePodCIDRs: []string{"10.0.0.0/24", "2002::1234:abcd:ffff:0:0/96"}, errExpected: false, }, { name: "LocalModeNodeCIDR, dual-stack IPv6-primary cluster", mode: proxyconfigapi.LocalModeNodeCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002::1234:abcd:ffff:c0a8:101/64,10.0.0.0/14"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002:0:0:1234::/64,10.0.0.0/14"}, expected: resolveDualStackLocalDetectors(t)( proxyutiliptables.NewDetectLocalByCIDR("10.0.0.0/24"))( - proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:c0a8:101/96")), - nodePodCIDRs: []string{"2002::1234:abcd:ffff:c0a8:101/96", "10.0.0.0/24"}, + proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:0:0/96")), + nodePodCIDRs: []string{"2002::1234:abcd:ffff:0:0/96", "10.0.0.0/24"}, errExpected: false, }, { @@ -381,11 +381,11 @@ func Test_getDualStackLocalDetectorTuple(t *testing.T) { { name: "LocalModeNodeCIDR, single-stack IPv6 cluster", mode: proxyconfigapi.LocalModeNodeCIDR, - config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002::1234:abcd:ffff:c0a8:101/64"}, + config: &proxyconfigapi.KubeProxyConfiguration{ClusterCIDR: "2002:0:0:1234::/64"}, expected: [2]proxyutiliptables.LocalTrafficDetector{ proxyutiliptables.NewNoOpLocalDetector(), - resolveLocalDetector(t)(proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:c0a8:101/96"))}, - nodePodCIDRs: []string{"2002::1234:abcd:ffff:c0a8:101/96"}, + resolveLocalDetector(t)(proxyutiliptables.NewDetectLocalByCIDR("2002::1234:abcd:ffff:0:0/96"))}, + nodePodCIDRs: []string{"2002::1234:abcd:ffff:0:0/96"}, errExpected: false, }, { diff --git a/pkg/proxy/util/iptables/traffic_test.go b/pkg/proxy/util/iptables/traffic_test.go index f60169de9da..1741261a352 100644 --- a/pkg/proxy/util/iptables/traffic_test.go +++ b/pkg/proxy/util/iptables/traffic_test.go @@ -48,7 +48,7 @@ func TestNewDetectLocalByCIDR(t *testing.T) { errExpected: false, }, { - cidr: "2002::1234:abcd:ffff:c0a8:101/64", + cidr: "2002:0:0:1234::/64", errExpected: false, }, { @@ -56,11 +56,7 @@ func TestNewDetectLocalByCIDR(t *testing.T) { errExpected: true, }, { - cidr: "2002::1234:abcd:ffff:c0a8:101", - errExpected: true, - }, - { - cidr: "", + cidr: "2002:0:0:1234::", errExpected: true, }, { @@ -94,9 +90,9 @@ func TestDetectLocalByCIDR(t *testing.T) { expectedIfNotLocalOutput: []string{"!", "-s", "10.0.0.0/14"}, }, { - cidr: "2002::1234:abcd:ffff:c0a8:101/64", - expectedIfLocalOutput: []string{"-s", "2002::1234:abcd:ffff:c0a8:101/64"}, - expectedIfNotLocalOutput: []string{"!", "-s", "2002::1234:abcd:ffff:c0a8:101/64"}, + cidr: "2002:0:0:1234::/64", + expectedIfLocalOutput: []string{"-s", "2002:0:0:1234::/64"}, + expectedIfNotLocalOutput: []string{"!", "-s", "2002:0:0:1234::/64"}, }, } for _, c := range cases { diff --git a/pkg/proxy/util/utils_test.go b/pkg/proxy/util/utils_test.go index 537e77570ae..a589171adf4 100644 --- a/pkg/proxy/util/utils_test.go +++ b/pkg/proxy/util/utils_test.go @@ -372,58 +372,58 @@ func TestMapCIDRsByIPFamily(t *testing.T) { }, { desc: "want IPv4 and receive IPv6", - ipString: []string{"fd00:20::1/64"}, + ipString: []string{"fd00:20::/64"}, wantIPv6: false, expectCorrect: nil, - expectIncorrect: []string{"fd00:20::1/64"}, + expectIncorrect: []string{"fd00:20::/64"}, }, { desc: "want IPv6 and receive IPv4", - ipString: []string{"192.168.200.2/24"}, + ipString: []string{"192.168.200.0/24"}, wantIPv6: true, expectCorrect: nil, - expectIncorrect: []string{"192.168.200.2/24"}, + expectIncorrect: []string{"192.168.200.0/24"}, }, { desc: "want IPv6 and receive IPv4 and IPv6", - ipString: []string{"192.168.200.2/24", "192.1.34.23/24", "fd00:20::1/64", "2001:db9::3/64"}, + ipString: []string{"192.168.200.0/24", "192.1.34.0/24", "fd00:20::/64", "2001:db9::/64"}, wantIPv6: true, - expectCorrect: []string{"fd00:20::1/64", "2001:db9::3/64"}, - expectIncorrect: []string{"192.168.200.2/24", "192.1.34.23/24"}, + expectCorrect: []string{"fd00:20::/64", "2001:db9::/64"}, + expectIncorrect: []string{"192.168.200.0/24", "192.1.34.0/24"}, }, { desc: "want IPv4 and receive IPv4 and IPv6", - ipString: []string{"192.168.200.2/24", "192.1.34.23/24", "fd00:20::1/64", "2001:db9::3/64"}, + ipString: []string{"192.168.200.0/24", "192.1.34.0/24", "fd00:20::/64", "2001:db9::/64"}, wantIPv6: false, - expectCorrect: []string{"192.168.200.2/24", "192.1.34.23/24"}, - expectIncorrect: []string{"fd00:20::1/64", "2001:db9::3/64"}, + expectCorrect: []string{"192.168.200.0/24", "192.1.34.0/24"}, + expectIncorrect: []string{"fd00:20::/64", "2001:db9::/64"}, }, { desc: "want IPv4 and receive IPv4 only", - ipString: []string{"192.168.200.2/24", "192.1.34.23/24"}, + ipString: []string{"192.168.200.0/24", "192.1.34.0/24"}, wantIPv6: false, - expectCorrect: []string{"192.168.200.2/24", "192.1.34.23/24"}, + expectCorrect: []string{"192.168.200.0/24", "192.1.34.0/24"}, expectIncorrect: nil, }, { desc: "want IPv6 and receive IPv4 only", - ipString: []string{"192.168.200.2/24", "192.1.34.23/24"}, + ipString: []string{"192.168.200.0/24", "192.1.34.0/24"}, wantIPv6: true, expectCorrect: nil, - expectIncorrect: []string{"192.168.200.2/24", "192.1.34.23/24"}, + expectIncorrect: []string{"192.168.200.0/24", "192.1.34.0/24"}, }, { desc: "want IPv4 and receive IPv6 only", - ipString: []string{"fd00:20::1/64", "2001:db9::3/64"}, + ipString: []string{"fd00:20::/64", "2001:db9::/64"}, wantIPv6: false, expectCorrect: nil, - expectIncorrect: []string{"fd00:20::1/64", "2001:db9::3/64"}, + expectIncorrect: []string{"fd00:20::/64", "2001:db9::/64"}, }, { desc: "want IPv6 and receive IPv6 only", - ipString: []string{"fd00:20::1/64", "2001:db9::3/64"}, + ipString: []string{"fd00:20::/64", "2001:db9::/64"}, wantIPv6: true, - expectCorrect: []string{"fd00:20::1/64", "2001:db9::3/64"}, + expectCorrect: []string{"fd00:20::/64", "2001:db9::/64"}, expectIncorrect: nil, }, }