昨天登录公司阿里云账号续费,意外发现两个急需待解决的问题,一个是一台服务器升级配置但是没有重启,另一个是另一台服务器需要从经典网络迁移到专有网络。做调整和修改前都要对相关的服务器云盘创建快照,前一个只是重启,后一个是要了亲命了。

不知道从什么时候开始,阿里云要不间断地将经典网络的服务器迁移到专有网络。我自己这台服务器也经历过迁移,但当时一切都很顺利。公司的那台服务器一上来就抛出一个问题。迁移需要预约,预约需要填一个表单,里面需要选择专有网络和交换机。按照默认的提示去创建(虚拟的)交换机,给我弹出一错误来:

虚拟交换机创建问题

创建虚拟交换机
创建虚拟交换机

交换机创建失败报错
交换机创建失败报错

当前创建的交换机网段与专有网络(VPC)下的其他交换机的网段重叠了。提交工单,对方不耐烦地抛出一个创建交换机的说明文档,之后就消失了。最终我给他评价三颗星,其实我一颗星都不想给他,态度不好,没解决问题,还不理人。我要是知道怎么定义,看文档就能懂能解决问题,还提交工单干什么?

这个问题主要涉及到了网段这个概念,参考了几篇介绍文章,回顾了A、B、C、D 四类 IP 地址,还有不同网段的定义:

同一网段就是网络标识相同,网络标识就是用 IP 的二进制与子网掩码的二进制数据作'与'运算。

来源:网段 - 百度百科

先看一下已存在的交换机网络:

已创建的交换机
已创建的交换机

已创建的交换机网段为 172.16.0.0/20。IPv4 地址分成四段,每段为 8 位二进制码,取值范围 0~255。

上面十进制还原成二进制码就是 10101100 00010000 0000|0000 00000000,其中 | 将 IP 地址分割成两个部分,前面部分就是网络标识(前 20 位二进制码),所以只要修改前面部分的值跟原来的不同即可,比如说:10101100 00010000 0001|0000 0000,十进制就是 172.16.16.0/20,这就是不同的网段了,修改前面 20 位其他位置的二进制码也是一样的效果,最终换算成十进制填到上面创建交换机表单里即可。

服务器迁移后问题

前面创建好交换机之后,直接点击预约就好,时间设置在最近 10 分钟内(挑选网站流量较小的时候执行,迁移过程中网站是访问不了的)。

但迁移之后访问不了了,远程桌面登录提示被关闭。这吓到我了,公司的官网还有一些比较重要服务都在那台迁移的服务器上,虽然创建了快照,但我得回撤到原来的网络或者正常状态才行啊。一开始我以为是迁移未完成,在网上搜了一下迁移完成的状态特征,迁移事件消失了,实例列表中实例状态运行中,看着没问题,当我切换到云盘列表时发现,两个挂载的云盘状态显示迁移中。这我就没办法了,再次提交工单,中间因为不知道 VNC 的远程连接密码和忘记实例登录密码,不得已重新设置了这两个密码,自己尝试登录,直接登录进去了。阿里云工程师在登录后用 cmd 命令行查看了一下两个服务和端口,然后建议我添加安全组规则,将远程连接端口添加到入网规则白名单中。

我添加之后,通过桌面远程登录成功了。想了一下,应该是切换专有网络的问题,专有网络应用的安全组与之前经典网络的是不一样的,相关的开放端口需要重新设置。就这样,又添加了 80 和 443 端口,网站终于可以正常访问了。