Terminalserverfarm: Anmeldungen auf einzelnen Server unterbinden

WIN.ini

Enthusiast
Thread Starter
Mitglied seit
28.03.2008
Beiträge
551
Hallo,

ich hoffe ihr könnt mir bei folgenden Problem helfen.

Wir haben eine Terminalserver Farm auf 2012R2 Basis mit 4 Hostservern. Verwaltet werden diese von einem Extra Server.
Wir nutzen das Round Robin DNS. Um auf die Farm zu verbinden starten wir eine RDP auf TERMINAL.domäne.local.
Im DNS ist TERMINAL mit den 4 IP Adressen der Server verbunden.

Fällt nun ein Server aus Wartungsgründen aus, verbinden wir uns auf den "Manager" und deaktivieren die Anmeldung via Rechtsklick auf den Punkt "Keine neuen Verbindungen zulassen":
Anhang anzeigen 337399

In meiner Logik, sollten neue Verbindungen nun auf die anderen Server verteilt werden.
Aber leider ist dem nicht so.

Benutzer erhalten nun die Fehlermeldung "Remoteanmeldungen sind zurzeit nicht möglich" und können sich erst wieder anmelden, wenn ich den Server wieder freischalte.

Allerdings betrifft dies nicht alle. Einige Benutzer landen korrekter Weise auf einem der anderen Server (vermutlich zufällig).

Ich denke, dass meine Art der Anmeldeverweigerung nicht die Richtige ist.
Weiß daher jemand, wie ich einzelne Server für Wartungszwecke sperren kann?


Danke und viele Grüße!
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
das was du willst funktioniert nur wenn ihr einen Connection Broker habt...der ist für den Lastenausgleich zuständig und würde im fall von "keine neuen Verbindungen" eben nicht mehr an diesen Server redirecten.

Es geht schlicht nicht mit dns round Robin, wie auch?
 
Hi,

natürlich meine ich mit "Manager" oder "Verwaltungsserver" den Connection Broker, sorry. Dachte das wäre klar. Wir bezeichnen ihn intern als Manager.

Ich glaube das Problem an sich heute gefunden zu haben.
Aus einem mir bisher unbekannten Grund war/ist auf dem internen DNS-Servers des Routers ebenfalls ein statischer Host zu nur einem Terminalserver gesetzt. Damit wird unser DNS-Server natürlich komplett umgangen und das Round-Robin greift nicht. Ein kurzer Test bestätigte, dass durch Eingabe der IP eines anderen Terminalservers via mstsc eine Verbindung aufgebaut werden konnte.

Das wird nochmal genau geprüft und korrigiert.

Trotzdem ist mir die Funktionsweise scheinbar nicht klar.

Bisher habe ich mir das Prinzip wie folgt vorgestellt:

1. RDP Verbindungsaufbau an TERMINAL.domäne.local
2. Nachfrage beim DNS welche IP dahinter steckt.
3. Antwort nach Round-Robin Prinzip vom DNS.
4. TerminalserverX nimmt Verbindung an und fragt Connection Broker wohin die Sitzung durchgestellt wird
5. Connection Broker leitet entweder an selben Terminalserver, oder an einen anderen weiter, welcher NICHT deaktiviert ist.
6. Verbindung auf aktivieren Terminalserver mit geringster Last wird aufgebaut.


Dies scheint aber nicht der Realität zu entsprechen, denn selbst wenn ein Terminalserver deaktiviert ist, antwortet dieser ja noch auf die DNS-Anfrage, steht also prinzipiell als Server bereit.
 
Hatte da wohl auch nicht aufmerksam genug gelesen, dann wäre das klar gewesen was gemeint ist.

Die Verbindung der Clients muss auf den/die Connection Broker zeigen, nicht zu den Sessions Hosts.
 
Zuletzt bearbeitet:
Was glaubst du warum MS Active/Active Connection Broker eingeführt hat? ;)

