Назад | Перейти на главную страницу

DYNDNS.org Custom DNS возвращает нечетные результаты с Windows NSLOOKUP

Некоторое время назад я писал о временном запуске собственного DNS-сервера, чтобы облегчить перемещение доменного имени между двумя регистраторами без простоев. С тех пор я приобрел пакет CustomDNS у DYNDNS и заполнил записи DNS для своего домена sugarcreekcctexas.com, который в настоящее время находится на GoDaddy. Моя цель - изменить серверы имен в GoDaddy, чтобы они указывали на серверы имен DYNDNS, чтобы они могли обслуживать DNS-запросы во время перемещения регистратора.

Однако, хотя я предварительно активировал службу DYNDNS для целей тестирования, я получаю странные результаты с версией NSLOOKUP для Windows, когда я запрашиваю записи с серверов имен DYNDNS. Я хочу понять почему. Обратите внимание: записи «А» работают нормально. Однако я тестирую поиск записей MX для домена, так как я никогда не получал надлежащих результатов от DYNDNS.

Вот результат NSLOOKUP из Windows:

Default Server:  vnsc-bak.sys.gtei.net ; initial DNS set in ROUTER
Address:  4.2.2.2

> server 204.13.248.76                 ; changing to ns1.mydyndns.org
Default Server:  ns1.mydyndns.org
Address:  204.13.248.76

> set type=MX                          ; makes NSLOOKUP query for MX records
> sugarcreekcctexas.com                ; asking for the domain's MX records
Server:  ns1.mydyndns.org
Address:  204.13.248.76

(root)  nameserver = M.ROOT-SERVERS.net
(root)  nameserver = L.ROOT-SERVERS.net
(root)  nameserver = G.ROOT-SERVERS.net
(root)  nameserver = K.ROOT-SERVERS.net
(root)  nameserver = A.ROOT-SERVERS.net
(root)  nameserver = J.ROOT-SERVERS.net
(root)  nameserver = C.ROOT-SERVERS.net
(root)  nameserver = E.ROOT-SERVERS.net
(root)  nameserver = I.ROOT-SERVERS.net
(root)  nameserver = D.ROOT-SERVERS.net
(root)  nameserver = B.ROOT-SERVERS.net
(root)  nameserver = H.ROOT-SERVERS.net
(root)  nameserver = F.ROOT-SERVERS.net
>

Я этого не понимал. Итак, я пошел на форумы DYNDNS и спросил их о проблеме. Они мне очень помогли. Основной ответ заключается в том, что и DIG, и NSLOOKUP показывают правильный ответ при отправке запросов.

Я установил Windows-версию инструментов BIND, полученную от их сайт. Эти инструменты включают DIG и NSLOOKUP, по крайней мере, версии с поддержкой BIND. Вывод этих инструментов сильно отличается:

C:\Windows\System32\dns\bin>nslookup
> server 204.13.248.76
Default server: 204.13.248.76
Address: 204.13.248.76#53
> set type=MX
> sugarcreekcctexas.com
Server:         204.13.248.76
Address:        204.13.248.76#53

sugarcreekcctexas.com   mail exchanger = 10 sugarcreekcctexas.com.s7a1.psmtp.com
.
sugarcreekcctexas.com   mail exchanger = 20 sugarcreekcctexas.com.s7a2.psmtp.com
.
sugarcreekcctexas.com   mail exchanger = 30 sugarcreekcctexas.com.s7b1.psmtp.com
.
sugarcreekcctexas.com   mail exchanger = 40 sugarcreekcctexas.com.s7b2.psmtp.com
.
>

Вот DIG

C:\Windows\System32\dns\bin>dig @204.13.248.76 sugarcreekcctexas.com MX

; <<>> DiG 9.7.0 <<>> @204.13.248.76 sugarcreekcctexas.com MX
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6152
;; flags: qr aa rd; QUERY: 1, ANSWER: 4, AUTHORITY: 5, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;sugarcreekcctexas.com.         IN      MX

