Commit deb09c89 authored by Mohammad Yosefpor's avatar Mohammad Yosefpor Committed by GitHub

plugin/bind: Discard link-local addresses on binding by interface name (#4531)

* Discard link-local addresses on binding
Signed-off-by: default avatarMohammad Yosefpor <myusefpur@gmail.com>

* Update plugin/bind: README.md
Signed-off-by: default avatarMohammad Yosefpor <myusefpur@gmail.com>

* Except for IPv6 link-local only
Signed-off-by: default avatarMohammad Yosefpor <myusefpur@gmail.com>
parent 1b2f0bef
...@@ -13,7 +13,7 @@ If several addresses are provided, a listener will be open on each of the IP pro ...@@ -13,7 +13,7 @@ If several addresses are provided, a listener will be open on each of the IP pro
Each address has to be an IP or name of one of the interfaces of the host. Bind by interface name, binds to the IPs on that interface at the time of startup or reload (reload will happen with a SIGHUP or if the config file changes). Each address has to be an IP or name of one of the interfaces of the host. Bind by interface name, binds to the IPs on that interface at the time of startup or reload (reload will happen with a SIGHUP or if the config file changes).
If the given argument is an interface name, and that interface has serveral IP addresses, CoreDNS will listen on all of the interface IP addresses (including IPv4 and IPv6). If the given argument is an interface name, and that interface has serveral IP addresses, CoreDNS will listen on all of the interface IP addresses (including IPv4 and IPv6), except for IPv6 link-local addresses on that interface.
## Syntax ## Syntax
......
...@@ -37,7 +37,9 @@ func setup(c *caddy.Controller) error { ...@@ -37,7 +37,9 @@ func setup(c *caddy.Controller) error {
} }
for _, addr := range addrs { for _, addr := range addrs {
if ipnet, ok := addr.(*net.IPNet); ok { if ipnet, ok := addr.(*net.IPNet); ok {
all = append(all, ipnet.IP.String()) if ipnet.IP.To4() != nil || (!ipnet.IP.IsLinkLocalMulticast() && !ipnet.IP.IsLinkLocalUnicast()) {
all = append(all, ipnet.IP.String())
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment