异常现象
用户安全组已经放通了8000-8001端口,且绑定目标机成功了,但点击检测网络测试->目标机时,通讯检测失败,报如下错误:
问题原因
该问题并非是因为源机到目标机之间网络不通,而是因为源机有多个出口公网ip,迁移平台未将源机所有的出口公网ip添加到白名单中,从而当源机访问迁移平台和访问目标机所使用的公网ip不一致时,源机访问目标机的请求会被目标机拒绝。
源机的多个公网ip可能有弹性公网ip,机房防火墙ip,SNAT的公网ip等,而迁移agent只能从源机上采集到本机网卡的私有ip,无法采集源机外部的公网ip的信息,但可以通过agent访问迁移平台的方式,从迁移平台解析请求来自哪个公网ip,从而获取到源机的其中一个公网ip添加到白名单中。
如果源机只有这一个公网ip的话,访问目标机是正常的,但如果有多个出口公网ip,访问平台使用的公网ip 1,访问目标机使用的是公网ip 2,就会出现如上错误。
本着安全大于简便性的原则,目标机只会允许白名单中的ip访问,拒绝其他ip的请求,由于无法准确获取公网ip 2,所以需要用户手动添加公网ip 2到白名单中。
排查步骤
Linux系统
通过云主机控制台远程(VNC)登录目标机,进入/usr/moveCloud/log目录,查看restoreLn日志信息:
找到"Malicious attack from XXX.XXX.XXX.XXX, disconnection."日志,出现该错误时该日志一般在倒数几行内:
日志中显示的ip地址就是源机访问目标机实际所使用的公网ip地址(118.253.XXX),只需要将该ip地址加入到白名单即可,方法参考下文中的解决方式。
Windows系统
通过云主机控制台远程(VNC)登录目标机,进入X:\Program Files\MacMigrationSer目录,查看log_xxxx-xx-xx日志文件:
找到"Illegal connection from XXX.XXX.XXX.XXX, disconnection."日志,出现该错误时该日志一般在倒数几行内,日志显示的该ip(175.12XXXXX)即为源机实际访问目标机使用的公网ip,只需要将该ip地址加入到白名单即可,方法参考下文中的解决方式。
解决方式
1.解绑目标机
回到主机管理列表页,鼠标移动到操作,点击解绑目标机:
2.查看当前白名单
点击白名单,可以看到当前该主机的白名单里已经添加了源机的私有ip,以及源机访问平台所使用的公网ip:
3.将源机访问目标机的实际的公网ip添加到白名单中
将排查步骤中从目标机日志中获取的源机访问目标机的公网ip地址添加到白名单中: