迅速在Linux中与另一台服务器交换IP地址

我有办法做到这一点,但不知道是否最好。

我有两台服务器,我们称之为旧服务器和新服务器。 两者都运行不同版本的CentOS。 (5.0和5.7)两者都在不同的IP在同一个子网,但其他明智的运行相同的软件,防火墙规则和configuration。 我正在从这个主机从Xen切换到VMWare,并更容易build立一个新的服务器..

Server-old通过静态NAT路由获取大量和大量的stream量,并直接到它的ip(通过连接到vpn的其他服务器)

为了让事情顺利进行(因为不是每个人都使用DNS名称),我需要尽快交换IP地址,在半夜stream量较慢时交换IP地址。

我打算编辑两个服务器/ etc / sysconfig / network-scripts / ifcfg-eth0文件,并把他们的“新”地址,打开两个ssh会话:

  • 服务器旧式inputifdown eth0; sleep 10; ifup eth0 ifdown eth0; sleep 10; ifup eth0
  • ifdown eth0;ifup eth0服务器新typesifdown eth0;ifup eth0

然后在Server-old上input,然后尽可能快地在Server-new上input

我认为这是我可以切换的最快速度,而不会导致任何IP地址冲突。 还是有更好的方法来交换它们?

如果没有任何事情发生,这是最快的方法。 所以我最喜欢的是从真正的控制台做到这一点。 当networking出现故障并且无法通过ssh连接时,这很糟糕。

确保两台服务器的时间相同,设置一个cron作业,在凌晨2:00(或者任何你select的半夜的时间)启动,然后运行:

 service network restart 

然后在第二天早上删除cron作业,或在运行后删除。

…比快速执行操作系统级IPpipe道更重要,您还必须更新局域网上所有设备上的ARP协议caching。 如果这两个服务器从一个外部边缘路由器获得大部分stream量,那么您可以在重新检测IP地址之后立即吹响arpcaching。 数据包(我假定以太网局域网)通过以太网地址(以目标物理网卡为目标)在局域网内stream动,如果您只是重新定位IP地址,路由器和其他设备将继续将数据包寻址到错误的网卡一段的时间。 (多长时间取决于他们的ARPcaching如何工作。)

另外,一些IP协议栈不会让你在局域网上已经成功地build立RARP(反向ARP)的IP地址。 所以cron automagic“networking重启”的build议(在我看来)可能会失败。 当一个盒子“添加”时,可能会看到另一个盒子响应RARP。 与此同时,另一个盒子的cron工作也开始把IP拿出来…火车残骸。

手动操作,从控制台(如果你有一个远程访问控制台服务器的奖金),这不需要几分钟。

如果你完全交换盒子,我也会玩以太网插头shuffle …预先configuration一个新的电缆到一个交换机(所以链接了),没有任何其他的小局域网。 然后从旧服务器上拔下以太网插头,将新服务器移到真实的LAN结构,然后再吹ARPcaching。