Router NAT setting for OraSession.net=True

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
carlotoffolon
Posts: 5
Joined: Thu 14 Sep 2006 14:53

Router NAT setting for OraSession.net=True

Post by carlotoffolon » Thu 14 Sep 2006 15:20

Hi to all.

When I use a TOraSession (ver 5.55.1.24) with net option I can connect to the server only if client and server are on the same lan and not over internet.

I guess it should be a router nat problem, but even if I've set to route the port 1521 to my server ip I still can't connect.

The ambient configuration is:

[Client 10.0.0.X] => [10.0.0.1-RouterA-PublicIpA] => (INTERNET)=> [PublicIpB-RouterB-192.168.1.1]=>[Server 192.168.1.X]

RouterB is set to route port 1521 to ip 192.168.1.X

I've put a sniffer on the server, and it register some traffic, so (maybe) the router rules are ok (below the sniffer log).

As second test i've disconnected the lan cable and connected the server directly to internet (via old-fashon modem), obtaining a TmpInternetIP.

From the client i've put TmpInternetIP:1521:DBNAME in the OraSession.server and everithings works fine, io it's may not be a client nor server settings the problem.

The router is a Zyxel Prestige 600.

Any suggestion ?

Thank you,
Carlo.

**************************
Sniffer log:

No. Source Destination Protocol Info
1 PublicIpA 192.168.1.X TCP 10011 > 1521 [SYN] Seq=0 Ack=0 Win=16384 Len=0 MSS=1460
2 192.168.1.X Broadcast ARP Who has 192.168.1.1? Tell 192.168.1.X
3 192.168.1.1 192.168.1.X ARP 192.168.1.1 is at xx:xx:xx:xx:xx:xx
4 192.168.1.X PublicIpA TCP 1521 > 10011 [SYN, ACK] Seq=0 Ack=1 Win=17520 Len=0 MSS=1460
6 PublicIpA 192.168.1.X TNS Request, Connect (1), Connect
7 192.168.1.X PublicIpA TNS Response, Redirect (5), Redirect
8 192.168.1.X PublicIpA TCP 1521 > 10011 [FIN, ACK] Seq=66 Ack=129 Win=17392 Len=0
9 PublicIpA 192.168.1.X TCP 10011 > 1521 [FIN, ACK] Seq=129 Ack=66 Win=17455 Len=0
10 192.168.1.X PublicIpA TCP 1521 > 10011 [ACK] Seq=67 Ack=130 Win=17392 Len=0
11 PublicIpA 192.168.1.X TCP 10011 > 1521 [ACK] Seq=130 Ack=67 Win=17455 Len=0
12 10.0.0.X 10.0.0.255 BROWSER Get Backup List Request
13 10.0.0.X 10.0.0.255 NBNS Name query NB MyCompany
14 10.0.0.X 10.0.0.255 NBNS Name query NB MyCompany
15 10.0.0.X 10.0.0.255 NBNS Name query NB MyCompany
16 10.0.0.X 10.0.0.255 BROWSER Get Backup List Request
17 10.0.0.X 10.0.0.255 NBNS Name query NB MyCompany
18 10.0.0.X 10.0.0.255 NBNS Name query NB MyCompany
19 192.168.1.1 192.168.1.255 RIPv1 Response
20 10.0.0.X 10.0.0.255 NBNS Name query NB MyCompany
21 10.0.0.X 10.0.0.255 BROWSER Get Backup List Request
22 10.0.0.X 10.0.0.255 NBNS Name query NB MyCompany
23 10.0.0.X 10.0.0.255 NBNS Name query NB MyCompany
24 10.0.0.1 10.255.255.255 RIPv1 Response
25 10.0.0.X 10.0.0.255 NBNS Name query NB MyCompany
26 10.0.0.X 10.0.0.255 BROWSER Browser Election Request

*******************************************

Challenger
Devart Team
Posts: 925
Joined: Thu 17 Nov 2005 10:53

Post by Challenger » Mon 18 Sep 2006 12:45

The port 1521 is used for establishing connection with listener. After that the dispatcher tells client to re-establish connection on another port. So you can't connect because you open only port 1521. To overcome this problem you should fix some port by setting MTS_DISPATCHERS. Then you should connect directly to this port avoiding listener. For more information see Oracle documentation.

carlotoffolon
Posts: 5
Joined: Thu 14 Sep 2006 14:53

Solution for NAT setting

Post by carlotoffolon » Tue 19 Sep 2006 08:30

Hi,
just to say I've solved the problem by setting a new key:

USE_SHARED_SOCKET = TRUE

in the registry:
\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE (Releases 8.0) or
\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME (Release 8i )

so the server uses only port 1521 (otherwise select a new one to each connection)

Better explainations and more complex solutions for firewall problems can be founded here:
http://oracle.ukrsat.com/faq1.txt

Tank you Challenger for your help.

Bye.

Post Reply