DFS-N auf FQDN umstellen

Microsoft DFS (Distributed File System) wird gerne genutzt, um Freigaben von Daten im Netzwerk unabhängig vom dahinter liegenden Fileserver zu publizieren. Dabei ist es egal, ob sich im Hintergrund ein oder mehrere Windows Server, NetApp, EMC oder andere Maschinen verbergen, die Windows File Shares anbieten.

Historisch bedingt ist DFS allerdings so konfiguriert, dass es immer die NetBIOS Namen der Server veröffentlicht, auf denen die Freigaben gehostet werden. Im “normalen” kleinen Netzwerkumfeld wird diese Einstellung auch gar nicht auffallen, wenn wir allerdings von größeren Umgebungen oder Migrationsszenarien reden, kann man hier wunderbar in Probleme laufen. Hier spielen dann solche Konfigurationen, wie WINS Server, DNS Suffix Suchliste der Clients, Konfiguration von VPN Clients, uvm. eine Rolle. Viele davon kann man relativ leicht aus dem Weg räumen, wenn man DFS direkt so konfiguriert, dass es FQDN (Fully Qualified Domain Names) benutzt. Und wie das unter Windows geht, zeige ich jetzt …

Wir gehen einmal davon aus, wir haben einen bestehenden Namespace, der unter “normalen” Voraussetzungen installiert wurde und somit noch reine NetBIOS Verweise nutzt. Der sollte dann in etwa so aussehen:

dfs_DefaultNamespace

Schaut man allerdings mal unter die Haube, kann man sehr leicht die NetBIOS Verweise des Namespace selbst, aber auch der Folder Targets sehen. Mit den folgenden Befehlen kann man die Konfiguration wunderbar auslesen:

Get-DfsnRoot | Get-DfsnRootTarget | fl
Get-DfsnFolder \\demo.intra\MyNamespace\* | Get-DfsnFolderTarget | ft -AutoSize

Oder aber auch über dfsutil.exe:

dfsutil root \\demo.intra\MyNamespace

In meinem Beispiel sieht das dann so aus:

dfs_NetBIOS

Nun kann man das Ganze sogar on-the-fly umstellen, das bedeutet also ohne Downtime – worauf wartet ihr also? Mit etwas Vorbereitung und wenigen Skripts ist das auch schnell gemacht. Grundsätzlich funktioniert der Vorgang in zwei Schritten:

  1. Ändern jedes DFS Namespace Servers
  2. Aktualisieren der Folder Targets

Ändern jedes DFS Namespace Servers

Wichtig: Solltet ihr nur einen Namespace Server haben, nehmt unbedingt (zumindest temporär) einen zweiten dazu, sonst geht euch Euer Namespace komplett verloren!

Die folgenden Änderungen müssen auf jedem Namespace Server vorgenommen werden:

  1. Entfernt den Namespace Server aus dem DFS Root
  2. Ändert die Konfiguration des DFS Dienstes
  3. Startet den DFS Dienst neu
  4. Fügt den Namespace Server dem DFS Root wieder hinzu

Das funktioniert unter Powershell mit den folgenden Befehlen:

Remove-DfsnRootTarget -TargetPath \\dc2012r2\MyNamespace -Confirm:$false
Set-DfsnServerConfiguration -ComputerName dc2012r2 -UseFqdn $true
Stop-Service dfs
Start-Service dfs
New-DfsnRootTarget -TargetPath \\dc2012r2.demo.intra\MyNamespace

Und mit dfsutil.exe so:

dfsutil.exe target Remove \\fs2012r2\MyNamespace
Dfsutil.exe server registry dfsdnsconfig set fs2012r2
Net stop dfs
Net start dfs
Dfsutil target add \\fs2012r2.demo.intra\MyNamespace

Den Unterschied zwischen einem umgestellten und einem nicht umgestellten sieht man dann in der DFS Verwaltung.

dfs_NamespaceUnterschied

Damit werden die Namespace Server schon mal über DNS aufgelöst, die Folder Targets (also die Fileserver dahinter) allerdings noch nicht.

Aktualisierung der Folder Targets

Für die Aktualisierung der Folder Targets muss die vorhandene Konfiguration exportiert und geändert werden. Danach wird die modifizierte Konfiguration wieder importiert. Das funktioniert nicht mit der Power Shell, sondern nur mit dfsutil.exe.

Den Export erstellt man mit folgendem Befehl:

dfsutil.exe root export \\demo.intra\MyNamespace c:\MyNamespace.xml

Damit erhält meine XML Datei, die etwa so aussehen könnte:

<?xml version="1.0"?>

<Root xmlns = "http://schemas.microsoft.com/dfs/2007/03/dfsutil" majorVersion = "2" minorVersion = "0" 
    Name="\\demo.intra\MyNamespace" State="OK" Timeout="300" SITECOSTING = "1" >
    <Target State="ONLINE" >\\dc2012r2.demo.intra\MyNamespace</Target>
    <Target State="ONLINE" >\\fs2012r2.demo.intra\MyNamespace</Target>

    <Link Name="Share1" State="OK" Timeout="1800" >
        <Target State="ONLINE" >\\DC2012R2\Share1</Target>
    </Link>

    <Link Name="Share2" State="OK" Timeout="1800" >
        <Target State="ONLINE" >\\DC2012R2\Share2</Target>
    </Link>

</Root>

Diese Datei ändern wir nun. Dafür werden in den markierten Zeilen die Pfade zu den Folder Targets von NetBIOS auf DNS Namen umgestellt. Danach sollte es dann etwa so aussehen:

