DNSWALK(1)
π DNSWALK(1) π
hiii bestie, welcome to dnswalk(1) from the General Commands Manual β it's a whole DNS database debugger and honestly? it's giving detective energy. it goes and interrogates your zone files for you. no cap. π
β¨ NAME β¨
dnswalk β A DNS database debugger π
π¦ SYNOPSIS π¦
dnswalk [ -adilrfFm ] domain.
πΈ DESCRIPTION πΈ
so dnswalk is a DNS debugger, periodt. what it does is perform zone transfers of the domains you specify, and then it checks that database in soooo many ways β both for internal consistency and for correctness according to accepted practices with the Domain Name System. it is thorough. it is nosy. it is your bestie who reads your essay and circles everything. π«Ά
the domain name you put on the command line MUST end with a . β literally do not forget this, bestie, it's the number one thing people mess up π
you can hand it a forward domain, like:
dnswalk podunk.edu.
or a reverse domain, like:
dnswalk 3.2.1.in-addr.arpa.
both work. slay. π
π OPTIONS π
-rβ Recursively descend sub-domains of the specified domain. Use with care. π-aβ Turn on warning of duplicate A records. (see below)-dβ Print debugging and 'status' information tostderr. (Use only if redirecting stdout) See DIAGNOSTICS section. π-mβ Perform checks only if the zone has been modified since the previous run. lazy girl summer but make it efficient β¨-Fβ perform "fascist" checking. When checking an A record, compare the PTR name for each IP address with the forward name and report mismatches. (see below) I recommend you try this option at least once to see what sorts of errors pop up - you might be surprised!. π³-iβ Suppress check for invalid characters in a domain name. (see below)-lβ Perform "lame delegation" checking. For every NS record, check to see that the listed host is indeed returning authoritative answers for this domain.
π ERRORS π
okay so here's the whole list of error messages that dnswalk will return if it sees a potential problem with the database. Duplicate messages will be suppressed automatically for each zone. π
Error messages are prefixed by a keyword indicating the message type:
"WARN"β possible data problem"FAIL"β failure to access data"BAD"β invalid data
and get this: dnswalk exits with a return code equal to the number of "BAD" errors. so like, the exit code IS the drama counter. π
X PTR Y: unknown hostβXis a PTR record toY, butYis not a valid host (no A record). These are often left over from when someone deleted a host from the DNS and forgot to delete the PTR record. πX PTR Y: A record not foundβXis a PTR record toY, but the IP address associated with the PTR record is not listed as an address forY. There should be an A record for every valid IP address for a host. Many Internet services will not talk to you if you have mismatched PTR records. π«X PTR Y: CNAME (to Z)βXis a PTR record toY, butYis a CNAME toZ. PTR records MUST point to the canonical name of a host, not an alias. periodt.X CNAME Y: unknown hostβXis aliased toY, butYis not a valid host (no A record).X CNAME Y: CNAME (to Z)βXis aliased toY, butYis aliased toZ. CNAMEs should not be chained. no chain letters bestie πX MX Y: unknown hostβXis an MX toY, butYis not a valid host (no A record).X MX Y: CNAME (to Z)βXis an MX toY, butYis an alias forZ. MX records must point to the canonical name, not an alias.X A Y: no PTR recordβXhas an IP addressY, but there is no PTR record to map the IP addressYback to a hostname (usuallyX). Many Internet servers (such as anonymous FTP servers) will not talk to addresses that don't have PTR records. πwarning: X has only one authoritative nameserverβ Zones must have at least one authoritative nameserver, in case one is down or unreachable. Make sure the parent and child domains list all authoritative nameservers for a zone.Cannot check X: no available nameservers!β TheXzone was delegated with NS records but all the nameservers for the zone are either unavailable or say that they have no data for the zone (are lame). Verify that theXzone isn't a typo, and if so make sure that all the listed nameservers are configured to answer with data for the zone.X: invalid character(s) in nameβ Allowable characters in a domain name are the ASCII lettersathroughZthe digits0through9, and the"-"character. A"."may be used only as a domain separator. (checking can be suppressed with-i)X: domain occurred twice, forgot trailing '.'?β A sanity check which looks for"dom.ain.dom.ain."in a name. This is often caused by forgetting to put a trailing'.'on the end of a name. classic. π
π (with -a switch) π
X: possible duplicate A record (glue of Z?)β A duplicate A records is listed forX. NOTE: this is most often caused by the practice of always putting A records for all secondaries after NS glue records. While this is not an error, it is usually redundant and makes changing IP addresses later more difficult, since they occur more than one time in the file (and in multiple files). You may get spurious errors, mostly because of a quirk in BIND releases before4.9.xthat reports cached glue A records in a zone transfer even though they don't exist in the original zone file.
π₯ (with -F switch) π₯
X A Y: points to ZβXhasYfor an IP address, but the PTR record associated withYreturns"Z"as the name associated with that host. This is not necessarily an error (for example if you have an A record for your domain name), but can be useful to check for A records which point to the wrong host, or PTR records that point to the wrong host.Cannot find address for nameserver Xβ This error is generated if the address for a delegated nameserverXcannot be resolved. This could be a lame delegation (due to a typo in delegation), or a temporary DNS error.
π (with -l switch) π
X NS Y: lame NS delegationβYis a listed nameserver for zoneX, butYis not returning authoritative data for zoneX. This is usually the result of a lack of communication on the part of the respective hostmasters. Lame delegations are not fatal problems except in severe cases, they just tend to create significant increases in DNS traffic. NS records for the parent and child domains should be consistent, and each server listed in the NS record MUST be able to answer with authoritative data, either by being a primary or secondary for the zone.Cannot get SOA record for X from Y (lame?)β This error is generated ifdnswalkcannot get the SOA record for zoneXfrom the nameserverY. This could mean a lame delegation, or simply that the host is temporarily unreachable.
π SEE ALSO π
- RFC 1034 - "DOMAIN NAMES - CONCEPTS AND FACILITIES"
- RFC 1035 - "DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION"
- RFC 1123 - "Requirements for Internet Hosts -- Application and Support"
- Paul Albitz, Cricket Liu: "DNS and BIND" O'Reilly & Associates.
go read them bestie, they're the blueprint πβ¨
π©Ί DIAGNOSTICS π©Ί
When invoked with the -d option, dnswalk will print status information to stderr. It consists of information about what zone is being checked, and a single letter corresponding to the resource record checked, and any errors. π
aβ A recordcβ CNAME recordpβ PTR recordmβ MX recordsβ SOA record!β An error occurred.β A previous error in the zone was repeated, but suppressed.
π BUGS π
ngl, there are some quirks, bestie. here's the tea: π΅
dnswalkwill make the directory tree before it has a chance to find out that you gave it a bogus domain name. π«- When checking lots of hosts and lots of options, it is very slow. π
- Running
dnswalkon a machine with a local nameserver helps considerably. - Perl's
gethostby{name,addr}()routine doesn't seem to consistently return an error whenever it is unable to resolve an address. Argh. π€ - This will mean lots of
"no PTR record"and"host unknown"errors if a server is unavailable, or for some reason the lookup fails. You may get strange error messages if your perl was compiled without support forherror().
π AUTHOR π
David Barr <barr@cis.ohio-state.edu>
and that's the whole page, bestie!! π₯° that was dnswalk(1) straight out of the General Commands Manual, and it's still repping its DNSWALK(1) title down in the footer like the icon it is. now go walk some DNS and fix those PTR records. i believe in you. mwah ππβ¨
π¦ where this page comes from
- debian bookworm: dnswalk 2.0.2.dfsg.1-3 Β· other
- debian trixie: dnswalk 2.0.2.dfsg.1-3 Β· other
- ubuntu jammy: dnswalk 2.0.2.dfsg.1-3 Β· other
- ubuntu noble: dnswalk 2.0.2.dfsg.1-3 Β· other
- ubuntu resolute: dnswalk 2.0.2.dfsg.1-3build1 Β· other
- ubuntu stonking: dnswalk 2.0.2.dfsg.1-3build1 Β· other
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms