我有一台服务器需要更改其 IP 地址。为了进行 DNS 传播,我需要在服务器上同时拥有新 IP 地址和旧 IP 地址一段时间(72 小时)。但是每当我ifup eth1(NIC 带有新 IP)旧 IP 将失去与外界的连接(我甚至无法 ping 通它)。两个 IP 都有自己的网关。我刚刚在 Windows 2008 上做了这件事,没有任何问题,两个 IP 都可以工作,但在我的 Linux 服务器上,由于知识匮乏,我失败了。
服务器有 CentOS 6.2
答案1
您需要设置源基础路由。
如果您的 2 个 IP 是 ip0 和 ip1,路由分别为 gw0 和 gw1:当连接到 ip0 时,您希望通过 gw0 路由;当连接到 ip1 时,您希望通过 gw0 路由。您的默认路由将通过 gw0 或 gw1,具体取决于您希望流量通过哪个网关进行由服务器发起的连接。
我无法测试它,但是这篇博文,看来你需要:
- 创建2个新的路由表:
使用这两个命令:
echo -e "100\tOld_IPS" >> /etc/iproute2/rt_tables
echo -e "200\tNew_IPS" >> /etc/iproute2/rt_tables
- 向这些表添加路由规则:
使用这两个命令,更改你的 IP:
echo "default table Old_IPS via $gw0" >> /etc/sysconfig/network-scripts/route-eth0
echo "default table New_IPS via $gw1" >> /etc/sysconfig/network-scripts/route-eth1
- 为每个表添加源路由:
使用这两个命令,更改你的 IP:
echo "from $ip0 table Old_IPS" >> /etc/sysconfig/network-scripts/rule-eth0
echo "from $ip1 table New_IPS" >> /etc/sysconfig/network-scripts/rule-eth1
然后重新启动您的网络/etc/init.d/network restart
(注意不要切断您对服务器的访问)。
一旦您对设置满意,您就可以将您的默认网关从 gw0 更改为 gw1。