<?xml version="1.0"?>

<Root xmlns = "http://schemas.microsoft.com/dfs/2007/03/dfsutil" majorVersion = "2" minorVersion = "0" 
    Name="\\demo.intra\MyNamespace" State="OK" Timeout="300" SITECOSTING = "1" >
    <Target State="ONLINE" >\\dc2012r2.demo.intra\MyNamespace</Target>
    <Target State="ONLINE" >\\fs2012r2.demo.intra\MyNamespace</Target>

    <Link Name="Share1" State="OK" Timeout="1800" >
        <Target State="ONLINE" >\\DC2012R2.demo.intra\Share1</Target>
    </Link>

    <Link Name="Share2" State="OK" Timeout="1800" >
        <Target State="ONLINE" >\\DC2012R2.demo.intra\Share2</Target>
    </Link>

</Root>

Die so geänderte Konfiguration importiert man wieder mit folgendem Befehl:

dfsutil.exe root import set C:\MyNamespace.xml \\demo.intra\MyNamespace

Und … tada! Alle Folder Targets sind auf DNS Namen umgestellt.

dfs_FolderTargetDNS

Wenn man nun weitere Namespace Server hinzufügt, muss man pro Server die DNS Konfiguration von oben einmalig vornehmen.

Wichtig: Wenn man über die grafische Oberfläche entweder Namespace Server oder Folder Targets hinzufügt, wird dort immer der NetBIOS Name eingetragen, selbst wenn die Einstellung auf DNS vorgenommen wurde!

dfs_NewFolderFalsch

 

Ihr müsst hier unbedingt darauf achten, den DNS Namen manuell einzutragen!

dfs_FolderTargetManuell

Nur so funktioniert das Ganze auch mit neuen Folder Targets.

All diese Informationen sind aus dem Knowledge Base Artikel 244380 (Link) entnommen und schon in vielen Projekten erfolgreich angewandt worden 😉 . Vielleicht stellt ja Microsoft irgendwann auch mal die GUI um … die Hoffnung stirbt zuletzt.

9 thoughts on “DFS-N auf FQDN umstellen

    • 14.10.2014 at 07:29
      Permalink

      Hat in der Ausführung super geklappt. Geräte die vorher keinen Zugriff hatten, können jetzt. Bleibt zu hoffen dass keine Probleme auftreten werden.

      Danke Marc

      Reply
  • 02.10.2015 at 17:08
    Permalink

    Super Anleitung, in 2012 musste noch ein Schritt mehr als in 2008 durchgeführt werden, diesen habe ich nur hier gefunden. Thx

    Reply
  • 28.07.2017 at 09:06
    Permalink

    Hallo, kann man nach der Umstellung weiterhin die Kurzform eingeben oder muss der User dann immer den FQDN eintragen?

    Reply
    • 28.07.2017 at 22:00
      Permalink

      Hallo Christian,

      ja, das sollte funktionieren. Windows hängt ja in der Regel sowieso das DNS Suffix an Hostnamen an, die nicht voll qualifiziert sind.

      Gruß,
      Marc

      Reply
  • 27.01.2020 at 21:42
    Permalink

    Hat das eigentlich jemand auch ausprobiert der solche Folder Targets mit DFS-R repliziert hat? Bleibt das intakt oder macht es ein resync .. geht gar nicht mehr?
    Gruss Daniel

    Reply
    • 28.01.2020 at 10:18
      Permalink

      Ausprobiert habe ich das selbst noch nicht, da der Einsatz von DFS-R immer mit Vorsicht zu genießen ist. Wenn du die Replikation “von Hand” eingerichtet hast (also in der DFS-N Konfiguration ist keine Verbindung zur DFS-R Konfiguration zu sehen), dann wird da nichts passieren – du kannst ja auch Ordner replizieren, die nicht per DFS-N freigegeben sind. Wenn du den Assistenten die Replikation automatisch hast hinzufügen lassen (“Sie haben mehrere Target angegeben, soll eine Replikation konfiguriert werden?”), dann wäre ich etwas vorsichtiger. Da könnte es tatsächlich sein, dass die Konfiguration mit dem Entfernen eines Folder Targets geändert wird.

      Vielleicht stellst du das mal in deiner Testumgebung nach – brauchst ja nicht viel dafür – und berichtest hier, was du herausgefunden hast? Also falls es nicht schon jemand mal gemacht hat …

      Reply
  • 28.01.2020 at 22:28
    Permalink

    Hab’s getestet und es wirklich keine Zusammenhang. Sprich man kann die von dir beschriebenen Schritte ausführen und es gibt weder ein Unterbruch noch ein ReSync. Übrigens verwende ich DFSR viel und wenn mans richtig macht funktioniert das auch.
    Noch was in die Runde: Ich bin auf diesen Artikel gestossen weil bei unserem Test-Setup und zwei Kunden es nicht möglich ist über Windows VPN-Verbindungen auf DFS-Shares zuzugreifen (normale Shares direkt auf einen Server funktionieren). Dacht das wäre die Lösung, lieder hat es auch nicht geholfen. Evt. hat jemand noch Ideen.

    Reply
  • 14.08.2020 at 13:45
    Permalink

    Schöner Beitrag, auch in 2020 mit Server 2019 noch Topaktuell.
    Bin über den Artikel gestolpert weil VPN User keine Verbindung zum DFS Share herstellen konnten.
    Ergebnis steht aus.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.