Какой механизм Windows использует для регистрации своего адреса в DNS?

367
David

В этом документе Microsoft IPv6 для администратора Windows: как работает разрешение имен в сценарии с двумя IPv4 / IPv6, показано, что Windows попытается зарегистрировать свои адреса на DNS-сервере.

Как это работает "на проводе"? Это специфический для Microsoft вызов API, который работает только между клиентом Windows и DNS-сервером Windows?

Или это использует стандартное сообщение DNS-запроса, чтобы можно было зарегистрироваться для работы с другими DNS-серверами, например, dnsmasq?

Мне особенно интересно, как это работает с IPv6.

(Я предполагаю, что это не будет работать с dnsmasq, поскольку, насколько я понимаю, он передает информацию об DNS-адресах только для адресов, которые выделены из dhcp или назначены статически).

Редактировать:

Я нашел такой же вопрос на ServerFault: как обновления Active Directory динамического DNS работают за кулисами? но это на самом деле не дает никакой специфики, хотя подразумевает, что это специфический для Microsoft механизм между Windows и DNS-сервером Microsoft.

1

2 ответа на вопрос

2
David

Как обычно, через несколько минут после публикации вопроса я нажимаю правильную комбинацию поисковых терминов Google, чтобы найти фактический ответ ...

Этот документ предназначен для Windows Server 2008, но я предполагаю, что он все еще актуален для Windows Server - Разрешить динамическое обновление : -

Клиентские компьютеры системы доменных имен (DNS) могут использовать динамическое обновление для регистрации и динамического обновления своих записей ресурсов на DNS-сервере при каждом изменении.

...

Динамическое обновление является RFC-совместимым расширением стандарта DNS. Процесс обновления DNS определен в RFC 2136, «Динамические обновления в системе доменных имен (ОБНОВЛЕНИЯ DNS)».

Где RFC описывает конкретный пакет сообщений DNS, который используется для этой цели.

1
grawity

Windows использует DNS-операции «ОБНОВЛЕНИЕ», указанные в RFC 2136 . Если компьютер является членом Active Directory, он будет аутентифицировать обновления, используя GSS-TSIG (указанный в RFC 3645 и MS-GSSA ). Обновления, отправленные автономными системами, не проходят проверку подлинности.

Хотя по крайней мере последний протокол был изобретен Microsoft, они оба открыты и совместимы с ISC BIND и другим программным обеспечением - вы можете обновить DNS-сервер Windows с помощью BIND nsupdateи наоборот.

На механизм не влияют узлы с двумя стеками, так как клиент явно указывает, какие адреса (записи) он хочет добавить, как IPv4, так и IPv6; нет никаких предположений со стороны сервера. Это также означает, что хосты за NAT будут отправлять обновления, содержащие их внутренние адреса IPv4 (что хорошо в этом контексте - в противном случае корпоративная локальная сеть DNS будет бесполезна).

(Также обратите внимание, что протокол не требует, чтобы компьютер напрямую использовал контроллер домена AD в качестве своего DNS-сервера. Вместо этого клиенты будут отправлять обновления конкретно на сервер, указанный в записи SOA домена, в поле «mname».)

Хотя Microsoft DNS Server действительно имеет собственный API-интерфейс на основе MSRPC, рабочие станции не используют его для автоматической регистрации. Это только для инструментов администрирования, таких как dnsmgmt.mscконсоль или samba-tool dns. Совместимая реализация сервера существует в Samba 4, когда она выступает в качестве контроллера домена AD.


Старые серии NT4 (до AD) и Win9x не так сильно полагались на DNS - вместо этого в доменах NT4 в качестве центрального механизма поиска имен использовался полу-проприетарный WINS от Microsoft (основанный на службе имен рабочей группы NetBIOS, но центральный, а не широковещательный)., WINS включал операцию обновления как часть базового протокола и не имел аутентификации.

Чтобы увидеть, что происходит на проводе, используйте Wireshark .