bind

Published: Tuesday, 3 July 2012

named error (network unreachable) resolving

If you are seeing a lot of “network unreachable” errors such as ones from the log snippet below,

Jul  3 14:29:33 turtle named[1646]: error (network unreachable) resolving 'magicmonster.co.uk/AAAA/IN': 2001:41d0:1:4a8c::1#53

then it may be because IPV6 is not yet supported.

To disable IPV6, (and rely on IPV4), on Ubuntu edit the file /etc/default/bind9, and add the -4 switch to the options.

My config file now looks like:

# run resolvconf?
RESOLVCONF=no

# startup options for the server
OPTIONS="-4 -u bind"

blackhole domains

You can block certain servers by configuring the wrong IP in your DNS server. This is useful for unwanted domains such as ad servers.

Below is the contents of /etc/bind/blackhole.zone:

$TTL 1W
@               IN SOA blackhole. blackhole. (
                                1              ; serial
                                2D              ; refresh
                                4H              ; retry
                                6W              ; expiry
                                1W )            ; minimum

                IN NS           blackhole.
                   A            127.0.0.1
*               IN A            127.0.0.1

The * is a wildcard match for any subdomains. Now all domains will resolve to 127.0.0.1.

I’m not sure why I needed to specify “blackhole.” twice.. but it wasn’t parsing the 2D (2 day) period without it.

To map the domains you can add the following to the local bind config:

zone "example.com" {
  type master;
  file "/etc/bind/blackhole.zone";
  notify false;
};

Reverse IP

This converts an IP address into a host name.

First, identify the 4 octets of your IP. In this example we’ll use the IP 11.22.33.44 and host name reverse.example.com. The 4 octets are 11, 22, 33 and 44.

Create a file called /etc/bind/db.11.22.33, and add the contents below:

;
; BIND reverse file for server
;
$TTL	604800
@	IN	SOA	ns.example.com. example.com. (
			      2		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	ns.
44	IN	PTR	example.com.

Next, edit /etc/bind/named.conf.local. This file exists in the Ubuntu distribution. Append the following

zone "33.22.11.in-addr.arpa" {
  type master;
  notify no;
  file "/etc/bind/db.11.22.33";
};

Restart bind.

Zone transfers

To enable a secondary name server not hosted by you, you have to allow zone transfers. To check this, run

dig axfr example.com @ns.primary.example.com

where example.com is your domain, and ns.primary.example.com is your primary name server.

Logging queries

To log queries into the syslog, run

rndc querylog