Rndc

rndc is the tool used to control BIND 9+ named and abbriviates Remote Name Dæmon Control. BIND 8 and prior had a ndc program, which was very similar, but rndc has the added advantage of being able to function over a network—thus: "remotely". This offers certain advantages.

Server Config
The BIND server that you want to be controlling via rndc must be configured in a way that matches the config of rndc on the machine you're attempting to run it from. This is imperative. If the config is out of sync, badness will happen. The most important matching aspect should be the port and key. The key is a shared secret between rndc and BIND, and thus must be the same on the server and the rndc.

rndc.conf
This file is located at /etc/bind/rndc.conf and is the primary config file for the rndc tool. The config file is not too large, but must define keys, which must be correct.

Defaults
First, set defaults:

Servers
Set up your servers. Essentially, you're setting up options for each server. The best option to set up is the key to use, so you don't have to specify that on the command line. You can also specify the port.

Keys
Then the final, all important key section. For now, i'm gonna fake these keys, cause i'm not sure of the security of this wiki.

Commands
rndc has many useful commands. You can see the whole list by typing rndc at the shell, with no arguments at all

Here are the important ones:

status
This command checks for the oprating status of the system. A good test to see if everythign is working. Harmless

reload
reload on it's own reloads the config, and all zones. reload somzeone.tld causes only that zone to be reloaded. probably useful on sites with a million zones. doesn't matter for us.

reconfig
Reload configuration file and new zones only.

stats
Write server statistics to the statistics file; often /var/lib/bind/named.stats

refresh
Schedule immediate maintenance for a zone.

retransfer
Retransfer a single zone without checking serial number.

flush
Flushes all of the server's caches.