NetBIOS über ein VPN: Name, Datagramm und Sitzung sind getrennte Dienste
Der Slogan über Router ist zu weit gefasst. Prüfen Sie, welchen der drei Dienste Ihre Anwendung nutzt und ob sie Namen per Broadcast oder über einen Server auflöst.
„NetBIOS überquert keine Router“ wird wiederholt, als hätte das die Frage entschieden. Hat es nicht. Eine Namenssuche per Broadcast bleibt meist innerhalb ihrer Broadcast-Domäne, aber NetBIOS-Dienste können auch gerichteten IP-Verkehr nutzen, der sich einwandfrei routen lässt. Die nützliche Frage ist nicht, ob NetBIOS Router überquert; sie ist, welchen der drei Dienste Ihre Anwendung nutzt.
Eine Softwareschnittstelle, kein einzelnes Drahtprotokoll
RFC 1001 beschreibt NetBIOS als Schnittstelle, gegen die Anwendungen programmieren, mit mehreren Transporten darunter. Sein TCP/UDP-Modell trennt Namensdienst, Datagrammverteilung und Sitzungsdienst, und es unterstützt ausdrücklich den Betrieb mit oder ohne IP-Broadcast.
| Service | What it does | Transport dependence |
|---|---|---|
| Name | Registers and resolves names | Broadcast, point-to-point, or a name server |
| Datagram | Connectionless messages, including broadcast | Broadcast domain or directed delivery |
| Session | Connection-oriented exchange | TCP connection to a named endpoint |
Genau diese Tabelle lässt den Slogan scheitern. Ein Sitzungsdienst zwischen zwei benannten Hosts ist eine IP-Unterhaltung; ein Broadcast-Datagramm ist keine. Ein VPN-Entwurf kann das erste erfüllen und das zweite nicht, und ein Test, der das erste belegt, sagt nichts über das zweite.
Der Knotentyp entscheidet, wonach der Client fragt
Die Broadcast-, Punkt-zu-Punkt- und gemischten Knotenmodelle aus RFC 1001 beschreiben, wie ein Host Namen auflöst: indem er das lokale Netz fragt, direkt einen Namensserver fragt oder erst das eine und dann das andere versucht. Das Modell beeinflusst, welcher Verkehr erlaubt sein muss, nicht, ob die Anwendung überhaupt funktioniert.
Eine verwaltete Namensserver-Lösung gibt Clients einen Punkt-zu-Punkt-Pfad, aber nur Clients, die dafür konfiguriert sind. Einen Server irgendwo im Netz aufzustellen bringt eine Anwendung nicht dazu, ihn zu befragen, und ein Client, der im Broadcast-Modus bleibt, fragt weiter das lokale Segment und läuft in Zeitüberschreitungen. Die Adresse des Servers muss die Konfiguration des Clients erreichen, und zwar über den Verwaltungsweg, den dieser Client beachtet.
Notieren Sie daher drei Beobachtungen für die betreffende Anwendung: wie sie den Servernamen in eine Adresse umwandelt, ob Erkennung oder Nachrichtenversand Broadcast oder einen gerichteten Endpunkt nutzt, und welche Adresse und welchen Transport die tatsächliche Sitzung verwendet. Das sind unabhängige Tatsachen, und jede hat ihre eigene Abhilfe. Eine einzige erfolgreiche Namensauflösung ist nur ein Beleg für die erste.
NetBIOS über TCP/IP ist nicht NetBEUI
Beides wird verwechselt, weil beides als veraltet gilt. NetBIOS über TCP/IP trägt seine Dienste in IP-Paketen, die ein gerouteter Tunnel ohnehin befördert. NetBEUI ist ein nicht routbares Protokoll der Schicht 2, und ein IP-Tunnel befördert keine beliebigen Ethernet-Rahmen, nur weil er IP befördert.
Eine zusätzliche IP-Route kann einen Nicht-IP-Rahmen nicht in eine IP-Anwendung verwandeln. Hängt eine Anwendung wirklich vom Verhalten der Schicht 2 ab, bleiben ein ausdrücklich begrenzter Dienst der Schicht 2 oder das Ersetzen der Anwendung; keine Routingänderung ersetzt eines von beidem.
Wählen Sie die kleinste Änderung, die die Aufgabe erfüllt
Eine bestehende SMB-Freigabe, die über einen genehmigten DNS-Namen und einen expliziten UNC-Pfad erreicht wird, braucht keine Ethernet-Erweiterung. Die Dateidienst-Aufgabe und das Durchsuchen sind verschiedene Anforderungen, und nur die zweite hängt von der Nachbarliste ab. Die Freigabe über den Namen zu erreichen löst die Aufgabe, ohne die Broadcast-Domäne durch einen Tunnel zu ziehen.
Das Durchsuchen ist der Teil, der meist scheitert, und es scheitert still. Ein Rechner kann eine Freigabe über den Pfad öffnen, während die Liste der nahen Computer leer bleibt, weil die Liste durch Broadcast-Erkennung gefüllt wird und der Pfad DNS nutzt. Zu entscheiden, dass Sie die Liste brauchen, ist eine andere Anforderung als zu entscheiden, dass Sie die Datei brauchen. Schreiben Sie auf, wonach der Nutzer tatsächlich gefragt hat, bevor Sie etwas entwerfen.
Wenn eine Alt-Anwendung wirklich Broadcast oder Nicht-IP-Rahmen benötigt, prüfen Sie einen begrenzten Dienst der Schicht 2 mit benanntem Verantwortlichen oder ersetzen Sie die Anwendung. Eine Brücke erweitert die gemeinsame Fehlerdomäne und die Policy-Grenze, und das ist eine Architekturentscheidung, kein Kästchen mit der Aufschrift NetBIOS. Dokumentieren Sie die konkreten Vorgänge, die der Tunnel tragen muss, dann kann ein Administrator die Anfrage bewerten, statt über „das ganze Windows-Netzwerk“ zu raten.