ISC BIND Inter-Server Communications
The server statement block defines messaging parameters between a pair of DNS servers and may be defined generally within the named.conf file and within a view statement block. As such the server statement must be defined on complementary consistent basis on both servers comprising the pair.
server ip_address [/prefixlen] { | |
[ bogus (yes | no) ;] | |
[ edns (yes | no) ;] | |
[ edns-udp-size integer;] | |
[ edns-version size;] | |
[ keys { key_name; [ key_name; [ ... ]] }; ] | |
[ max-udp-size size;] | |
[ notify-source (ipv4_address | *) [ port (port | *)] [ dscp integer ] ; ] | |
[ notify-source-v6 (ipv6_address | *) [ port (port | *)] [ dscp integer ] ; ] | |
[ padding integer ;] | |
[ provide-ixfr (yes | no) ;] | |
[ query-source ( [ address ] (ipv4_address | *) [ port (port | *) ] ) | ( [ address ] (ipv4_address | *) ) ; ] | |
[ query-source-v6 ( [ address ] (ipv6_address | *) [ port (port | *) ] ) | ( [ address ] (ipv6_address | *) ) ; ] | |
[ request-expire (yes | no) ;] | |
[ request-ixfr (yes | no) ;] | |
[ request-nsid (yes | no) ;] | |
[ send-cookie (yes | no) ;] | |
[ tcp-keepalive (yes | no) ;] | |
[ tcp-only (yes | no) ;] | |
[ transfers number;] | |
[ transfer-format (one-answer | many-answers) ; ] | |
[ transfer-source (ipv4_address | *) [ port (port | *)] [ dscp integer ] ; ] | |
[ transfer-source-v6 (ipv6_address | *) [ port (port | *)] [ dscp integer ] ; ] | |
}; |
All of these statements within the server block are optional so any number of them may be specified. To clarify which server within a pair is being referred to let's assume that servers A and B comprise a pair and the server statement block is configured on server A to govern server A's communications with server B. Considering this the meaning of each is as follows:
- ip_address - the IP address of server B
- prefixlen - CIDR style prefix notation to cover a range of [B] servers in a single server statement block
- bogus - if set to yes then no further queries will be issued to the specified server server B. This can be useful if a given server is distributing bad data. (Default = no)
- edns - if set to yes server A will use EDNS when communicating with server B. (Default = yes).
- edns-udp-size - specifies the UDP packet size for EDNS to be advertised by server A when querying server B.
- edns-version - specifies the highest version of DNS extensions (EDNS) supported by server A.
- keys - specifies the shared secret key name(s) for use when communicating with this server B.
- max-udp-size - defines the maximum UDP packet size advertised by server A when querying server B.
- notify-source - specifies the source IP address and optionally source port number server A will use when issuing a Notify message to server B.
- notify-source-v6 - specifies the source IPv6 address and optionally source port number server A will use when issuing a Notify message to server B.
- padding - server A will add the EDNS Padding option to outgoing messages.
- provide-ixfr - if set to yes server A will respond to an IXFR request from the specified server (B) assuming server A is authoritative for the zone for which the IXFR applies. (Default = yes).
- query-source - specifies the source IP address and optionally source port number server A will use when issuing a query to server B.
- query-source-v6 - specifies the source IPv6 address and optionally source port number server A will use when issuing a query to server B.
- request-expire - if set to yes server A will request the EDNS EXPIRE value when in the role of a slave.
- request-ixfr - if set to yes server A will issue a request for IXFR to server B assuming server B is authoritative for the zone for which the IXFR applies. (Default = yes).
- request-nsid - if set to yes server A will add a name server identifier, NSID, EDNS option to its requests to server B.
- send-cookie - if set to yes server A will add a COOKIE EDNS option to requests sent to server B.
- tcp-keepalive - if set to yes server A will send the TCP Keepalive EDNS option in messages to server B over TCP.
- tcp-only - if set to yes server A will use TCP when communicating with server B. The default is to use UDP then fallback to TCP when a truncated response is received.
- transfers - this parameter enumerates the number of concurrent inbound zone transfers from server B.
- transfer-format - when set to one-answer zone transfers will occur one record at a time with server B; otherwise multiple record transfers will be supported.
- transfer-source - specifies the source IP address and optionally source port number server A will use when conducting a zone transfer with server B.
- transfer-source-v6 - specifies the source IPv6 address and optionally source port number server A will use when conducting a zone transfer with server B.