Level. Same as previous option only this applies to the WAN. WAN are
inferred by a UCI `config dhcp` entry that contains the 'option ignore 1'.
+ option dns_assist 'none'
+ Program Name. Use DNS helpers found on local host and match to their UCI.
+ Only program 'ipset-dns' is supported so far. NSD and Bind might be useful
+ but they don't have UCI to parse.
+
option dns64 '0'
Boolean. Enable DNS64 through Unbound in order to bridge networks that are
IPV6 only and IPV4 only (see RFC6052).
UB_D_CONTROL=0
UB_D_DOMAIN_TYPE=static
UB_D_DHCP_LINK=none
+UB_D_DNS_ASSIST=none
UB_D_EXTRA_DNS=0
UB_D_LAN_FQDN=0
UB_D_PRIV_BLCK=1
##############################################################################
+unbound_assistant() {
+ local port=53000
+
+ case "$UB_D_DNS_ASSIST" in
+ ipset-dns)
+ port=$( uci_get ipset-dns.@ipset-dns[0].port )
+
+ if [ ! -f "$UB_ASSIST_CONF" ] \
+ && [ $port -gt 0 ] && [ $port -lt 65535 ] ; then
+ {
+ echo "# $UB_ASSIST_CONF generated by UCI $( date -Is )"
+ echo "forward-zone:"
+ echo " name: ."
+ echo " forward-addr: 127.0.0.1@$port"
+ echo " forward-first: no"
+ } > $UB_ASSIST_CONF
+ fi
+ ;;
+
+ nsd)
+ echo "# Sorry, NSD does not have UCI to read and link." >> $UB_ASSIST_CONF
+ ;;
+
+ bind)
+ echo "# Sorry, Bind does not have UCI to read and link." >> $UB_ASSIST_CONF
+ ;;
+ esac
+}
+
+##############################################################################
+
unbound_zone() {
local cfg=$1
local servers_ip=""
fi
+ if [ "$UB_B_IF_AUTO" -gt 0 ] ; then
+ echo " interface-automatic: yes" >> $UB_CORE_CONF
+ fi
+
+
+ case "$UB_D_DNS_ASSIST" in
+ bind|ipset-dns|nsd)
+ echo " do-not-query-localhost: no" >> $UB_CORE_CONF
+ ;;
+ esac
+
+
case "$UB_D_PROTOCOL" in
ip4_only)
{
esac
- if [ "$UB_B_IF_AUTO" -gt 0 ] ; then
- echo " interface-automatic: yes" >> $UB_CORE_CONF
- fi
-
-
case "$UB_D_RESOURCE" in
# Tiny - Unbound's recommended cheap hardware config
tiny) rt_mem=1 ; rt_conn=2 ; rt_buff=1 ;;
config_get UB_D_CONTROL "$cfg" unbound_control 0
config_get UB_D_DOMAIN_TYPE "$cfg" domain_type static
config_get UB_D_DHCP_LINK "$cfg" dhcp_link none
+ config_get UB_D_DNS_ASSIST "$cfg" dns_assist none
config_get UB_D_EXTRA_DNS "$cfg" add_extra_dns 0
config_get UB_D_LAN_FQDN "$cfg" add_local_fqdn 0
config_get UB_D_PRIV_BLCK "$cfg" rebind_protection 1
fi
+ if [ "$UB_D_DNS_ASSIST" = "none" ] ; then
+ UB_D_DNS_ASSIST=none
+
+ elif [ ! -x /usr/sbin/bind ] || [ ! -x /etc/init.d/bind ] \
+ || [ ! -x /usr/sbin/nsd ] || [ ! -x /etc/init.d/nsd ] \
+ || [ ! -x /usr/sbin/ipset-dns ] || [ ! -x /etc/init.d/ipset-dns ] ; then
+ UB_D_DNS_ASSIST=none
+ fi
+
+
if [ "$UB_D_DHCP_LINK" = "dnsmasq" ] ; then
if [ ! -x /usr/sbin/dnsmasq ] || [ ! -x /etc/init.d/dnsmasq ] ; then
UB_D_DHCP_LINK=none
fi
+ if [ -f "$UB_ASSIST_CONF" ] ; then
+ # UCI found link to DNS helpers
+ cat $UB_ASSIST_CONF >> $UB_TOTAL_CONF
+ rm $UB_ASSIST_CONF
+ fi
+
+
if [ -f "$UB_EXT_CONF" ] ; then
{
# Pull your own extend feature clauses here
unbound_hostname
# control:
unbound_control
+ # assistants
+ unbound_assistant
# dnsmasq
dnsmasq_link
# merge