dnsmasq: add IPv6 nameserver configuration in server mode

When in ra server mode, configure nameservers passed in router
announcements from the dns value (which is already used by odhcpd).

This also fixes FS#677 by using the global IPv6 address of the router
instead of the link local address (if no nameservers are configured).

Signed-off-by: Arjen de Korte <build+lede@de-korte.org>
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> [PKG_RELEASE increase]
openwrt-18.06
Arjen de Korte 2017-05-12 11:26:49 +02:00 committed by Hans Dedecker
parent 74395d97a9
commit 070a46121d
2 changed files with 11 additions and 1 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq PKG_NAME:=dnsmasq
PKG_VERSION:=2.77rc3 PKG_VERSION:=2.77rc3
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/release-candidates PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/release-candidates

View File

@ -470,6 +470,7 @@ dhcp_add() {
config_get ra "$cfg" ra config_get ra "$cfg" ra
config_get ra_management "$cfg" ra_management config_get ra_management "$cfg" ra_management
config_get ra_preference "$cfg" ra_preference config_get ra_preference "$cfg" ra_preference
config_get dns "$cfg" dns
config_list_foreach "$cfg" "interface_name" append_interface_name "$ifname" config_list_foreach "$cfg" "interface_name" append_interface_name "$ifname"
@ -539,6 +540,15 @@ dhcp_add() {
xappend "--dhcp-range=$nettag$dhcp6range,constructor:$ifname,slaac,ra-names,$leasetime" xappend "--dhcp-range=$nettag$dhcp6range,constructor:$ifname,slaac,ra-names,$leasetime"
;; ;;
esac esac
if [ -n "$dns" ]; then
dnss=""
for d in $dns; do append dnss "[$d]" ","; done
else
dnss="[::]"
fi
dhcp_option_append "option6:dns-server,$dnss" "$networkid"
fi fi
dhcp_option_add "$cfg" "$networkid" dhcp_option_add "$cfg" "$networkid"