Eisbär: MS DNS Server Konfiguration

Beitrag lesen

Hallo Charles

...

Soweit klar.

Dazu ruft dieser die Seite mit http://xxx.xxx.xxx.xxx/anwendung auf.
Nach dem einloggen kommt der Usere auf eine WebSeite in der weitere Links vorhanden sind. Diese lauten auch http://xxx.xxx.xxx.xxx/anwendung/xxxxx.asp oder http://xxx.xxx.xxx.xxx/anwendung/yyyyy.asp.

Beschränken wir uns also auf den Hostnamen, bzw. die IP-Adresse:
   http://xxx.xxx.xxx.xxx/

zum besseren Verständnis nenne ich ihn aber so:
   http://zeiterfassung.mydomain.de/

Der Rest ist für das Problem nicht relevant.

...

Soweit auch klar

Was passier jetzt:

Der lokale DNS kann die Adresse nicht auflösen und sendet diese an den Router der an den DNS des Provider und zurück.

Nein.

Soweit ich verstanden habe, hast Du nur einen DNS, der in Eurem lokalen Netz steht und eine private IP-Adresse (z.B. 192.168.47.11) hat.
Von Aussen, also aus dem Internet, ist dieser DNS-Server über eine öffentliche IP-Adresse (z.B. 212.212.47.11) erreichbar, dabei führt der Cisco-Router eine NAT (Network-Adress-Translation) durch.

Dieser DNS-Server (nennen wir ihn dns.mydomain.de) verwaltet alle Einträge der Zone mydomain.de.
Darin wird auch ein Eintrag stehen müssen in der Art:
   zeiterfassung  IN   A    212.212.47.12

Somit wird bei jeder DNS-Query nach dem Namen zeiterfassung.mydomain.de die IP-Adresse 212.212.47.12 zurückgegeben. Dabei ist es dem DNS-Server völlig egal woher (von innen oder aussen) die Anfrage kommt. Für ihn ist das "aussen" genauso im lokalen Netz, da der Router alle Anfragen von aussen auf die interne IP-Adresse umsetzt. Dem DNS-Server erscheint diese Anfrage mit der privaten Adresse des Routers z.B. 192.168.47.1

Somit kann zwar Dein Mitarbeiter in Hamburg den Zeiterfassungsserver erreichen, die Mitarbeiter im Intranet haben jedoch ein Problem.
Der Client erhält für 'zeiterfassung.mydomain.de' vom DNS (es gibt ja nur einen) die korrekte IP-Adresse 212.212.47.12 zurück. Mit dieser versucht der IP-Stack eine Verbindung aufzubauen, was aber fehlschlägt, da der Router die Adresse nicht zurück auf die interne Adresse (192.168.47.12) weiterleiten kann.
Dieses Problem hatte ich auch schon, ich weisss aber nicht ob man einen Cisco-Router entsprechend konfigurieren könnte oder ob es für dieses Problem grundsätzlich keine Lösung gibt.

Nun meine Frage wie/was muß ich am Internen DNS einstellen das bei
der Eingabe http://xxx.xxx.xxx.xxx/anwendung eines INTERNEN Mitarbeiters der lokale DNS- Dienst die Adresse auflöst und die Anfrage an den INTERNEN Server wo auch die Seiten gehostet werden weiterleitet.
Z.B. http://xxx.xxx.xxx.xxx/anwendung = 192.168.0.x (interne IP).

Mit nur einem DNS kannst Du dieses Problem nicht lösen, da der DNS-Server nicht unterscheiden kann woher die Anfrage kommt.

Ich kann auch im DNS eine neue Forward-Lookupzone einrichten
z.B. www.microsoft.de da lege ich einen Host(www) an, mit dem Verweis auf meinen Server und jeder der Intern www.microsoft.de eingibt kommt nicht auf die Microsoft Seite sondern auf den von mir festgelegten Server.

Klar, da im Eintrag für den host 'zeiterfassung' nur eine IP-Adresse stehen kann, entweder die interne oder die externe. Dies ist bei www.microsoft.de nicht anders.

Für Dein Problem gibt es zwei Lösungsansätze:
1. Du prüfst in ASP bei der Initialisierung der Session (oder am Skriptanfang) ob die Anfrage aus dem externen oder internen Netz stammt. Dies ist über die Client-IP (irgendein CGI-Enviroment-Variable) möglich.
Für externen Benutzer legst Du den Hostnamen 'zeiterfassung.mydoman.de' in einer globale Variable (oder Session-variablen) ab. Für die internen Benutzer nimmst Du entweder die private IP-Adresse (192.168.47.12) oder einen anderen Hostnamen, z.B. 'interneZeiterfassung.mydomain.de' wobei dieser im DNS-Server definiert werden muss.
Die Links baust Du dir in ASP entsprechend zur Laufzeit zusammen, z.B. :
    strURL = "http://" & strHostname & "/" & strPfadASPSeite

2. Du installierst und konfigurierst zwei DNS-Server, einer mit den externe IP-Adressen (zeiterfassung.mydomain.de=212.212.47.12) und einer mit den internen Adressen (zeiterfassung.mydomain.de=192.168.47.12). Die Clients im Intranet werden so konfiguriert, dass sie den internen DNS abfragen, während die externen Anfragen normal zum externen DNS geleitet werden.
Diese Variante ist jedoch weniger elegant und bei vielen DNS-Einträgen und vielen Änderungen auch nicht zu empfehlen, das der Wartungsaufwand doppelt so hoch ist.

Grüsse
Eisbär