Charels bischof: MS DNS Server Konfiguration

Hallo Leute,

ich habe da ein kleines Problem und hoffe das mir jemand helfen kann.
Folgendes Szenario:

Ich habe eine Intranetapplikation geschrieben. Diese wird auf  einem Internen W2K Server gehostet.
Auf die App kann man auch über das Internet nach der IIS Authentication zugreifen.
Die Links auf diesen Webseiten lauten wie folgt
http://intra.xxx.de/meineApp/seite.asp usw.
Über das Internet ist der Zugriff kein Problem aber aus dem Intranet leider nicht.
Ich kann nicht die Links auf  http://serverName/meineApp/seite.asp  umstellen, da dann die Links in den jeweiligen Seiten nicht aus dem Internet erreichbar sind.

Wie oder was muß ich am DNS Server einstellen damit diese Adresse aus dem Intranet auch erreichbar ist?
Der DNS soll sobald aus dem Internen der Aufruf http://intra.xxx.de/meineApp/seite.asp
kommt, nicht versuchen ins Internet zu gehen um diese Seite aufzurufen.

Grüße

Charles Bischof

  1. Hallo Charles

    Wie oder was muß ich am DNS Server einstellen damit diese Adresse aus dem Intranet auch erreichbar ist?
    Der DNS soll sobald aus dem Internen der Aufruf http://intra.xxx.de/meineApp/seite.asp
    kommt, nicht versuchen ins Internet zu gehen um diese Seite aufzurufen.

    Ist dieser DNS nur für die interne Verwendung eingerichtet oder verwaltest Du auf dem DNS auch die Einträge für das Internet?

    Solange die normalen Einträge für das Internet auf den DNS-Servern Deines Providers gehostet werden, kannst Du im Intranet für Eure Zone (Domain oder Subdomain, z.B. xxx.de) ein eigener DNS aufsetzen und dort die Einträge für den internen Gebrauch verwalten.

    Zusätzlich müssen natürlich alle Clients in Deinem Netz den internen DNS abfragen. Dazu muss entweder auf jedem Client die TCP/IP-Konfiguration oder der DHCP-Server in Deinem Netzwerk angepasst werden.

    Der interne DNS muss weiter so konfiguriert werden, dass die für ihn unbekannten Domainanfragen zum externen DNS-Server beim Provider weitergeleitet werden (DNS-Forwarding).

    Zusätzlich solltest Du auch einen zweiten Server im Netzwerk als Backup-DNS einrichten und ein Zone-Transfer zwischen den beiden Servern konfigurieren.

    Dein Vorhaben ist unter bestimmten Voraussetzung mit einigem Aufwand realisierbar. Die Voraussetzungen sind:

    • die Zone für das Internet wird bei Deinem Provider verwaltet und
    • die DNS-Einstellung können auf allen Clients im Intranet angepasst werden, bzw. der DHCP-Server kann umkonfiguriert werden.
      Weiter musst euf einem, jedoch besser zwei, Servern den DNS installieren und konfigurieren. Dies benötigt schon einige Stunden bis alles sauber klappt.

    Falls Du weitere Fargen hast, so melde Dich wieder ;)

    Grüsse
    Eisbär

    1. Hallo Eisbär,

      Falls Du weitere Fargen hast, so melde Dich wieder ;)

      ich glaube das ich falsch verstanden worden bin.

      Es ist so:

      Es ist ein voll funktionierendes Netzwerk.
      Der DHCP verteilt die IP's an die User.
      Der DNS löst die internen Namen auf und macht natürlich auch ein forwarding ins Internet zum DNS des Providers um Ihm nicht bekannte Namen aufzulösen. Besser gesagt sendet er alle Anfragen an den Router
      (Cisco) der an den DSN vom Provider usw...
      Das funktioniert bestens und ist wohl konfiguriert.

      Mein Problen falls es überhaupt eines ist, ist das der Server wo der DNS- Dienst läuft nun vom Provider eine feste IP bekommen hat.
      Damit ist sichergestellt das dieser aus dem Internet erreichbar ist.
      Natürlich abgesichert durch eine Firewall.

      So, ich habe eine Applikation geschrieben (ASP / MS SQL) mit der die Mitarbeiter Ihre Arbeitszeiten erfassen.

      Nun kann der Mitarbeiter in Hamburg ins Internetcafe und sich auf dem Server einwählen, identifizieren und seine Arbeitszeiten erfassen.

      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.

      Die Links sind alle dynamisch und werden nach Bedarf und Zugrifsrecht(e) (User) aus der Datenbank geholt.

      Die Applikation soll natürlich auch den Internen Mitarbeiten zu Verfügung stehen. Die geben natürlich auch http://xxx.xxx.xxx.xxx/anwendung ein um auf die login Seite zu gelangen. Usw.

      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.

      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).

      Dass das geht weiß ich.

      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.

      Das ist kein Problem. Aber ich habe nur eine IP- Nr. und das will nicht klappen.

      Grüsse Charles

      1. 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