2个默认网关用于连接切换?

我有一个任务,在没有停机的情况下,实质上改变我们的基础设施(公司网站)的连接,而且我想出了一个我认为可能会奏效的计划。 所以基本的设置是,所有的机器都在同一个子网(172.16.0.0/14),旧的路由器和当前的所有机器的默认网关是172.16.1.1,新的连接已经提出为172.18.1.1(注意,他们在同一个子网中)。

这个想法是为临时指向新路由器/连接的所有机器(所有linux)分配第二个默认网关,然后切换DNS以指向新连接上的新公共IP,然后等到所有连接都完成进来。 然后摆脱原来的默认网关,指向旧的路由器/连接。

有没有人认为这可以工作? 或者还有另外一种方法可以完成这个转换,而不必去争取我们需要停机的时间呢? 我真的不想在所有这些机器上configuration多个路由表(其中大约有100个)。

一个选项可能是build立一个新的机器ServerA,它有两个网关,一个是默认的,另一个是次要的。 重新configuration所有其他服务器路由到ServerA,让它从那里转发。 然后在ServerA上切换默认网关。 所有其他服务器仍然会去ServerA,这将通过正确的networking路由。 那么你可以慢慢切换其他的。 不可能完全消除停机时间,但肯定会减less停机时间。 当你全部完成后,你可以删除ServerA。

如果公共IP连接到服务器,则可以使用源策略路由select正确的响应数据包网关。 例如,如果旧网关172.16.1.1具有公用IP 198.51.100.0/24,并且新网关172.16.1.2具有公用IP 203.0.113.0/24,则在服务器上configuration以下内容:

echo 12 isp2 >> /etc/iproute2/rt_tables ip route add default via 172.16.1.2 table isp2 ip rule add from 203.0.113.0/24 lookup isp2 

这将通过172.16.1.2使用一个新的公共IP路由stream量,同时通过172.16.1.1发送一切(传入和传出)。 服务器现在应该可以在新的公共IP上访问,所以你可以切换DNS条目。 一旦旧的公共IP不再使用,您可以将默认路由更改为172.16.1.2并删除上述configuration。

如果传入的连接被NAT到服务器,你将不得不为服务器设置一个新的私有子网,而是将新的网关configuration到这个范围内的NAT。