Итак, моя проблема не в том, что что-то не работает. Но это работает, и я не могу понять, почему.
Укороченная версия: Я могу получить доступ к \\ mydomain \ MyDFSRoot, даже если netbios / LLMNR выключен, а DNS-запись mydomain.mydomain.locale не существует. Я не могу понять почему.
подробности
Тестовые компьютеры:
Конфиг:
Наблюдения:
Обновление: возможный ответ Кажется, я обнаружил сетевой пакет, который запускает короткое имя. В какой-то момент пакет типа SMB2
будет отправлено Request [FSCTL_DFS_GET_REFERRALS], FILE:
(Обратите внимание, что путь к файлу отсутствует) (фильтр Wireshark smb2.ioctl.function == 0x00060194
). В свою очередь, я получаю следующий ответ от контроллера домена:
Referrals
Referral
Version: 3
Size: 18
Server Type: Non-root targets returned (0)
Flags: 0x0002, NameListReferral
TTL: 600
Domain Offset: 36
Number of Expanded Names: 0
Expanded Names Offset: 0
Domain Name: \MYDOMAIN
Referral
Version: 3
Size: 18
Server Type: Non-root targets returned (0)
Flags: 0x0002, NameListReferral
TTL: 600
Domain Offset: 34
Number of Expanded Names: 0
Expanded Names Offset: 0
Domain Name: \MYDOMAIN.LOCALE
Теперь статья Microsoft «Как работает DFS» есть следующая цитата:
«Любой запрос UNC на клиенте сначала поступает в DFS перед любым из сетевых перенаправителей. DFS проверяет свой кеш домена, чтобы определить, является ли имя именем домена»
Однако в нем также указано, что кэш MUP должен знать путь заранее. Это может объяснить, почему изначально он не работает, но работает, «если я немного подожду». Проверка кеша домена DFS перед его началом работы:
[*][]
[*][MYDOMAIN]
[*][mydomain.locale]
[+][mydomain.locale]
[+TESTDC.pertra.locale]
И после того, как он заработает:
[*][TESTDC.mydomain.locale]
[*][MYDOMAIN]
[*][mydomain.locale]
[+][mydomain]
[+TESTDC] AccessStatus: 0
[+][mydomain.locale]
[+TESTDC.mydomain.locale]
Запись с [+] впереди должна быть отсылкой, а [*] - «получено от службы рабочей станции». В этом сценарии это будет означать, что это работает сейчас, потому что я получил ссылку на путь, что, вероятно, связано с тем, что что-то еще (я думаю, GPO) обращается к корню DFS.
EDIT2: я проверил PID процесса, отправившего запрос, и это была служба рабочей станции.
Кажется, я понял это (посмотрите на вопрос, чтобы получить длинный ответ). В принципе: