Skip to content

Commit f54b8f9

Browse files
author
Lars Ekman
committed
Filter nodePortAddresses to the proxiers.
Log a warning for addresses of wrong family.
1 parent 96e13de commit f54b8f9

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

pkg/proxy/iptables/proxier.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,11 @@ func NewProxier(ipt utiliptables.Interface,
290290
serviceHealthServer := healthcheck.NewServiceHealthServer(hostname, recorder)
291291

292292
isIPv6 := ipt.IsIPv6()
293+
var incorrectAddresses []string
294+
nodePortAddresses, incorrectAddresses = utilproxy.FilterIncorrectCIDRVersion(nodePortAddresses, isIPv6)
295+
if len(incorrectAddresses) > 0 {
296+
klog.Warning("NodePortAddresses of wrong family; ", incorrectAddresses)
297+
}
293298
proxier := &Proxier{
294299
portsMap: make(map[utilproxy.LocalPort]utilproxy.Closeable),
295300
serviceMap: make(proxy.ServiceMap),
@@ -357,16 +362,17 @@ func NewDualStackProxier(
357362
nodePortAddresses []string,
358363
) (proxy.Provider, error) {
359364
// Create an ipv4 instance of the single-stack proxier
365+
nodePortAddresses4, nodePortAddresses6 := utilproxy.FilterIncorrectCIDRVersion(nodePortAddresses, false)
360366
ipv4Proxier, err := NewProxier(ipt[0], sysctl,
361367
exec, syncPeriod, minSyncPeriod, masqueradeAll, masqueradeBit, localDetectors[0], hostname,
362-
nodeIP[0], recorder, healthzServer, nodePortAddresses)
368+
nodeIP[0], recorder, healthzServer, nodePortAddresses4)
363369
if err != nil {
364370
return nil, fmt.Errorf("unable to create ipv4 proxier: %v", err)
365371
}
366372

367373
ipv6Proxier, err := NewProxier(ipt[1], sysctl,
368374
exec, syncPeriod, minSyncPeriod, masqueradeAll, masqueradeBit, localDetectors[1], hostname,
369-
nodeIP[1], recorder, healthzServer, nodePortAddresses)
375+
nodeIP[1], recorder, healthzServer, nodePortAddresses6)
370376
if err != nil {
371377
return nil, fmt.Errorf("unable to create ipv6 proxier: %v", err)
372378
}

pkg/proxy/ipvs/proxier.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,11 @@ func NewProxier(ipt utiliptables.Interface,
433433

434434
endpointSlicesEnabled := utilfeature.DefaultFeatureGate.Enabled(features.EndpointSliceProxying)
435435

436+
var incorrectAddresses []string
437+
nodePortAddresses, incorrectAddresses = utilproxy.FilterIncorrectCIDRVersion(nodePortAddresses, isIPv6)
438+
if len(incorrectAddresses) > 0 {
439+
klog.Warning("NodePortAddresses of wrong family; ", incorrectAddresses)
440+
}
436441
proxier := &Proxier{
437442
portsMap: make(map[utilproxy.LocalPort]utilproxy.Closeable),
438443
serviceMap: make(proxy.ServiceMap),
@@ -509,12 +514,14 @@ func NewDualStackProxier(
509514

510515
safeIpset := newSafeIpset(ipset)
511516

517+
nodePortAddresses4, nodePortAddresses6 := utilproxy.FilterIncorrectCIDRVersion(nodePortAddresses, false)
518+
512519
// Create an ipv4 instance of the single-stack proxier
513520
ipv4Proxier, err := NewProxier(ipt[0], ipvs, safeIpset, sysctl,
514521
exec, syncPeriod, minSyncPeriod, filterCIDRs(false, excludeCIDRs), strictARP,
515522
tcpTimeout, tcpFinTimeout, udpTimeout, masqueradeAll, masqueradeBit,
516523
localDetectors[0], hostname, nodeIP[0],
517-
recorder, healthzServer, scheduler, nodePortAddresses, kernelHandler)
524+
recorder, healthzServer, scheduler, nodePortAddresses4, kernelHandler)
518525
if err != nil {
519526
return nil, fmt.Errorf("unable to create ipv4 proxier: %v", err)
520527
}
@@ -523,7 +530,7 @@ func NewDualStackProxier(
523530
exec, syncPeriod, minSyncPeriod, filterCIDRs(true, excludeCIDRs), strictARP,
524531
tcpTimeout, tcpFinTimeout, udpTimeout, masqueradeAll, masqueradeBit,
525532
localDetectors[1], hostname, nodeIP[1],
526-
nil, nil, scheduler, nodePortAddresses, kernelHandler)
533+
nil, nil, scheduler, nodePortAddresses6, kernelHandler)
527534
if err != nil {
528535
return nil, fmt.Errorf("unable to create ipv6 proxier: %v", err)
529536
}

0 commit comments

Comments
 (0)