Controlling Multiple named Processes with rndc
5.11.1 Problem
You want to control multiple named processes running on the same host with rndc.
5.11.2 Solution
Since rndc only supports TCP-based communications with name servers, configure the name servers to listen on different addresses for control messages. For example, if your host runs two named processes -- one listening on 192.168.0.1 for queries, the other listening on 192.168.0.2 -- you might configure the first one with this controls statement in its named.conf file:
controls { inet 192.168.0.1 allow { localnets; } keys { rndc-key; }; };
The second might have this controls statement in named.conf:
controls { inet 192.168.0.2 allow { localnets; } keys { rndc-key; }; };
If rndc-key is rndc's default key, you can control the two named processes with:
# rndc -s 192.168.0.1
Or:
# rndc -s 192.168.0.2
5.11.3 Discussion
If you want to use different keys to control the two processes, you can add two server statements to rndc.conf, specifying the proper key to use for each.
You could also set up the two name servers to listen on different control ports, and then use the port server substatement in rndc.conf to distinguish between the two. For example:
server ns1.foo.example { port 953; key "rndc-key"; }; server ns1-int.foo.example { port 1053; key "rndc-key"; };
This assumes that both ns1.foo.example and ns1-int.foo.example map to the same address.
5.11.4 See Also
Section 3.4 for configuring rndc to work with a remote name server using the rndc.conf's server statement.