Das Problem bei der DNS Round Robin Geschichte ist eben genau das worauf du gestoßen bist, die Wartung. Genau in diesem Punkt sind die meisten Artikel diesbezüglich auch sehr explizit (deiner)
"Zum einen verbindet er die Benutzer mit (schon existierenden) Session-basierten Desktops und RemoteApp-Programmen, zum anderen verteilt er die Last zwischen den Hosts. Bei Ausfall eines Servers kann er zudem die Benutzer automatisch auf einen anderen umleiten."
-> Loadbalancing = jop
-> Ausfallsicherheit = jop
-> Geplante Downtimes/Wartung = nop
Man kann das meiner Ansicht wie folgt lösen:
- Anmeldung deaktivieren und Netzwerkanfragen von nicht Verwaltungscomputer blockieren (z.B. mit Windows Firewall). Vorhandene Verbindungen werden unterbrochen.
-> Die Clients probieren nur "den nächsten" wenn der erste nicht Erreichbar ist, ist die Anmeldung aber "nur" deaktiviert Antwortet er ja.

Übrigens muss man meiner Ansicht nach mit der DNS Round Robin Geschichte für die Hosts die/den Conneciton Broker auch nicht getrennt von den Session Hosts laufen lassen...ich wüsste nicht wofür. Da kann man dann einfach den Broker in nem HA Setup auf alle Session Hosts packen (oder min 2) und spart sich den zusatzserver komplett. *meine Meinung*

Was ich dir nicht sagen kann, warum in der tat das im link beschriebene eine verbreitete Anleitung ist (je nach Region, in Russland findet man solche Anleitungen z.B. praktisch gar nicht).

Die (saubere) alternativen sind Hardware Loadbalancer oder eben dedizierte vorgeschaltete Connection Broker. Ansich ist die Verbindung zum Connection Broker anstatt zu den Hosts auch die von MS vorgesehene Variante
RD Connection Broker High Availability in Windows Server 2012 - Remote Desktop Services (Terminal Services) Team Blog - Site Home - MSDN Blogs
"...and RDP clients are connecting to the RD Connection Broker servers using DNS Round Robin."
Microsoft Desktop Virtualisierung 2012 - Bernie's TechBlog - Site Home - TechNet Blogs
"Die zentrale Komponente ist der Remote Desktop Connection Broker, der die Zugänge zu Session Host Farmen (vormals Terminal Servern) [...] regelt."
https://technet.microsoft.com/en-us/library/ff686148(v=ws.10).aspx
Evaluating Your Options for Desktop Virtualization (Part 1)
Auch der Webzugriff (rdweb+webfeed) erzeugt RDP Files die auf den Broker verweisen und nicht die Hosts - und dieser weg ist der einzige weg "Verbindungsdetails" von der Farm generieren zu lassen, wenn es die selbst nicht weiß, wer dann?

Anmerkung dazu: Es bleibt dabei, Connection Broker tot, vorhandene Verbindungen bleiben bestehen. Ein Ausfall/Downtime ist bei weniger hoch frequentierten Umgebungen verschmerzbar und HA nicht Pflicht - HA entspannt das ganze aber natürlich und die Rolle nimmt auch nicht wirklich viel Ressourcen in Anspruch und kann deshalb "überall" mitlaufen.


edit meint ich solls noch sagen
ja ich bin mir sicher
 
Zuletzt bearbeitet:
Wow!

Herzlichen Dank für deine Ausführung.

Ich werde ein wenig brauchen das ganze zu studieren und zu verinnerlichen, aber ich denke damit werde ich es verstehen!

Besten Dank für deine Zeit!
 
Noch eine Anmerkung für die Clients

Da du das Web Publishing nicht nutzt (oder noch nicht)

In RDP Files ist folgendes nötig:
use redirection server name:i:1
loadbalanceinfo:s:tsv://MS Terminal Services Plugin.1.<collection Name>

Wenn du deine "Verteilung" wie bisher beibehalten willst -
-> Clients geben in mstsc einen dns namen ein (der halt auf die Broker zeigen müsste)
Solltest du auf den Brokern die "DefaultTsvUrl" setzen (=loadbalanceinfo im rdp file)
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh