Hallo,
ich beschaeftige mich nun schon seit einiger Zeit mit RPC over HTTP.
Funktionieren tut es einwandrei - aber ich habe noch ein paar Fragen,
die mir bis jetzt kein Beitrag und keine Dokumentation beantworten
konnte und die bei mir fuer reichlich Unklarheit sorgen.
Ich beschreibe in diesem Beitrag meine funktionierende Konfiguration -
in der Hoffnung, dass selbst das schon jemandem bei der Einrichtung
weiterhilft. Der Beitrag ist relativ lang - ich hoffe trotzdem, dass
sich ein schlauer Fuchs erbarmt und mir meine Fragen beantworten kann.
Erst mal zu meinem Szenario. Ich betreibe drei Domaenencontroller, von
denen zwei den Globalen Katalog fuehren. Exchange 2003 SP1 laeuft auf
einem Memberserver und ist gleichzeitig der RPC Proxy:
----------- ----------- -----------
AD1 (DC+GC) AD2 (DC) AD3 (DC+GC)
----------- ----------- -----------
-----------------
EX2K3 (RPC Proxy)
-----------------
Wie in zahlreichen Dokumentationen beschrieben, habe ich auf dem RPC
Proxy das virtuelle Verzeichnis im IIS-Snap-In entsprechend
konfiguriert und im Exchange System Manager den Exchange Server als
Ziel fuer den RPC Proxy angegeben (als Backend-Server).
Danach habe ich die Einstellungen in der Registrierung angepasst. Und
dazu habe ich auch gleich ein paar Fragen.
Erst einmal muessen auf dem RPC Proxy die Ports der Dienste angegeben
werden, mit denen der RPC Proxy kommunizieren soll. Da diese Dienste
standardmaessig ueber dynamische Ports erreichbar sind, registriert
Exchange fuer die Verwendung von RPC over HTTP dafuer feste Ports.
Dabei handelt es sich um folgende Dienste auf dem Exchange-Server:
Information Store: Port 6001
System Attendant: Port 6002
Referral (RFR) service: Port 6002
NSPI (Name Service Provider Interface): Port 6004
Die Adressen dieser Dienste muessen in der Registrierung des RPC
Proxy-Servers an folgender Stelle explizit angegeben werden:
Schluessel: HKLM | Software | Microsoft | RPC | RPCProxy
Wert: ValidPorts
Typ: Reg_SZ
Das Format der Eintraege lautet dabei wie folgt:
<server_name>:<port_number>, zum Beispiel ex2k3:6001
Dabei benoetigt jeder Port bzw. Dienst seinen eigenen Eintrag, und das
jeweils sowohl mit NetBIOS Namen des Servers sowie mit dem FQDN des
Servers. In meinem Fall lauten die Eintraege dann wie folgt:
ex2k3:6001-6002;ex2k3.active-directory.dom:6001-6002;ex2k3:6004,
ex2k3.active-directory.intern:6004
Soweit, so gut.
Weil seit Exchange 2000 das Active Directory als Verzeichnis benutzt
wird, kontaktiert Outlook fuer Adresslisten nicht mehr Exchange,
sondern direkt das NSPI Interface auf einem Globalen Katalog Server.
Da NSPI standardmaessig ebenfalls einen dynamischen Port benutzt, muss
auch hier wieder fuer den RPC Proxy ein fester Port konfiguriert
werden. Das geschieht durch folgenden Eintrag in der Registrierung auf
dem/den Globalen Katalog Server/n:
Schluessel: HKLM | System | CurrentControlSet | Services | NTDS |
Parameters
Wert: NSPI Interface Protocol Sequence
Typ: Reg_Multi_SZ (multi-string)
Angegeben werden muss folgender Eintrag: ncacn_http:6004
Damit ist das NSPI Interface auf dem/den Globalen Katalog Server/n
fuer den RPC Proxy auf TCP Port 6004 erreichbar.
So. Genau diese Konfiguration habe ich gemacht - und es funktioniert
alles einwandfrei (auf die SSL Konfiguration gehe ich hier nicht ein).
Jetzt zu meinen Fragen:
Wie oben beschrieben, muss auf den Globalen Katalog-Servern ein fester
Port fuer NSPI registriert werden, damit der RPC Proxy darauf
zugreifen kann.
Warum muss ich diesen Port auf dem RPC Proxy unter "Value Ports" nicht
mit angeben? Bei mir funktioniert es auch ohne die Angabe des Globalen
Katalog-Servers in der Registrierung.
Auf einigen Seiten steht, dass man ihn unbedingt angeben muss, auf
anderen Webseiten hingegen ist davon ueberhaupt nichts zu lesen.
Ich verstehe nicht, wie die Verbindung ohne die Angabe des Globalen
Katalog-Servers in "Value Ports" ueberhaupt funktionieren kann - der
RPC Proxy duerfte doch von Port 6004 auf dem GC so gar nix wissen.
Gerade deshalb macht man ja die Eintraege in "Value Ports", naemlich
damit der RPC Proxy weiss, wo er die Dienste finden kann.
Wenn ich bei mir in Outlook den Verbindungsstatus ansehe, ist unter
Verzeichnisdienst auch mein Exchange-Server und _nicht_ der Globale
Katalog-Server zu sehen - obwohl der Exchange-Server ja gar keinen
globalen Katalog respektive Verzeichnisdienst fuehrt.
Ach, noch was:
Warum ist auf dem Exchange Server der Port 6004 ebenfalls fuer NSPI
registriert und warum muss er unter "Value Ports" angegeben werden?
Ich denke, NSPI ist die Schnittstelle zum Globalen Katalog, weshalb
man Port 6004 ja auch durch ncacn_http:6004 auf dem Globalen Katalog
Server fixieren muss.
Freundliche Gruesse, Michael