Comment 0 for bug 1091602

Revision history for this message
Thomas Hood (jdthood) wrote : Please add resolvconf hook script to generate dynamic forwarders list

This is a wish. It is requested that the bind9 package include a resolvconf hook script /etc/resolvconf/update.d/bind9 which writes a forwarders{} statement to /var/run/named/forwarders based on the nameserver information in resolvconf's database. Then in order to use named in whole or in part as a forwarding nameserver the administrator can simply modify named.conf so that the latter includes /var/run/named/forwarders at the right place in the file. If this inclusion could be controlled by a setting in, e.g., /etc/default/bind9, then that would be even nicer.

The file /etc/resolvconf/update.d/bind included in resolvconf versions 1.52 and earlier illustrates how such a hook script should be written. The latter file was written for BIND 8 and worked well; but due to limitations in BIND 8 it had to generate a whole "options" statement instead of just the "forwarders" part, which was less nice.

I am prepared to write the needed script for BIND 9 and attach it here.

--- BACKGROUND INFORMATION ---

As of Ubuntu 12.04, nameserver information is handled by resolvconf in both the Server and Desktop editions of Ubuntu. Resolvconf maintains a database of nameserver information, filed by interface name and configuration agent. This is the information that is needed if named is to be used in whole or in part as a forwarding nameserver.

BIND 9.7.x manual section 1.4.5.1: "__Forwarding__. Even a caching name server does not necessarily perform the complete recursive lookup itself. Instead, it can forward some or all of the queries that it cannot satisfy from its cache to another caching name server, commonly referred to as a forwarder. There may be one or more forwarders, and they are queried in turn until the list is exhausted or an answer is found. Forwarders are typically used when you do not wish all the servers at a given site to interact directly with the rest of the Internet servers. A typical scenario would involve a number of internal DNS servers and an Internet firewall. Servers unable to pass packets through the firewall would forward to the server that can do it, and that server would query the Internet DNS servers on the internal server’s behalf."

Currently it's possible to configure named to use a static list of forwarders, but to make use of a dynamic list a resolvconf hook script is needed.