The idea is to favor name servers in lower bands but to treat servers in the same band as equivalent. If a name server compares two remote servers' RTTs and one is in a lower band, the name server chooses to query the name server in the lower band. But if the remote servers are in the same band, the name server checks to see whether one of the remote servers is topologically closer.
So topology lets you introduce an element of fudge into the process of choosing a name server to query. It lets you favor name servers on certain networks over others. Topology takes as an argument an address match list, where the entries are networks, listed in the order in which the local name server should prefer them (highest to lowest). Therefore:
tells the local name server to prefer name servers on the network 15/8 over other name servers, and name servers on the network 172.88/16 over name servers on networks other than 15/8. So if the name server has a choice between a name server on network 15/8, a name server on 172.88/16, and a name server on 192.168.1/24, assuming all three have RTT values in the same band, it will choose to query the name server on 15/8.topology { 15/8; 172.88/16; };
You can also negate entries in the topology address match list to penalize name servers on certain networks. The earlier in the address match list the negated entry matches, the greater the penalty. You might use this to keep your name server from querying remote name servers on a network that's particularly flaky, for example.