Apr 152020
 

因为我要做服务器的迁移,要求IP地址和以前完全一致,这个阿里云是支持的,可以自己定义网段,甚至可以指定这个网段的ip地址,看上去都狠不错,结果我就遇到了这个bug。

下面就是bug重现的步骤

  1. 创建vpc和交换机,这个没啥特别,正常创建
  2. 创建一个nat网关,按需
  3. 创建一个安全组
  4. 申请3个eip
  5. 把一个ip地址分配给nat网关
  6. 创建2个windows虚拟机,使用相同的安全组

好玩的时候开始了。

对其中的一个vm1,关机,内网ip进行修改,再开机。

另外一个vm2不修改。

改完ip地址,才去分配公网的eip。分别给他们分配一个EIP。

这时候就出现很好玩的东西,

VM1,不能ping,也肯定无法访问,

vm2,可以。

不能ping的vm,就是因为修改过内网ip地址。

临时解决的办法是

这个时候,如果我把vm2的ip内网ip地址修改,还是可以ping 通。

先映射完,再修改内网ip就没问题。

这个问题提交给阿里云,24小时内,给了一个完整的回复,问题的原因非常有意思

原因如下:
1. vm状态已经running,但实际在执行windows的sysprep,目前这个过程 ecs管控是感知不到的,而且windows的sysprep过程中不允许掉电和重启
2. 在sysprep未完成前,用户因为要修改私网ip,所以重启了vm,导致sysprep失败
3. 实例再也无法正常启动(guestOS已经损坏)

所以跟是否修改私网ip无关。具体怎么解决这个问题,我们拉了个群正在讨论中,比较麻烦,据说vmware 为了解决这个问题,重新实现了一个定制版的sysprep

 

 Leave a Reply

(required)

(required)

This site uses Akismet to reduce spam. Learn how your comment data is processed.