修复 SolusVM 添加 IP 之后无法使用的 Bug

问题重现步骤:

  1. 在 SolusVM 里给 VPS 添加一个新 IP;
  2. 在 VPS 里加上这个 IP:
    1
    2
    3
    4
    5
    6
    7
    [root@da2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
    DEVICE=eth0:0
    BOOTPROTO=static
    ONPARENT=yes
    IPADDR=xxx.xx.xxx.5
    GATEWAY=xxx.xx.xxx.1
    NETMASK=255.255.255.0

执行 ifup eth0:0

  1. VPS 内可以接收到新 IP 的包,但是包 发不出去:
    1
    2
    01:55:22.958310 IP 218.xx.xxx.5 > 123.xx.xxx.82: ICMP echo reply, id 46410, seq 163, length 64
    01:55:23.959400 IP 123.xx.xxx.82 > 218.xx.xxx.5: ICMP echo request, id 46410, seq 164, length 64

在其他机器上执行 arp -an 显示为 [incomplete]。

嗯,其实找了半天根本不是 CentOS 的问题 …
是啥的呢,你猜对啦~ 又是 SolusVM!

SolusVM 使用了 ebtables 来过滤 IP 盗用的行为,但是新增 IP 并没有更新 ebtables 里的记录,所以这个新增 IP 自然是用不了了。

不过解决方法倒是很简单,重启主机上的 solusvm-ipsecure 服务即可:service solusvm-ipsecure restart

最后,SolusVM 你去死去死去死!去年就上报了的 Bug 为什么还不修!