Skip to content

Commit

Permalink
plugin/bind: Discard link-local addresses on binding by interface name (
Browse files Browse the repository at this point in the history
#4531)

* Discard link-local addresses on binding

Signed-off-by: Mohammad Yosefpor <myusefpur@gmail.com>

* Update plugin/bind: README.md

Signed-off-by: Mohammad Yosefpor <myusefpur@gmail.com>

* Except for IPv6 link-local only

Signed-off-by: Mohammad Yosefpor <myusefpur@gmail.com>
  • Loading branch information
m-yosefpor committed Mar 18, 2021
1 parent 1b2f0be commit deb09c8
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
2 changes: 1 addition & 1 deletion plugin/bind/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).

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

Expand Down
4 changes: 3 additions & 1 deletion plugin/bind/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ func setup(c *caddy.Controller) error {
}
for _, addr := range addrs {
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())
}
}
}
}
Expand Down

0 comments on commit deb09c8

Please sign in to comment.