Некоторое время назад я писал о временном запуске собственного 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, и он также дал странные результаты.
Меня очень беспокоят следующие причины:
Я понимаю, что NSLOOKUP - это строго диагностический инструмент, но будут ли серверы Windows каким-либо образом запрашивать записи MX способом Windows NSLOOKUP? И если да, помешает ли это, скажем, серверу Exchange получать правильные записи MX для моего домена?
Я очень часто использую NSLOOKUP для такого рода деятельности. Хотя я очень хочу верить в присущие BIND и DNS качества, то, что мой стандартный инструмент вернет такие результаты, пугает.
Я вынужден сделать вывод, что в версии NSLOOKUP для Windows есть что-то принципиально иное, или я никогда не использовал ее правильно для таких типов запросов.
Кто-нибудь может пролить свет? Прежде чем переключиться на сервер имен, мне нужно понять, почему это происходит. В конце концов, мне все равно, возможно, придется запустить другой сервер и запустить DNS самостоятельно, что кажется еще более опасным.
Спасибо!
РЕДАКТИРОВАТЬ: опция «установить носарх» в версии NSLOOKUP для Windows, похоже, заставляет серверы имен DYNDNS возвращать то, что я ожидал. Итак .... почему?
Может быть, nslookup прикрепляет DNS-суффикс по умолчанию? Попробуйте спросить
sugarcreekcctexas.com.
вместо того
sugarcreekcctexas.com
Возможно, версия Windows nslookup использует кеш DNS Windows, в то время как связывает nslookup и копает в обход кеша. Это всего лишь предположение. Попробуйте очистить кеш DNS и еще раз проверьте свои результаты. Кеш обычно очищается путем выдачи
ipconfig /flushdns
Но я не уверен, работает ли это и для Vista.
Если мы выполняем перемещение от одного регистратора к другому, у нас обычно есть возможность настроить целевые серверы имен до перемещения, чтобы не было простоев. Это работает так:
Пока передача находится в ожидании, оба сервера имен обслуживают записи домена, а ваш старый регистратор обычно продолжит обслуживать записи вашего домена в течение некоторого времени, чтобы гарантировать, что клиенты, использующие кэшированный (теперь устаревший) сервер имен, смогут выполнить разрешение.