Debugging under anycast
Debugging under anycast can be tricky ,since there are multiple nodes that could potentially reply to given queries. If what you are debugging is an out-of-sync node, you have to find it.
You can use the existing convention of querying for bind.hostname
, which can be configured explicitly to any arbitrary string (it defaults to the result of a call to gethostname()
otherwise):
(toronto shell)$ dig @f.root-servers.net CH TXT hostname.bind +short "YYZ.cf.f.root-servers.org" (tokyo shell)$ dig @f.root-servers.net CH TXT hostname.bind +short "ICN.cf.f.root-servers.org"
The non-BIND specific ID.SERVER label was later specified, which accomplishes the same thing:
(toronto)$ dig @f.root-servers.net CH TXT id.server +short "YYZ.cf.f.root-servers.org" (tokyo)$ dig @f.root-servers.net CH TXT id.server +short "ICN.cf.f.root-servers.org"
This enables you to figure out which specific member of an anycast constellation you are talking to.
Anycast DNS and DDoS mitigation
Anycast is often...