我有一个小分支机构,它有两个来自两个不同ISP的互联网连接,每个连接都为我们提供了一个/ 29个(八个IP)。
我目前有一个外部网服务器(基本上DMZ中的一个Web服务器,与我们的内部数据库服务器有一个有限的连接 – 所以我真的需要保持在现场)。 目前正在使用一个ISP的一个IP。
我想设置它作为一个故障转移机制也监听另一个ISP。 我明白,为了完成这项工作,我需要非常聪明地使用DNS,但是我有权访问DNS上的Active Failover选项(由Dynect提供),因此本身不应该是不可能的。
但是,我无法弄清楚如何让路由工作。
服务器位于DMZ中,其中包含路由器和两个防火墙。 如果我将默认网关设置为路由器,则所有出站stream量在主服务器启动时都会通过主服务器,并在主服务器closures(我们在Cisco路由器上使用对象跟踪)时被重新路由到辅助服务器。 如果我将默认网关指向其中一个防火墙,那么所有的通信都会发送到该ISP。
我想要做的是在我的服务器上设置两个IP地址 – 无论是在同一个网卡上,还是在不同的网卡上。 如果有帮助的话,我确实有第二块网卡,并回复通过一个防火墙进入一个IP的stream量,并通过另一个IP到达另一个防火墙。
我试图把两个不同的网卡放在不同的IP上,使用不同的默认网关,但是这样做不起作用 – Windows中的路由表并不能根据stream量的源地址来确定路由。
有些东西我可以用路由器做 – 虽然这可能意味着获得比我有更强大的function – 但是我想知道是否有人知道Windows的TCP响应方式是根据它们从哪个IP地址发送到不同的默认网关一个多宿主服务器,即根据源地址进行路由,而不是纯粹的目的地?
我知道Linux可以用iproute2做到这一点,但可以使用Windows,也许使用RRAS?
不幸的是,最简单的方法就是获得你自己的/ 24,并在你的上游运行BGP,让路由代替windows路由。 您的情况是乞求dynamic路由协议,并采取其他方式将变得复杂。 请注意,如果您只是从每个提供商处获取默认值(实质上是您现在正在执行的操作),则不需要大型路由器来运行BGP。