一、前言
最近遇到一个需求,阿里云账号 A
的云服务器 M1
传输文件到 阿里云账号 B 的云服务器 M2
上。百度了解到,同地域可以内网传输,通过 VPC 对等连接
实现。
二、基础概念
1、什么是 VPC、VPC 对等连接
VPC
,Virtual Private Cloud 专用网络,所有的云资源创建的时候都需要绑定一个VPC,这样它们就处于同一内网,可以内网互通。比如你创建两个同地域的云服务器 ECS,创建会默认选择同一个 VPC(如果没有手动修改的话),你可以很自然地使用内网 ip 来通信。
VPC 对等连接
提供连同两个 VPC 的网络连接,你可以使用私有 IP 地址直接通信,两个 VPC 就像在同一个网络一样。同地域的 VPC 对等连接
是免费的。
2、从创建的角度理解 VPC、交换机、路由表
创建专用网络 VPC,需要指定一个内网网段,比如 172.16.0.0/12。
然后创建交换机 vSwitch 绑定到 VPC 中,交换机网段必须是 VPC 网段的真子集,比如 172.16.0.0/24。创建资源,比如创建一个云服务器 ECS, 需要把它加入到 (VPC - vSwitch) 中,加入后会分配一个交换机网段的 ip,比如 172.16.0.100。
一个 VPC 可以绑定 10个交换机。交换机网段 172.16.0.0/24 有 8 位主机位,可以容纳 256 个资源实例(比如 ECS)。
创建 VPC 会同步创建路由表,路由表的作用是可以把不同的交换机绑定在一起。
个人理解:内网访问,应该是先查路由表,找到交换机,然后找到对应的 ECS 服务器。
3、简述如何创建 VPC 对等连接
云服务器 M1、M2 创建的时候已经加入到一个 VPC 里面了,我们无须创建 VPC。我们要做的是,在两边账号创建VPC 对等连接
,创建要指定对方账号的阿里云 id 和 VPC,然后把对方的交换机网段加入到VPC 对等连接
默认创建的路由表中。
三、创建 VPC 对等连接
1、搜索产品【专用网络】或【VPC】,点击进入。选择 VPC 所在区域。
2、左菜单选择【VPC对等连接】,初次创建需要点击【开通 CDT 功能】,如图。
3、点击创建对等连接(账号 A)
账号 A/B 哪一方作为发起方创建对等连接都可以,发起方后面提到要验证码验证。
4、接收端 UID 位置(账号 B)
右上角,点击头像可以看到。
5、账号 B 对等连接,点击接收
点击接收,报错。试了几次都一样。等了一会,刷新,又显示接收了。。。
6、配置路由条目
账号 A、B 都要配置。
具体配置如下图,路由表默认选中交换机绑定的路由表,名字随便定,目标网段输入对方账号的 VPC 下交换机的 ip 段。
个人理解:这里路由是定义遇到目标网段的 ip 的时候,跳到对等网络 VPC 里面找对方的交换机,最终根据 ip 找到目标服务器 esc。
7、验证码确认
账号 A 作为发起方需要接收验证码确认,确认完,至此配置完成。
点击刚刚设置的路由表,可见账号 A、B 路由多了自定义的 VPC 对等连接的路由,如下图。
8、ping、scp 验证
互 ping 对方内网 ip,连通证明 ok 了。可以试一试 scp 传输,125M/s 的千兆带宽,美滋滋 😊
四、注意事项
两个 VPC 的交换机网段不能重叠。重叠的补救:需要停止一方 ECS,重新创建新的交换机,分配新的网段,然后 ECS 更换交换机。
这很好理解,如果允许包含,遇到两边都包含的 ip,是选择己方的交换机下的 ECS 还是 VPC 对等连接对方的交换机下的 ECS?