From f75c279b97552118ee06ae660230465d0a469bc8 Mon Sep 17 00:00:00 2001 From: Arne Fitzenreiter Date: Mon, 3 Oct 2016 17:53:13 +0200 Subject: [PATCH] unbound: fix reverse lockup of webif defined hosts and make the own host resolveable. Signed-off-by: Arne Fitzenreiter --- src/initscripts/init.d/unbound | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/initscripts/init.d/unbound b/src/initscripts/init.d/unbound index dd5c85c7b5..d324457d16 100644 --- a/src/initscripts/init.d/unbound +++ b/src/initscripts/init.d/unbound @@ -44,6 +44,15 @@ function cidr() { echo "${cidr}/${nbits}" } +ip_address_revptr() { + local addr=${1} + + local a1 a2 a3 a4 + IFS=. read -r a1 a2 a3 a4 <<< ${addr} + + echo "${a4}.${a3}.${a2}.${a1}.in-addr.arpa" +} + read_name_servers() { local i for i in 1 2; do @@ -101,6 +110,23 @@ update_forwarders() { unbound-control -q forward off } +own_hostname() { + local hostname=$(hostname -f) + # 1.1.1.1 is reserved for green only, skip this + if [ -n "${GREEN_ADDRESS}" -a "${GREEN_ADDRESS}" != "1.1.1.1" ]; then + unbound-control -q local_data "${hostname} ${LOCAL_TTL} IN A ${GREEN_ADDRESS}" + fi + + local address + for address in ${GREEN_ADDRESS} ${BLUE_ADDRESS} ${ORANGE_ADDRESS}; do + [ -n "${address}" ] || continue + [ "${address}" = "1.1.1.1" ] && continue + + address=$(ip_address_revptr ${address}) + unbound-control -q local_data "${address} ${LOCAL_TTL} IN PTR ${hostname}" + done +} + update_hosts() { local enabled address hostname domainname @@ -111,6 +137,10 @@ update_hosts() { local fqdn="${hostname}.${domainname}" unbound-control -q local_data "${fqdn} ${LOCAL_TTL} IN A ${address}" + + # Add RDNS + address=$(ip_address_revptr ${address}) + unbound-control -q local_data "${address} ${LOCAL_TTL} IN PTR ${fqdn}" done < /var/ipfire/main/hosts } @@ -307,6 +337,9 @@ case "$1" in boot_mesg "Starting Unbound DNS Proxy..." loadproc /usr/sbin/unbound || exit $? + # Make own hostname resolveable + own_hostname + # Update any known forwarding name servers update_forwarders -- 2.39.2