From 63bc96e1b05c1da37b64ea7c782eb432852dfd09 Mon Sep 17 00:00:00 2001 From: lichunlong Date: Thu, 1 Jun 2017 17:22:41 +0800 Subject: [PATCH] fix review --- cmd/kube-proxy/app/server.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/cmd/kube-proxy/app/server.go b/cmd/kube-proxy/app/server.go index bcef3ab4f0e..4b9ea5f5ee4 100644 --- a/cmd/kube-proxy/app/server.go +++ b/cmd/kube-proxy/app/server.go @@ -399,9 +399,13 @@ func NewProxyServer(config *componentconfig.KubeProxyConfiguration, cleanupAndEx proxyMode := getProxyMode(string(config.Mode), iptInterface, iptables.LinuxKernelCompatTester{}) if proxyMode == proxyModeIPTables { glog.V(0).Info("Using iptables Proxier.") - nodeIP := net.ParseIP(config.BindAddress) - if local, _ := isLocalIP(nodeIP); !local { - glog.V(2).Infof("bind-address %s must be local ip", config.BindAddress) + var nodeIP net.IP + if config.BindAddress != "0.0.0.0" { + nodeIP := net.ParseIP(config.BindAddress) + if local := isLocalIP(nodeIP); !local { + return nil, fmt.Errorf("invalid bind-address: %v, it must be a local IP", config.BindAddress) + } + } else { nodeIP = getNodeIP(client, hostname) } if config.IPTables.MasqueradeBit == nil { @@ -705,19 +709,19 @@ func getNodeIP(client clientset.Interface, hostname string) net.IP { return nodeIP } -func isLocalIP(ip net.IP) (bool, error) { +func isLocalIP(ip net.IP) bool { addrs, err := net.InterfaceAddrs() if err != nil { - return false, err + return false } for i := range addrs { intfIP, _, err := net.ParseCIDR(addrs[i].String()) if err != nil { - return false, err + return false } if ip.Equal(intfIP) { - return true, nil + return true } } - return false, nil + return false }