1个http服务器在2个IP地址上运行,可能吗?


0

我正在尝试通过2个IP地址获取HTTP服务器。

我目前所拥有的是服务器连接到2个路由器..

                         --> Router 1 w/ Static IP (192.168.1.1)
HTTP Server   -->  Switch 
                         --> Router 2 w/ Static IP (192.168.1.2)

但HTTP Server的NIC可以设置为仅1个网关(路由器1)

两台路由器都具有HTTP服务器的DMZ设置,因此没有防火墙问题。

通过路由器1的流量通过服务器,但来自路由器2的流量超时..(有点期待)

所以这就是我的地方..你们怎么建议我继续?

我正在考虑将另一个网卡添加到HTTP服务器,以便我可以将其设置为GATEWAY 2 ..我认为它会以这种方式工作,但我想知道它是否会在我打扰之前工作。或许还有更好的做事方式?

关心所有人

Answers:


1

您是对的,如果它们位于同一子网上,则不能有两个具有不同网关的NIC。你可以做的是使第二个路由器192.168.2.1(我假设C类255.255.255.0用于子网掩码)。然后从2.x子网向第二个NIC提供IP,现在服务器将响应来自任一路由器的流量。

还有其他事情需要考虑,例如DNS。您将需要一个智能DNS解决方案,该解决方案可以识别ISP 1(路由器1)已关闭,并为最终用户仅提供ISP 2(路由器2)的IP,直到ISP 1重新联机。

实现DNS部分的最简单方法是使用特殊的ISP负载均衡器,例如barracuda或www.elfiq.com,还有许多其他产品。


感谢您的确认和建议,以及WOW,我没有想到DNS部分..感谢提醒我..我肯定会考虑到这一点...
BrownChiLD 2014年

0

您确实需要在两个网关路由器之间使用一些基于网络的故障转移解决方案(第一跳冗余协议),如HSRP / VRRP / GLBP。如果您的网关是Cisco路由器,您可以使用'track'命令确保通过网关的路径在路由器成为活动转发器之前有效。

否则,您可以在Web服务器上使用静态路由,只需将0.0.0.0 0.0.0.0路由到每个网关,您应该有某种基本的出站负载平衡,但是您将缺少任何类型的路径故障检测。


谢谢..但有点复杂,我的目的是伙伴嘿嘿。谢谢,但很高兴知道
BrownChiLD 2014年

延迟回复...如果您想使用相同的子网,您必须确保您的主机将在收到数据包时回复相同的接口。否则,您将无法使用网络实现冗余,就像使用单宿主,非网络感知设备一样。
cpt_fink 2014年

0

最简单的解决方案是为服务器分配两个私有IP地址。让每个路由器转发到不同的私有IP地址。然后,您可以在回复数据包上使用基于策略的路由,以根据本地源IP地址确定下一跳。

因此,例如,您可以为服务器分配192.168.1.101和192.168.1.102(在同一物理接口上)。将192.168.1.1路由器转发到192.168.1.101,将192.168.1.2路由器转发到192.168.1.102。然后,您可以根据本地源IP确定如何路由回复数据包 - 如果是192.168.1.101,则下一跳是192.168.1.1 - 如果是192.168.1.102,则下一跳是192.168.1.2。


服务器并不需要知道流量来自哪里,但这是一个好主意配对..至于你的其他建议,非常感谢!赞赏,你是。:P PS-但根据User3404205建议,我可能需要使用不同的子网(?)作为第二个NIC
BrownChiLD 2014年

0

如果您可以灵活地更改路由器,那么最简单的方法就是将它们放在不同的子网上。然后你可以多网络网卡,一切都会工作。

如果两个路由器连接到不同的外部网络,您可以通过路由器2添加静态路由 - 没有理由不在同一个LAN上有两个网关,他们只需要去不同的地方。您只能拥有一个DEFAULT网关,但您可以拥有任意数量的显式网关。

如果您不能这样做并且您的服务器是Linux,您可以通过在两个方向上重写路由器2地址来伪造它,以便IP堆栈认为它是两个独立的网络。

我怀疑第二个NIC无法正常工作,因为路由表仍然默认将所有响应发送到路由器1。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.