dig/nslookup команды (работа с dns)

nslookup redhat.com
nslookup -query=mx redhat.com
nslookup -type=ns redhat.com
nslookup -type=soa redhat.com
nslookup -type=any google.com
nslookup 209.132.183.181
nslookup redhat.com ns1.redhat.com
nslookup -port 56 redhat.com
nslookup -timeout=10 redhat.com
nslookup -debug redhat.com

------------------------------
The dig command output has the following sections:
  • Header: This displays the dig command version number, the global options used by the dig command, and few additional header information.
  • QUESTION SECTION: This displays the question it asked the DNS. i.e This is your input. Since we said ‘dig redhat.com’, and the default type dig command uses is A record, it indicates in this section that we asked for the A record of the redhat.com website
  • ANSWER SECTION: This displays the answer it receives from the DNS. i.e This is your output. This displays the A record of redhat.com
  • AUTHORITY SECTION: This displays the DNS name server that has the authority to respond to this query. Basically this displays available name servers of redhat.com
  • ADDITIONAL SECTION: This displays the ip address of the name servers listed in the AUTHORITY SECTION.
  • Stats section at the bottom displays few dig command statistics including how much time it took to execute this query

  • +nocomments – Turn off the comment lines
  • +noauthority – Turn off the authority section
  • +noadditional – Turn off the additional section
  • +nostats – Turn off the stats section
  • +noanswer – Turn off the answer section (Of course, you wouldn’t want to turn off the answer section)

dig redhat.com
dig redhat.com +nocomments +noquestion +noauthority +noadditional +nostats
dig redhat.com +noall +answer
dig redhat.com  MX +noall +answer
dig -t MX redhat.com +noall +answer
dig redhat.com NS +noall +answer
dig -t NS redhat.com +noall +answer
dig redhat.com ANY +noall +answer
dig -t ANY redhat.com  +noall +answer
dig redhat.com +short
dig redhat.com ns +short
dig -x 209.132.183.81 +short
dig -x 209.132.183.81
dig @ns1.redhat.com redhat.com

vi names.txt
dig -f names.txt +noall +answer
dig -f names.txt MX +noall +answer
dig redhat.com mx +noall +answer centos.org ns +noall +answer

--------------

freebsd 10 по умолчанию не имеет nslookup, dig. искать в
/usr/ports/dns/bind-tools

DNS провайдера

Всегда недолюбливал настройку DNS серверов таким образом, что бы форвардить все запросы провайдеру.
И сегодня столкнулся с реальной проблемой из-за такой конфигурации в одной из моих сетей.
Вчера вечером изменил DNS сервера основной зоны, прописал новые сервера у регистратора и начал ждать, когда все изменения пропихнутся.
На большинство площадок новые DNS пришли достаточно быстро, на самой последней спустя сутки все резолвилось по старому.
Расследование показало, что на этой площадке стоял форвардинг запросов провайдеру на 3 DNS, два последних из них отдавали зону правильно, а третий нет.
Оказалось, что он самовольно подменяет TTL NS-записей всех зон, которые отдает. Т.е., изменения всех DNS серверов к нам приходят с огромной задержкой. В 4 дня!
Возьмем для примера ya.ru.

nslookup -d2 -type=soa ya.ru. ns.dolbonet.ru

Non-authoritative answer:
ya.ru
type = SOA, class = IN, dlen = 44
ttl = 7200 (2 hours)
primary name server = ns1.yandex.ru
responsible mail addr = sysadmin.yandex.ru
serial = 2012103000
refresh = 10800 (3 hours)
retry = 900 (15 mins)
expire = 2592000 (30 days)
default TTL = 900 (15 mins)

ya.ru
type = NS, class = IN, dlen = 6
nameserver = ns5.yandex.ru
ttl = 344602 (3 days 23 hours 43 mins 22 secs)
ya.ru
type = NS, class = IN, dlen = 2
nameserver = ns1.yandex.ru
ttl = 344602 (3 days 23 hours 43 mins 22 secs)
ns5.yandex.ru
type = A, class = IN, dlen = 4
internet address = 213.180.204.1
ttl = 167578 (1 day 22 hours 32 mins 58 secs)
ns1.yandex.ru
type = A, class = IN, dlen = 4
internet address = 213.180.193.1
ttl = 141968 (1 day 15 hours 26 mins 8 secs)
ns1.yandex.ru
type = AAAA, class = IN, dlen = 16
AAAA IPv6 address = 2a02:6b8::1
ttl = 3140 (52 mins 20 secs)
сравним с честной отдачей родных DNS серверов

nslookup -d2 -type=soa ya.ru. ns1.yandex.ru.

ya.ru
type = SOA, class = IN, dlen = 44
ttl = 7200 (2 hours)
primary name server = ns1.yandex.ru
responsible mail addr = sysadmin.yandex.ru
serial = 2012103000
refresh = 10800 (3 hours)
retry = 900 (15 mins)
expire = 2592000 (30 days)
default TTL = 900 (15 mins)
ya.ru
type = NS, class = IN, dlen = 6
nameserver = ns5.yandex.ru
ttl = 7200 (2 hours)
ya.ru
type = NS, class = IN, dlen = 2
nameserver = ns1.yandex.ru
ttl = 7200 (2 hours)
ns1.yandex.ru
type = A, class = IN, dlen = 4
internet address = 213.180.193.1
ttl = 345600 (4 days)
ns1.yandex.ru
type = AAAA, class = IN, dlen = 16
AAAA IPv6 address = 2a02:6b8::1
ttl = 3600 (1 hour)
ns5.yandex.ru
type = A, class = IN, dlen = 4
internet address = 213.180.204.1
ttl = 345600 (4 days)

Не всякий админ будет держать старые DNS четыре дня. Причем, иногда их держать технически невозможно. Да, и если провайдер так самовольно распоряжается NS-записями, он может и TTL А-записей переправлять. А это уже намного опаснее.