阿里云轻量服务器与ECS内网互通
默认【轻量服务器】是不与ECS内网互通的即使在同一个区域,具体两者之间内网互通方式可以参考官方教程:https://help.aliyun.com/zh/simple-application-server/user-guide/manage-service-interconnection 此内网互通要求必须同账号、同地域!

如果是想要不同专有网络下ECS 之间互通,需要参考VPC 对等连接官方教程:https://help.aliyun.com/zh/vpc/vpc-peer-to-peer-connection 此对等连接可以跨账号、跨地域,在同一个地域即使跨账号也免费, 只要跨地域不管是不是同一个账号都要收取流量费!

在创建同账号轻量服务器与ECS 内网互通时遇到了问题,最后是提了工单才最终解决!
问题一、 在轻量服务器上无法创建内网互通(开局失败)
按照官方教程,直接在 轻量服务器面板的 内网互通 添加,一直是“创建中”(而且里面的“发起端VPC实例”是空白的没有内容),删除后重新创建也是这样!

后面是转了高级工程师的工单协助解决了,工程师反馈转给研发处理了,然后就能正常添加内网互通了。

问题二、创建内网互通后,轻量服务器与ECS 之间不能互相Ping
内网互通的核心需求就是让双方可以内网通信,不要走公网,即安全且带宽也高。但是当我添加内网互通成功后还是无法ping统,只能继续让工程师帮忙排查原因,中间授权操作了服务器,最后发现是我ECS上Docker网段跟 轻量服务器网段冲突,然后售后手动添加路由后解决了!

总结
1、因为轻量服务器不支持修改内网IP(ECS可以停机修改内网IP),所以出现冲突理论上只能修改Docker里面的网段,但是Docker应用较多且有些应用部署后已经绑定了Docker 内的某些ip,轻易不建议修改docker网段,这也是为什么工程师给我添加路由来解决。

2、工程师当时并没有说这个是临时解决,后面我ECS重启后发现 轻量服务器无法连接ECS上的数据库。然后排查数据库账号密码、网络防火墙端口等还是没解决,就想起来之前有这么一个添加路由的事情,就手动重新添加了下路由就ok了。
在Docker网段冲突的服务器上执行下面命令,确认网关节点:
ip route show | grep default
# 假设输出类似:default via 172.17.0.1 dev eth0
# 那么物理网卡是 eth0,网关是 172.17.0.1 ;;
#我这边输出的是default via 172.16.251.253 dev eth0 proto dhcp src 172.16.251.219 metric 100
手动添加路由规则(这个是临时生效的,重启后需要再次重新添加才行)
# 临时生效(添加,如果删除add换成del)
ip route add 172.17.58.159/32 via 172.16.251.253 dev eth0
上面意思就是单独为172.17.58.159 这个轻量服务器的ip创建了一个临时路由,通过物理网卡eth0 接口绑定172.16.251.253 这个网关交换机/路由。
后面直接把这个路由操作放到宝塔的计划任务里面了,遇到重启路由失效后,就直接在任务计划里面再执行一次!

后面还是给Docker 的默认网段进行了修改,修改后再看下docker里面应用是否正常(也可以先给 ECS 打个快照,这样就算改乱了也有个保底可以还原)


发表评论