BIND Topology Option

The topology option is not yet implemented in BIND 9. However, the concept is that it enables specification of an order of preference the server should use when issuing a query to another server to resolve a query. In the absence of topology implementation, BIND issues a query to the 'closest' name server. The topology option takes an address match list as an argument. As with all address match lists, order is important. IP ranges or addresses are listed in preferential order. Thus the first address match list element will be preferred over the second and so on. Negated elements are given least preference, and addresses not falling within specified elements would be placed after affirmative listings and before negated elements. Consider the following example:

topology { 172.16/12; 192.168.128.0/17; !10.254/16; 192.0.2.128/25;};

The server would prefer to query name servers in the following order: 172.16/12, 192.168.128.0/17, 192.0.2.128/25 then 10.254/16. If NS glue (A) records for the query in question resolved to 199.34.0.201, 10.254.75.104, 192.168.192.34, and 172.19.38.144, the preferred query order would be: 172.19.38.144, followed by 192.168.192.34, then 199.34.0.201, which is unmatched and therefore placed after affirmative networks, and finally our negated match, 10.254.75.104. The default topology address match list is {localhost; localnets;}.