如何指定数据库连接的传出IP地址?

时间:2011-05-17 21:56:11

标签: c# database oracle networking ip-address

我有一个具有多个IP地址的Web服务器,需要连接到数据库服务器。数据库服务器位于由IP地址白名单控制的防火墙后面。 (如果重要的话,它是Oracle服务器。)有没有办法在OracleConnection中指定Web服务器使用的IP地址,以便只需要将一个IP添加到白名单中?

我看到有一些关于指定传出IP地址的问题(例如this one和从那里链接的一对),但没有一个特别提到数据库连接。

3 个答案:

答案 0 :(得分:2)

数据库方面没有发挥作用(很多)。

在我的简单网络上,我有一个调制解调器/路由器,它从我的ISP获取一个互联网IP地址,并为本地网络提供不同的IP地址。我已将其配置为将在端口80(用于HTTP请求的端口)上发出的请求转发到本地网络上的特定IP地址。

IP地址可以动态分配(DHCP)或静态分配。因为我希望我的HTTP请求转到特定的机器,所以我需要该机器始终具有相同的IP地址。一种方法是让机器在连接到网络时请求静态IP地址。另一种方法是让路由器动态分配IP地址,但始终使用特定的MAC地址。我走了后一条路。您选择做什么以及如何做这取决于您的情况(例如操作系统和网络设置)。

在您的情况下,您希望本地网络地址对于数据库服务器和Web服务器都是静态的。这真的是一个网络问题。

编程可能发挥作用的唯一时间是您有多个网络端口。拿我的笔记本电脑配有WiFi卡和以太网端口。每个都有一个唯一的MAC地址(实际上世界上每个网络设备都有一个唯一的MAC地址)。我可以将这些端口中的一个或两个连接到单个网络或两个不同的网络。

如果我将两台设备连接到同一网络,它们必须具有不同的IP地址,因为IP地址需要对网络唯一,因此网络知道将消息发送到何处。如果我将它们连接到两个不同的网络,那么它们可能会获得相同的IP地址。 [互联网是一个大型网络,但局域网(LAN)是独立的。]

如果您的计算机有多个网络连接,您可能需要将特定连接定向到某个网络(因此我可能总是希望我的数据库连接使用eth0端口以及其他要使用的东西和eth1端口。)

答案 1 :(得分:1)

一般而言,对于Web服务器,您有一个或多个外部可寻址IP,但只有一个内部IP。

内部地址是连接到内部网络的内容,用于与数据库服务器等通信。外部客户端连接或出站通信时使用外部设备..

答案 2 :(得分:0)

我会假设“多个IP地址”在DMZ(外部网络)中,并且数据库服务器位于不同的(内部)网络中,不是吗?你不应该有这个问题。