BIND

BIND, or the Berkeley Internet Name Daemon, is a popular free software DNS server, and also one of the most frequently used name servers on the Internet.

With BIND, users are able to set up a name server for managing their own DNS records, for caching DNS or acting as a slave DNS server. The software supports DNSSEC (which provides cryptographic signatures on the DNS records as a means to authenticate the integrity and ownership of the records) natively.

Installing BIND
BIND is offered through the package. Please check the USE flags before installing (you can use equery u bind for an overview of available USE flags and their meaning). As BIND is a popular name server software, it is also a popular target for hackers and malicious groups, so it is wise to securely configure BIND - which includes building in support for only those features you are planning to use.

If you are planning on using BIND in a chrooted environment, edit and set the CHROOT variable accordingly. Check the comments as well, as they provide information on automatically creating the chrooted environment using emerge --config.

Managing BIND
Most management of BIND is done through its rndc command, although you can use the init script as well. Next to the default start/stop/restart routines, it also offers the following functionality:


 * checkconfig validates the configuration file ( for correct syntax
 * checkzones validates the zone files for correct syntax
 * reload reloads the zone files without restarting the named daemon itself

Easy Caching DNS

 * emerge bind
 * rc-update add named default
 * edit /etc/conf.d/net and add dns_servers="127.0.0.1"
 * as root edit /etc/bind/named.conf add your internet services dns to line 80 & 81 (& 82 following syntax if you have a third) (make sure to remove the // before the ip address to uncomment and use the dns)
 * reboot
 * look up google.com (or any other site on the internet) to test the internet works and then run "dig google.com" to pull google into your cache, and again "dig google.com" to show low latency from local entries pulled from bind.