diff --git a/src/etc/inc/plugins.inc.d/unbound.inc b/src/etc/inc/plugins.inc.d/unbound.inc index 2b203e92f..34e93e6bb 100644 --- a/src/etc/inc/plugins.inc.d/unbound.inc +++ b/src/etc/inc/plugins.inc.d/unbound.inc @@ -163,16 +163,24 @@ EOF; $bindints = ""; if (!empty($config['unbound']['active_interface'])) { $active_interfaces = explode(",", $config['unbound']['active_interface']); + $loopback = false; foreach ($active_interfaces as $ubif) { $intip = get_interface_ip($ubif); if (!empty($intip)) { $bindints .= "interface: $intip\n"; + if ($intip == '127.0.0.1') { + $loopback = true; + } } $intip = get_interface_ipv6($ubif); if (!empty($intip)) { $bindints .= "interface: $intip\n"; } } + if (!$loopback) { + /* always bind to this loopback IP for system */ + $bindints .= "interface: 127.0.0.1\n"; + } } else { $bindints .= "interface: 0.0.0.0\n"; $bindints .= "interface: ::0\n"; @@ -696,7 +704,7 @@ function unbound_acls_subnets() /* add our networks for active interfaces including localhost */ $subnets = array('127.0.0.1/8', '::1/64'); - foreach ($active_interfaces as $ubif => $ifdesc) { + foreach ($active_interfaces as $ubif => $unused) { foreach (legacy_getall_interface_addresses(get_real_interface($ubif)) as $subnet) { $subnets[] = $subnet; } diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc index 087b9f816..8d03abbbc 100644 --- a/src/etc/inc/system.inc +++ b/src/etc/inc/system.inc @@ -157,10 +157,7 @@ function system_resolvconf_generate($verbose = false) $resolvconf = "domain {$syscfg['domain']}\n"; } - /* XXX Unbound should always bind to loopback like Dnsmasq */ - if (!isset($config['system']['dnslocalhost']) && (isset($config['dnsmasq']['enable']) || - (isset($config['unbound']['enable']) && (empty($config['unbound']['active_interface']) || - in_array('lo0', explode(',', $config['unbound']['active_interface'])))))) { + if (!isset($config['system']['dnslocalhost']) && (isset($config['dnsmasq']['enable']) || isset($config['unbound']['enable']))) { $resolvconf .= "nameserver 127.0.0.1\n"; } diff --git a/src/www/services_dnsmasq.php b/src/www/services_dnsmasq.php index c358a9e0c..da71a1e7e 100644 --- a/src/www/services_dnsmasq.php +++ b/src/www/services_dnsmasq.php @@ -349,7 +349,7 @@ $( document ).ready(function() { - $ifacename): ?>