Got spanked on a DNS problem again today. As much as it makes my cheeks burn, problems like this are always instructive. Good judgement comes from experience – Experience comes from poor judgement. As with every other technical issue, the first step is Don’t Panic.
Moving on – we look to see whether the IP address of the server you can’t reach responds. F’rinstance – you can’t get to host.domain.com – can you get to the IP of host.domain.com? You do know the IP, right? (That’s a hint, kids…get in the habit of knowing the DNS and IP address of your host servers). That aside, assuming the IP responds, we move onto troubleshooting the DNS. Your own workstation can become a DNS troubleshooting command center. It all begins with NSLOOKUP. If you’re like me, you previously left the use of NSLOOKUP to finding out if your DNS server could resolve a DNS name to an IP or vice-versa. NSLOOKUP is capable of so much more.
Need to see what a DNS server thinks your A records are? Need to know what MX records you’re using? NSLOOKUP has you covered. You can set an alternate DNS server as your own, helpful when you think your IPs are set one way but everyone else thinks differently. You can also see what type of A records are set up for your domain, according to that DNS server and that has its own set of benefits.
Using the Help guide of NSLOOKUP (Pasted below) – see if some of these tools can help make your next DNS problem easier to solve. 10 or 15 minutes here can save you countless hours elsewhere.
Commands: (identifiers are shown in uppercase, [] means optional)
NAME - print info about the host/domain NAME using default
server
NAME1 NAME2 - as above, but use NAME2 as server
help or ? - print info on common commands
set OPTION - set an option
all - print options, current server and host
[no]debug - print debugging information
[no]d2 - print exhaustive debugging information
[no]defname - append domain name to each query
[no]recurse - ask for recursive answer to query
[no]search - use domain search list
[no]vc - always use a virtual circuit
domain=NAME - set default domain name to NAME
srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1, N2,
and so on
root=NAME - set root server to NAME
retry=X - set number of retries to X
timeout=X - set initial time-out interval to X seconds
type=X - set query type (for example, A, ANY, CNAME, MX,
NS, PTR, SOA, SRV)
querytype=X - same as type
class=X - set query class (for example, IN (Internet), ANY)
[no]msxfr - use MS fast zone transfer
ixfrver=X - current version to use in IXFR transfer request
server NAME - set default server to NAME, using current default server
lserver NAME - set default server to NAME, using initial server
finger [USER] - finger the optional NAME at the current default host
root - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to
FILE)
-a - list canonical names and aliases
-d - list all records
-t TYPE - list records of the given type (for example, A, CNAME,
MX, NS, PTR, and so on)
view FILE - sort an 'ls' output file and view it with pg
exit - exit the program

0 comments:
Post a Comment