Command
hollow trace
Resolves through the same code path as resolve and renders the delegation chain that walk actually took. Every line comes from a step the resolver emitted as it sent the packet, so a trace and a resolve cannot disagree about what happened.
Usage
hollow trace [flags] <name> [type]
Flags
--asciidraw the tree with ASCII instead of box-drawing characters
--cachecache within this one walk, so a CNAME chain reuses the delegations it already found
--dns0x20default true
randomise the case of the query name, and refuse a reply that does not echo it
--hints <string>root hints in named.root format; default is the compiled-in list
--jsonoutput the steps as JSON
--port <uint>default 53
port to query
--timeout <duration>default 3s
deadline for one exchange with one server
Real output
Captured from the binary, verbatim. Timings and addresses are whatever that particular run returned.
$ hollow trace www.github.comwww.github.com. A. (root)+- 193.0.14.129:53 17ms udp, referral, 839 B, 13 NS + 26 glue, 1 of 26 servers asked as WWW.GitHUB.com. com. +- c.gtld-servers.net. (192.26.92.30:53) 85ms udp, referral, 310 B, 8 NS + 2 glue, 1 of 26 servers asked as wWw.gItHuB.cOm. github.com. +- ns-421.awsdns-52.com. (205.251.193.165:53) 35ms udp, answer, 296 B, 1 of 2 servers asked as www.gIthuB.coM.www.github.com. 3600 IN CNAME github.com.github.com. 60 IN A 20.207.73.823 queries, 3 zones, 0 answers from cache, 136ms