Avatar billede hkm Nybegynder
22. august 2005 - 10:40 Der er 13 kommentarer

Oracle gennem firewall

Hej Eksperter

Jeg vil gerne have fat i vore Oracle server udefra, men kan ikke få det til at virke.
Jeg gør følgende:

Vores Oracle (9.2.0.4) køret på Unix med TNS lisner på port 1521.
Jeg er ikke Oracle ekspert, men vores Oracle skulle have en standart opsætning.
Der kan fint laves en "tnsping" lokalt fra min egen maskine via vores LAN.

Vores firewall er en Sonicwall (TZ 170), her har jeg lavet en regel der åbner port 1521 til IP adressen (LAN) på vores Oracle. Jeg har under "Advanced" aktiveret SQLNet (support for Oracle).
Alle porte er åben fra LAN til WAN.

Jeg har fra Oracle Net Manager oprettet en "service naming" til adressen på vores firewall, men kan ikke komme igennem.
Jeg har også prøver at lave en rute med WAN adressen på firewallen og LAN adressen på Oracle serveren, men også uden resultat.

Jeg har prøvet at forbinde fra vores server ude i byen og fra en WinXP direkte på nettet uden firewall, begge med samme resultat :o(

Når jeg tester får en "TNS-12535: operation timed out" både med tnsping og fra "Oracle Net Manager".

Håber at I har nogle gode råd og ideer,

Mvh Henrik
Avatar billede pnielsen Nybegynder
22. august 2005 - 12:05 #1
+ The TNS-12535 or ORA-12535 error is normally a timeout error associated
  with Firewalls or slow Networks.
+ It can also be an incorrect listener.ora parameter setting for the
  CONNECT_TIMEOUT_<listener_name> value specified.
+ In essence, the ORA-12535/TNS-12535 is a timing issue between the client and
  server.
- Ensure that your Client and Server platforms and versions are supported and
  within Oracle's recommended guidelines.
- Make sure that any non-supported issues, such as Soft links, shared config
  files, etc., are removed before looking into this document.
- If you are running Oracle Names Server, then setup a temporary tnsnames.ora
  file and edit the sqlnet.ora file to reflect (TNSNAMES) for the
  names.directory_path.
- If you are running MTS (Multi Threaded Server), then try the same
  connection with (SERVER=DEDICATED) in the tnsnames.ora alias.

Error:  ORA-12535 / TNS-12535
Text:  TNS:operation timed out
---------------------------------------------------------------------------
Cause:  The requested connection could not be completed within the timeout
        period specified by the CONNECT_TIMEOUT parameter in listener.ora. This
        error arises from the tnslsnr.
Action: Either reconfigure CONNECT_TIMEOUT to be 0, which means wait
        indefinitely, or reconfigure CONNECT_TIMEOUT to be some higher value.
        Or, if the timeout is unacceptably long, turn on tracing for further
        information.


1. Find out if you are going through any Firewalls or Routers.
  If you are, then see Note A below.

2. Try to "ping" the ip address or hostname from the client.
  Check the timing response and see if it is acceptable.
  If it is not, then you may need to increase the
  CONNECT_TIMEOUT_<listener_name> value in the listener.ora file on the
  Server.
  Doing this will correct the connectivity problem, but may be masking the
  real problem of the physical network.

(See the Sqlnet / Net8 Administrators guide for details on how to make these
changes)


Note A
------
1a. If you are going through a Firewall, and your server platforms are UNIX,
    then you must ensure that the port being listened on is open, unless you
    are running the Firewall vendor's Proxy Server, in which case this will
    allow connectivity.

1b. If you are not running the Firewall vendor's Proxy, and the port is not
    open, then you will have a refusal from the outside into the Firewall zone.
Avatar billede brianboese Nybegynder
22. august 2005 - 14:56 #2
Jeg vil mene at der skal være åbnet for port 1521. Du må huske at listener kun lytte på linien.

/Brian
Avatar billede hkm Nybegynder
22. august 2005 - 15:41 #3
Hej Brian

Jeg har åbnet for port 1521 udefra og ind.
Det jeg ikke rigtig ved er om listener svarer alt der spøger.
Kunne der på vores Oracle server skulle gives adgang til forespørelser der kommer via. vores firewall ?
Avatar billede hkm Nybegynder
22. august 2005 - 15:45 #4
Hej Pnielsen

Jeg syntes at jeg har prøvet alt hvad du skriver.
Jeg kan ikke pinge vorres firewall men det er fordi vi ikke tillader det.
Timeout tror jeg skyldes, at jeg slet ikke kommer igennem eller Oracle ikke vil svare.

Jeg er ikke Oracle Ekspert, men kunne det ikke tænkes at jeg skal gøre et eller andet før den vil snakke gennem vores firewall ?
Avatar billede hkm Nybegynder
22. august 2005 - 15:48 #5
Det skal lige nævnes at jeg fint har adgang til vores SQL-server via firewall'en.
Reglen til Oracle er lavet på samme måde (selvfølgelig ikke på samme port), eneste forskal er at jeg har enable SQLNet.

/Henrik
Avatar billede pnielsen Nybegynder
22. august 2005 - 15:51 #6
Der er flere steps vi skal checke for at finde ud af hvor problemet ligger:

1. Du siger selv at 1521 er åben udefra og ind. Men lad os checke at du når ind til serveren. Spørgmålet er om du kommer helt ind til listeneren. Prøv at connecte udefra og se om du får et entry i din listener.log

2. Kører du med mts på din database? (smid et output af din init.ora)
Avatar billede pnielsen Nybegynder
22. august 2005 - 15:53 #7
Avatar billede lap Nybegynder
22. august 2005 - 18:27 #8
hvis serveren er sat op med MTS skal du prøve at slå det fra - er set før i firewall sammenhæng - det kræver en applikations firewall hvis oracle er beskyttet bag en firewall med NTS
Avatar billede hkm Nybegynder
23. august 2005 - 09:10 #9
Pnielsen

Tak for artiklen, jeg kan godt se at mine odse ikke ser for gode ud :o|
Avatar billede hkm Nybegynder
23. august 2005 - 09:18 #10
Lap

Jeg er ikke lige helt med på MTS, hvad er det?

Jeg har tænkt på, om man kunne sætte mere end en TNS lisener op på Oracle.
Hvis man kan, kunne jeg så lave en der både lytter og svarer på f.eks. port 1526. På den måde kan jeg vel bare åbne denne port ind og ud.

P.S. jeg vil ikke lave om på den TNS lisener der kører på vores Oracle nu, da den bruges til intern produktion.

/Henrik
Avatar billede lap Nybegynder
23. august 2005 - 10:34 #11
Multi Threadded Server - hvis der er konfigureret MTS i init.ora, så kunne det nemt være dit problem.
Avatar billede qualjyn Nybegynder
25. oktober 2005 - 14:42 #12
Husk også at 1521 kun er "forhandlingsporten", men selve porten ud er en helt anden, så hvis du kun tillader trafik på 1521 ud, så er det dit problem.

Timeout kan også forhindres, hvis det er noget der opstår efter længere brug, ved at tilføje SQLNET.EXPIRE_TIME=<int> i ORACLE_HOME/network/admin/sqlnet.ora til et interval mindre end firewall'ens timeout.
Avatar billede bpuschl Nybegynder
02. juni 2006 - 14:46 #13
Hvis du sætter følgende variabel

USE_SHARED_SOCKET=TRUE

og genstarter serveren, så burde du få svar på samme port.

Problemet er at listeren ryster porte posen, når den svare tilbage. Det vil du kunne se hvis du laver en trace.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester