Я использую проблему с DNS, с которой я столкнулся, чтобы лучше понять разрешение DNS. Кажется, я не могу понять несоответствие, которое я наблюдаю при разрешении www.fandompost.com. Вверху моего списка запросов находится OpenDNS. При запросе они вернут соответствующий ip. Следующим в списке идет наш внутренний DNS-сервер. Он возвращает полезную информацию, но не полезный IP-адрес. Наконец, я спрашиваю авторитетного NS. Тем не менее, в отличие от OpenDNS, конечный результат - не пригодный для использования IP. Есть ли что-то, что я / мы сделали неправильно с нашим внутренним DNS-сервером, что приводит к сбою нашего сервера там, где OpenDNS успешно работает?
> www.fandompost.com.
Server: [208.67.222.222]
Address: 208.67.222.222
------------
SendRequest(), len 36
HEADER:
opcode = QUERY, id = 45, rcode = NOERROR
header flags: query
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
www.fandompost.com, type = A, class = IN
------------
------------
Got answer (119 bytes):
HEADER:
opcode = QUERY, id = 45, rcode = NOERROR
header flags: response, recursion avail.
questions = 1, answers = 3, authority records = 0, additional = 0
QUESTIONS:
www.fandompost.com, type = A, class = IN
ANSWERS:
-> www.fandompost.com
type = CNAME, class = IN, dlen = 39
canonical name = www.fandompost.com.cdn.cloudflare.net
ttl = 0 (0 secs)
-> www.fandompost.com.cdn.cloudflare.net
type = A, class = IN, dlen = 4
internet address = 108.162.206.239
ttl = 0 (0 secs)
-> www.fandompost.com.cdn.cloudflare.net
type = A, class = IN, dlen = 4
internet address = 108.162.205.239
ttl = 0 (0 secs)
------------
Non-authoritative answer:
------------
SendRequest(), len 36
HEADER:
opcode = QUERY, id = 46, rcode = NOERROR
header flags: query
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
www.fandompost.com, type = AAAA, class = IN
------------
------------
Got answer (36 bytes):
HEADER:
opcode = QUERY, id = 46, rcode = SERVFAIL
header flags: response, recursion avail.
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
www.fandompost.com, type = AAAA, class = IN
------------
Name: www.fandompost.com.cdn.cloudflare.net
Addresses: 108.162.206.239
108.162.205.239
Aliases: www.fandompost.com
> www.fandompost.com.
Server: [192.168.1.101]
Address: 192.168.1.101
------------
SendRequest(), len 36
HEADER:
opcode = QUERY, id = 48, rcode = NOERROR
header flags: query
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
www.fandompost.com, type = A, class = IN
------------
------------
Got answer (162 bytes):
HEADER:
opcode = QUERY, id = 48, rcode = NOERROR
header flags: response, recursion avail.
questions = 1, answers = 0, authority records = 3, additional = 3
QUESTIONS:
www.fandompost.com, type = A, class = IN
AUTHORITY RECORDS:
-> fandompost.com
type = NS, class = IN, dlen = 16
nameserver = ns1.dreamhost.com
ttl = 84200 (23 hours 23 mins 20 secs)
-> fandompost.com
type = NS, class = IN, dlen = 6
nameserver = ns2.dreamhost.com
ttl = 84200 (23 hours 23 mins 20 secs)
-> fandompost.com
type = NS, class = IN, dlen = 6
nameserver = ns3.dreamhost.com
ttl = 84200 (23 hours 23 mins 20 secs)
ADDITIONAL RECORDS:
-> ns1.dreamhost.com
type = A, class = IN, dlen = 4
internet address = 66.33.206.206
ttl = 84581 (23 hours 29 mins 41 secs)
-> ns2.dreamhost.com
type = A, class = IN, dlen = 4
internet address = 208.97.182.10
ttl = 84581 (23 hours 29 mins 41 secs)
-> ns3.dreamhost.com
type = A, class = IN, dlen = 4
internet address = 66.33.216.216
ttl = 84581 (23 hours 29 mins 41 secs)
------------
------------
SendRequest(), len 36
HEADER:
opcode = QUERY, id = 49, rcode = NOERROR
header flags: query
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
www.fandompost.com, type = AAAA, class = IN
------------
------------
Got answer (162 bytes):
HEADER:
opcode = QUERY, id = 49, rcode = NOERROR
header flags: response, recursion avail.
questions = 1, answers = 0, authority records = 3, additional = 3
QUESTIONS:
www.fandompost.com, type = AAAA, class = IN
AUTHORITY RECORDS:
-> fandompost.com
type = NS, class = IN, dlen = 16
nameserver = ns2.dreamhost.com
ttl = 84200 (23 hours 23 mins 20 secs)
-> fandompost.com
type = NS, class = IN, dlen = 6
nameserver = ns3.dreamhost.com
ttl = 84200 (23 hours 23 mins 20 secs)
-> fandompost.com
type = NS, class = IN, dlen = 6
nameserver = ns1.dreamhost.com
ttl = 84200 (23 hours 23 mins 20 secs)
ADDITIONAL RECORDS:
-> ns2.dreamhost.com
type = A, class = IN, dlen = 4
internet address = 208.97.182.10
ttl = 84581 (23 hours 29 mins 41 secs)
-> ns3.dreamhost.com
type = A, class = IN, dlen = 4
internet address = 66.33.216.216
ttl = 84581 (23 hours 29 mins 41 secs)
-> ns1.dreamhost.com
type = A, class = IN, dlen = 4
internet address = 66.33.206.206
ttl = 84581 (23 hours 29 mins 41 secs)
------------
Name: www.fandompost.com
Served by:
- ns1.dreamhost.com
66.33.206.206
fandompost.com
- ns2.dreamhost.com
208.97.182.10
fandompost.com
- ns3.dreamhost.com
66.33.216.216
fandompost.com
> www.fandompost.com.
Server: [66.33.206.206]
Address: 66.33.206.206
------------
SendRequest(), len 36
HEADER:
opcode = QUERY, id = 51, rcode = NOERROR
header flags: query
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
www.fandompost.com, type = A, class = IN
------------
------------
Got answer (148 bytes):
HEADER:
opcode = QUERY, id = 51, rcode = NXDOMAIN
header flags: response, auth. answer
questions = 1, answers = 1, authority records = 1, additional = 0
QUESTIONS:
www.fandompost.com, type = A, class = IN
ANSWERS:
-> www.fandompost.com
type = CNAME, class = IN, dlen = 39
canonical name = www.fandompost.com.cdn.cloudflare.net
ttl = 300 (5 mins)
AUTHORITY RECORDS:
-> cloudflare.net
type = SOA, class = IN, dlen = 49
ttl = 14400 (4 hours)
primary name server = ns1.dreamhost.com
responsible mail addr = hostmaster.dreamhost.com
serial = 2014071000
refresh = 14908 (4 hours 8 mins 28 secs)
retry = 1800 (30 mins)
expire = 1814400 (21 days)
default TTL = 14400 (4 hours)
------------
------------
SendRequest(), len 36
HEADER:
opcode = QUERY, id = 52, rcode = NOERROR
header flags: query
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
www.fandompost.com, type = AAAA, class = IN
------------
------------
Got answer (148 bytes):
HEADER:
opcode = QUERY, id = 52, rcode = NXDOMAIN
header flags: response, auth. answer
questions = 1, answers = 1, authority records = 1, additional = 0
QUESTIONS:
www.fandompost.com, type = AAAA, class = IN
ANSWERS:
-> www.fandompost.com
type = CNAME, class = IN, dlen = 39
canonical name = www.fandompost.com.cdn.cloudflare.net
ttl = 300 (5 mins)
AUTHORITY RECORDS:
-> cloudflare.net
type = SOA, class = IN, dlen = 49
ttl = 14400 (4 hours)
primary name server = ns1.dreamhost.com
responsible mail addr = hostmaster.dreamhost.com
serial = 2014071000
refresh = 14908 (4 hours 8 mins 28 secs)
retry = 1800 (30 mins)
expire = 1814400 (21 days)
default TTL = 14400 (4 hours)
------------
*** [66.33.206.206] can't find www.fandompost.com.: Non-existent domain
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
> www.fandompost.com.cdn.cloudflare.net.
Server: [66.33.206.206]
Address: 66.33.206.206
------------
SendRequest(), len 55
HEADER:
opcode = QUERY, id = 55, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
www.fandompost.com.cdn.cloudflare.net, type = A, class = IN
------------
------------
Got answer (119 bytes):
HEADER:
opcode = QUERY, id = 55, rcode = NXDOMAIN
header flags: response, auth. answer, want recursion
questions = 1, answers = 0, authority records = 1, additional = 0
QUESTIONS:
www.fandompost.com.cdn.cloudflare.net, type = A, class = IN
AUTHORITY RECORDS:
-> cloudflare.net
type = SOA, class = IN, dlen = 52
ttl = 14400 (4 hours)
primary name server = ns1.dreamhost.com
responsible mail addr = hostmaster.dreamhost.com
serial = 2014071000
refresh = 14908 (4 hours 8 mins 28 secs)
retry = 1800 (30 mins)
expire = 1814400 (21 days)
default TTL = 14400 (4 hours)
------------
------------
SendRequest(), len 55
HEADER:
opcode = QUERY, id = 56, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
www.fandompost.com.cdn.cloudflare.net, type = AAAA, class = IN
------------
------------
Got answer (119 bytes):
HEADER:
opcode = QUERY, id = 56, rcode = NXDOMAIN
header flags: response, auth. answer, want recursion
questions = 1, answers = 0, authority records = 1, additional = 0
QUESTIONS:
www.fandompost.com.cdn.cloudflare.net, type = AAAA, class = IN
AUTHORITY RECORDS:
-> cloudflare.net
type = SOA, class = IN, dlen = 52
ttl = 14400 (4 hours)
primary name server = ns1.dreamhost.com
responsible mail addr = hostmaster.dreamhost.com
serial = 2014071000
refresh = 14908 (4 hours 8 mins 28 secs)
retry = 1800 (30 mins)
expire = 1814400 (21 days)
default TTL = 14400 (4 hours)
------------
*** [66.33.206.206] can't find www.fandompost.com.cdn.cloudflare.net.: Non-exist
ent domain
Во-первых, давайте сравним три варианта ответа.
AA
) установлен флаг: www.fandompost.com.cdn.cloudflare.net.
Третий интересен. Возвращается авторитетный ответ, одна запись находится в разделе ANSWER, но код ответа - NXDOMAIN. Обычно в этом случае вы ожидаете увидеть код ответа NOERROR: полномочный сервер имен обычно не пытается рекурсивно разрешить CNAME за вас.
Взгляните еще раз на авторитетный раздел для этого ответа:
ANSWERS:
-> www.fandompost.com
type = CNAME, class = IN, dlen = 39
canonical name = www.fandompost.com.cdn.cloudflare.net
ttl = 300 (5 mins)
AUTHORITY RECORDS:
-> cloudflare.net
type = SOA, class = IN, dlen = 49
ttl = 14400 (4 hours)
primary name server = ns1.dreamhost.com
Видите "первичный сервер имен"? это cloudflare.net
Зона обслуживалась, по-видимому, с ns1.dreamhost.com. Моя небольшая царапина подтверждает это:
$ dig @ns1.dreamhost.com +norecurse fandompost.com cloudflare.net SOA | grep -E 'HEADER|flags'
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11600
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32367
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
В aa
флаг присутствует для обоих запросов SOA. Причина, по которой вы получаете ответ NXDOMAIN от ns1.dreamhost.com, заключается в том, что этот сервер имен пытаясь Решить www.fandompost.com.cdn.cloudflare.net.
для вас, поскольку он считает себя авторитетным и для этого домена, и запись, похоже, отсутствует. Почему у Dreamhost есть cloudflare.net.
зона? Спросите Dreamhost. Этот rcode NXDOMAIN не представляет проблемы для большинства рекурсивных преобразователей; Я давно не изучал RFC по этому поводу, но, как мне кажется, они игнорируют этот код ответа и работают с полученным ответом.
Наконец, это подводит нас к вашему вопросу: есть ли проблема с вашим DNS-сервером? Трудно сказать, не зная, какое программное обеспечение вы используете. Я могу сказать, что у BIND и Windows DNS нет проблем с этой конфигурацией, и возможно, что ваше программное обеспечение обрабатывает NXDOMAIN
иначе, чем эти две реализации.