BIND9ServerHowto
This HOWTO is aimed to at people looking to learn how to configure and maintain a DNS server, such as for a network or to serve DNS zones for a domain name.
Repositories
BIND9 is available in the core Ubuntu repository. No additional repository needs to be enabled for BIND9.
Before we begin, you should be familiar with RootSudo.
Installing BIND9 Server
$ sudo apt-get install bind9
Installing Useful Tools (For Testing)
$ sudo apt-get install bind9-host dnsutils
Installing BIND9 Documentation (Optional)
$ sudo apt-get install bind9-docs
Edit BIND9 Configuration
There are many setups BIND9 may be configured.
The most useful setups are:
Caching Server
This can be useful for a broadband connection to a host or small network. By caching DNS queries, you reduce the bandwidth used and (hopefully) reducing your bandwidth used (and hopefully even your broadband bill!).
Master Server
BIND9 can be used to serve DNS records (groups of records are referred to as zones) for a registered domain name or an imaginary one (but only if used on a restricted network)
Slave Server
A slave DNS server is used to complement a Master DNS server by serving a copy of the zone(s) configured on the Master server. Slave servers are recommended in larger setups (larger networks or on the internet) if you intend to power a registered domain name, since they ensure that your DNS zone is still available, even if your Master server is not online.
Configuration
Configuration files are stored in
/etc/bind/
The main configuration is stored in the following files
/etc/bind/named.conf /etc/bind/named.conf.options /etc/bind/named.conf.local
Caching Server
The default configuration is setup to act as a caching server by default.
All that is required is simply adding the IP numbers of your ISP's DNS servers.
In named.conf.options, uncomment and edit the following section:
forwarders {
1.2.3.4;
5.6.7.8;
};(where 1.2.3.4 and 5.6.7.8 are the IP numbers of your ISP's DNS servers)
Master Server
Slave Server
Run, stop, and restart BIND9
Use the following command to start BIND9 :
$ sudo /etc/init.d/bind9 start
To stop it, use :
$ sudo /etc/init.d/bind9 stop
Finally, to restart it, run :
$ sudo /etc/init.d/bind9 restart
Status
To check the status of your BIND9 installation:
$ host $record localhost
or
$ dig $record @localhost
(where localhost is the system you are setting BIND9 up on. If not localhost, use the appropriate IP number.)
Tips & Tricks
Additional Possibilities
You can monitor your BIND9 server usage by installing the bindgraph package from the Universe (To enable Universe - see AddingRepositoriesHowto) and following configuration details as outlined in bindgraph's README documents
Further Information
Online Recources
[http://www.bind9.net/manuals "ISC's BIND9 Manual"]
[http://www.tldp.org/ TLDP]'s [http://www.tldp.org/HOWTO/DNS-HOWTO.html "DNS HOWTO"] (For General Overview)
Printed Resources
[http://www.oreilly.com/catalog/dns4/index.html "DNS & BIND"] - Paul Albitz & Cricket Liu - 4th Edition - [http://www.oreilly.com/ "O'Reilly Press"] ([http://www.amazon.com/exec/obidos/tg/detail/-/0596001584/ref=pd_sbs_1/002-5464085-2828062?%5Fencoding=UTF8&v=glance Amazon.com])
[http://www.oreilly.com/catalog/dnsbindckbk/inx.html "DNS & BIND Cookbook"] - Cricket Liu - 4th Edition - [http://www.oreilly.com/ "O'Reilly Press"] ([http://www.amazon.com/exec/obidos/tg/detail/-/0596004109/002-5464085-2828062?%5Fencoding=UTF8&v=glance Amazon.com])