Announcement

Collapse
No announcement yet.

remote Verbindungsproblem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • remote Verbindungsproblem

    Hallo,

    ich bin seit einigen Tagen am Verzweifeln und finde keine Lösung für mein Problem. Vielleicht habt ihr eine Lösung parat.

    Ich habe eine Oracle Datenbank (Oracle 9i) in einem Netzwerk, welches durch eine Firewall nach draußen geschützt ist. Innerhalb des Netzwerkes treten auch keine Probleme auf. Die DB läßt sich wunderbar verbinden.
    Nun ist das Netzwerk, in dem sich die DB befindet, durch eine Firewall geschützt. Um eine Verbindung zu diesem Netz aufzubauen, wird eine SSH Sitzung aufgebaut, die die weitere Kommunikation tunnelt.
    Der SSH-Server ist im gleichen Netzwerk wie der Oracle-Server und sind beide zueinander direkt erreichbar.

    Der Client im "externen" Netzwerk nutzt putty. Die putty-Sitzung ist so konfiguriert, dass der lokale Port 10000 auf den Oracle-Port 1521 (Listener Port) weitergeleitet wird.
    Ein TNSping vom externen Client aus ist so möglich. Jedoch noch keine Verbindung zur Datenbank, da die Datenbank über einen "zufälligen" Port mit dem Client sprechen will.

    Nun habe ich in diversen Foren gelesen, dass man einstellen kann, dass der Listener der Datenbank mitteilen kann, dass diese ebenfalls über den Port 1521 mitdem Client kommunizieren soll, also ein "Shared Socket".
    Ich habe nun, wie in einem Forum geschrieben, über den Parameter USE_SHARED_SOCKET versucht, die Datenbank nach meinem Wunsch zu konfigurieren. Ich habe 3 Varianten versucht: HKLM:/Software/Oracle, HKLM:Software/Oracle/Home<#> und als Umgebungsvariable.
    Alle 3 Versuche haben (nach einem Neustart des Servers) NICHT funktioniert.
    In der listener.log auf dem Server sind die Verbindungsversuche zwar geloggt, jedoch wurde immer ein dynamischer Port verwendet.

    Code:
    31-JUL-2008 13:49:01 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<meineDB>)(CID=(PROGRAM=<meinProgramm>)(HOST=<meinRechner>)(USER=<meinNutzer>))) * (ADDRESS=(PROTOCOL=tcp)(HOST=<sshServer>)(PORT=53140)) * establish * GNDB * 0
    
    Die Einträge <...> sind exemplarisch.
    Es sollte doch aber für mein Vorhaben bei Port statt 53140 die Nummer 1521 stehen. Oder?

    Nun habe ich hier im Forum gelesen, dass es einen Oracle Communication Manager geben soll (cman.exe), der dieses Problem wohl beheben könnte. Konnte ihn meiner Installation jedoch nicht finden. Obwohl ich mir sicher bin, dass ich das komplette Oracle installiert habe.

    Kann mir irgendjemand weiter helfen?

    Vielleicht habe ich ja auch einen Denkfehler und muss noch etwas mehr beachten.

    Es soll folgendes funktionieren:
    Code:
             Client--->[SSH]--->[Firewall]--->SSH-Server--->Oracle Server
    Port: 10000                         22            22                   1521
             Client<---[SSH]<---[Firewall]<---SSHServer<--- Oracle Server
    Die gesamte Kommunikation mit der Datenbank soll also über einen Tunnel geschehen.

    Bitte helft mir.

    Gruß, Jan

  • #2
    Problem gelöst

    Nach nochmaligem Testen funktioniert die Geschicht nun doch.

    Das Problem ist, man sollte sich nicht nur auf Log-Dateien in Verbindung mit Annahmen verlassen.

    In der listener.log werden zwar die Einträge mit einem Port geloggt, jedoch hat der anscheinend nichts zu sagen in Bezug daruf, über welchen Port der Server mit dem Client spricht. Denn eine Verbindung wird nun über ein Shared-Socket hergestellt, aber im Log-File wird denoch ein anderer Port ausgegeben.

    Danke für's grübeln

    Comment

    Working...
    X