;; ANSWER SECTION:
sugarcreekcctexas.com.  3600    IN      MX      40 sugarcreekcctexas.com.s7b2.psmtp.com.
sugarcreekcctexas.com.  3600    IN      MX      10 sugarcreekcctexas.com.s7a1.psmtp.com.
sugarcreekcctexas.com.  3600    IN      MX      20 sugarcreekcctexas.com.s7a2.psmtp.com.
sugarcreekcctexas.com.  3600    IN      MX      30 sugarcreekcctexas.com.s7b1.psmtp.com.

;; AUTHORITY SECTION:
sugarcreekcctexas.com.  86400   IN      NS      ns1.mydyndns.org.
sugarcreekcctexas.com.  86400   IN      NS      ns4.mydyndns.org.
sugarcreekcctexas.com.  86400   IN      NS      ns5.mydyndns.org.
sugarcreekcctexas.com.  86400   IN      NS      ns3.mydyndns.org.
sugarcreekcctexas.com.  86400   IN      NS      ns2.mydyndns.org.

;; Query time: 79 msec
;; SERVER: 204.13.248.76#53(204.13.248.76)
;; WHEN: Wed Mar 10 10:57:47 2010
;; MSG SIZE  rcvd: 319

NSLOOKUP.exe, который я использую на своей машине - тот, который возвращает странные результаты - это версия, которая поставляется с Vista. Я ТАКЖЕ пробовал nslookup на стандартном сервере Windows Server 2003 Enterprise, и он также дал странные результаты.

Меня очень беспокоят следующие причины:

  1. Я понимаю, что NSLOOKUP - это строго диагностический инструмент, но будут ли серверы Windows каким-либо образом запрашивать записи MX способом Windows NSLOOKUP? И если да, помешает ли это, скажем, серверу Exchange получать правильные записи MX для моего домена?

  2. Я очень часто использую NSLOOKUP для такого рода деятельности. Хотя я очень хочу верить в присущие BIND и DNS качества, то, что мой стандартный инструмент вернет такие результаты, пугает.

Я вынужден сделать вывод, что в версии NSLOOKUP для Windows есть что-то принципиально иное, или я никогда не использовал ее правильно для таких типов запросов.

Кто-нибудь может пролить свет? Прежде чем переключиться на сервер имен, мне нужно понять, почему это происходит. В конце концов, мне все равно, возможно, придется запустить другой сервер и запустить DNS самостоятельно, что кажется еще более опасным.

Спасибо!

РЕДАКТИРОВАТЬ: опция «установить носарх» в версии NSLOOKUP для Windows, похоже, заставляет серверы имен DYNDNS возвращать то, что я ожидал. Итак .... почему?

Может быть, nslookup прикрепляет DNS-суффикс по умолчанию? Попробуйте спросить

sugarcreekcctexas.com.

вместо того

sugarcreekcctexas.com

Возможно, версия Windows nslookup использует кеш DNS Windows, в то время как связывает nslookup и копает в обход кеша. Это всего лишь предположение. Попробуйте очистить кеш DNS и еще раз проверьте свои результаты. Кеш обычно очищается путем выдачи

ipconfig /flushdns

Но я не уверен, работает ли это и для Vista.

Если мы выполняем перемещение от одного регистратора к другому, у нас обычно есть возможность настроить целевые серверы имен до перемещения, чтобы не было простоев. Это работает так:

  • найти нового регистратора
  • скажи им, что ты хочешь поместить туда домен xyz
  • предварительно установите записи сервера имен там
  • оформить перевод

Пока передача находится в ожидании, оба сервера имен обслуживают записи домена, а ваш старый регистратор обычно продолжит обслуживать записи вашего домена в течение некоторого времени, чтобы гарантировать, что клиенты, использующие кэшированный (теперь устаревший) сервер имен, смогут выполнить разрешение.