Перенастройка DFS для использования DNS-резолвинга

По умолчанию сервис DFS использует короткие NetBIOS-имена для публикации своих неймспейсов (Namespace). Это может привести к недоступности неймспейса \\dfs.mycompany.local\dfsroot\, если вы хотите предоставить доступ кому-то за пределами вашей организации. При попытке захода в dfsroot, даже если пользователь попытается открыть его по полному имени (\\dfs.mycompany.local\dfsroot\), запрос переформулируется в \\dfs\dfsroot\ и возникнет проблема разрешения имени. При этом у вас может быть корректно настроена служба DNS между вашими сетями, и даже все шары внутри этого корня, добавленные с указанием полных имен серверов, могли бы быть доступны. Убедиться в том, что неймспейс резолвится по короткому имени, можно, выбрав его в списке Namespace в оснастке управления DFS на вкладке Namespace Servers: в графе Path будет указано \\dfs\dfsroot. Что делать в этой ситуации?

У DFS нет возможности переключить режим работы на DNS-резолвинг на лету, более того — потребуется удаление всех ранее созданных неймспейсов со всем содержимым. К счастью, текущие настройки неймспейсов можно экспортировать в xml-файл и использовать его для восстановления списка шар после пересоздания неймспейса.

Итак, представим что у нас есть сервер «dfs.mycompany.local», с корнем «dfsroot» и каким-то набором шар внутри него. Шаги для перевода сервера на лыжи DNS будут такими:

(В оснастке управления неймспейс может отображаться как \\dfs\dfsroot или как \\dfs.mycompany.local\dfsroot — это не влияет на резолвинг, но это важно при выполнении нижеприведенных команд. Я привожу их для варианта  \\dfs\dfsroot, в случае если у вас имя прописано полностью — в командах с dfsutil используйте его)

    1. Бэкапим настройки неймспейса:
       
       
      1. dfsutil /root:\\dfs\dfsroot /export:c:\dfsroot.xml
    2. Открываем файл бэкапа в блокноте, убеждаемся что он содержит описание всех шар неймспейса. Вид примерно такой:
       
       
      1. <?xml version="1.0"?>
      2. <Root Name="\\dfs\dfsroot" State="1" Timeout="300" >
      3.       <Target Server="dfs" Folder="dfsroot" State="2" />
      4.       <Link Name="Temp" State="1" Timeout="1800" >
      5.             <Target Server="fileserver" Folder="Temp" State="2" />
      6.       </Link>
      7.       <Link Name="Public" State="1" Timeout="1800" >
      8.            <Target Server="fileserver.mycompany.local" Folder="Public" State="2" />
      9.       </Link>
      10.       <Link Name="SecFiles" State="1" Timeout="1800" >
      11.            <Target Server="newfs.mycompany.local" Folder="SecFiles" State="2" />
      12.       </Link>
      13. </Root>
    3. Удаляем корень dfsroot
    4. Переводим DFS на работу с DNS:
       
       
      1. dfsutil.exe server registry dfsdnsconfig set
    5. Перезапускаем службу DFS:
       
       
      1. net stop dfs; net start dfs
  1. Заново создаем корень dfsroot, указывая в мастере полное имя сервера: dfs.mycompany.local
  2. Перезапускаем консоль управления DFS (это важно!), выбираем созданный неймспейс, и на вкладке Namespace Servers убеждаемся, что в графе Path прописан полный путь
  3. Редактируем файл бэкапа:
    1. Меняем, если надо
       
       
      1. Root Name="\\dfs\dfsroot"

      на

       
       
      1. Root Name="\\dfs.mycompany.local\dfsroot"
    2. Меняем
       
       
      1. Target Server="dfs"

      на

       
       
      1. Target Server="dfs.mycompany.local"
    3. Меняем, если надо, параметры «Target Server» для шар, если сервера прописаны короткими NetBIOS-именами (как в примере из п.2 для шары «Temp» указан сервер «fileserver» вместо «fileserver.mycompany.local»)
  4. Восстанавливаем из бэкапа корень (обратите внимание, что теперь в команде мы используем Namespace, содержащий полное имя — dfs.mycompany.local,  так как при его создании в п.6 мы прописали имя сервера полностью. Важно чтобы в файле бэкапа на текущий момент было указано оно же.)
     
     
    1. dfsutil /root:\\dfs.mycompany.local\dfsroot /import:c:\dfsroot.xml /set
  5. Проверяем в оснастке управления, что неймспейс заполнился нашими шарами.

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

Статья на сайте MS: https://support.microsoft.com/en-us/help/244380/how-to-configure-dfs-to-use-fully-qualified-domain-names-in-referrals