Я настроил виртуальную машину Azure с Windows 2012 R2 и установленной ролью DNS-сервера. У меня есть еще одна виртуальная машина в той же виртуальной сети, и я использую nslookup для запроса DNS-сервера.
Каждый раз, когда я запрашиваю какое-либо доменное имя конкретно на этом DNS-сервере, время ожидания первых двух попыток истекает, а затем успешно разрешается. Причина в том, что он добавляет к запросу длинный домен cloudapp.net.
Например, я установил параметр d2 в nslookup и запросил cnn.com:
> cnn.com Server: [10.51.5.4] Address: 10.51.5.4
------------ SendRequest(), len 77
HEADER:
opcode = QUERY, id = 19, rcode = NOERROR
header flags: query, want recursion
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
cnn.com.g2dibntere1erjhcdrrozsaeod.bx.internal.cloudapp.net, type = A, class = IN
------------ DNS request timed out.
timeout was 2 seconds. timeout (2 secs) SendRequest failed
Как я могу отключить это поведение?
Обновить Я нашел домен с суффиксом в результатах ipconfig:
C:\Users\admin>ipconfig
Windows IP Configuration
Ethernet adapter Ethernet 3:
Connection-specific DNS Suffix . : g2dibntere1erjhcdrrozsaeod.bx.internal.cl
oudapp.net
Link-local IPv6 Address . . . . . : fe80::a90f:bb70:be04:ef2c%16
IPv4 Address. . . . . . . . . . . : 10.51.10.4
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.51.10.1
Tunnel adapter isatap.g2dibntere1erjhcdrrozsaeod.bx.internal.cloudapp.net:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . : g2dibntere1erjhcdrrozsaeod.bx.internal.cl
oudapp.net
Tunnel adapter Teredo Tunneling Pseudo-Interface:
Connection-specific DNS Suffix . :
IPv6 Address. . . . . . . . . . . : 2001:0:5ef5:79fd:1c9f:fbe8:d78d:f134
Link-local IPv6 Address . . . . . : fe80::1c9f:fbe8:d78d:f134%14
Default Gateway . . . . . . . . . : ::
Итак, как мне отключить этот суффикс для конкретного соединения?
Вы видите нормальное поведение. Ваш запрос nslookup технически не является полностью квалифицированным, поскольку вы не указали конечную точку (.). Если вы хотите увидеть разницу, выполните тот же запрос, но вместо этого добавьте конечную точку (.) Как таковую:
cnn.com.
Это поведение, которое вы увидите при отправке запросов с помощью nslookup, которые не полностью квалифицированы. DNS-суффикс для подключения добавляется к вашему запросу nslookup, потому что ваш запрос nslookup не полностью квалифицирован. Nslookup использует собственный преобразователь DNS-клиентов, но использует суффиксы поиска DNS, настроенные для компьютера. Преобразователь DNS-клиентов Windows не страдает от такого поведения, поэтому вам действительно не нужно ничего менять в настройках DNS-клиента. То, что вы сделали, добавив точку (.) В качестве суффикса DNS, не является подходящим корректирующим действием и может вызвать проблемы с разрешением имен DNS для операционной системы и приложений. Прочтите здесь:
http://blogs.msmvps.com/acefekay/2013/02/17/nslookup-suffixing-behavior
Вы настраиваете свою виртуальную сеть для использования DC в качестве DNS-сервера? Это то, что позволяет вам найти свой DC.
Кроме того, указываете ли вы полное доменное имя вашего домена при присоединении к домену, и есть ли у вашего домена хотя бы две метки? Если ваше доменное имя состоит как минимум из двух меток (например, something.local), то суффикс не должен добавляться во время присоединения к домену или любого обычного поиска DNS. Как упоминалось ранее, у nslookup своя логика.
Мы работаем над изменением, чтобы не предоставлять внутренний суффикс Azure при использовании собственного DNS-сервера, но при условии, что у вашего доменного имени есть две метки, суффикс следует игнорировать даже сейчас.
Гарет.
Исправлено, заставив добавить точку '.' как суффикс DNS. К сожалению, это сложно применить к каждой виртуальной машине, поэтому я все еще жду других ответов, прежде чем принимать свой собственный.