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.