且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

带你读《云网络:数字经济的连接》第三章云数据中心网络3.6私网连接(一)

更新时间:2022-02-05 12:30:40


3.6 私网连接

前面讲到VPC 网络具有隔离性,VPC 之间无法通信。当一个VPC 中的终端需要访问部署在另一个VPC 中的服务时,就产生了VPC 间的通信需求。这个时候, 有两种选择:一种是通过公网通信,可以让服务提供方的VPC 暴露公网服务到互联网,服务使用方VPC 通过公网来调用,而这会让VPC 资源面临安全风险;另一种是通过私网通信,可以通过VPC 对等连接打通两个VPC 的私有网络,但这种方式打破了VPC 之间的隔离性,将不同VPC 的网络连接成了一个大的网络,需要通过部署其他的安全策略确保服务使用方和服务提供方各自的安全。这种方式更加适用于一个组织内部,并且是可以进行统一运维管理的网络。如果服务提供方和服务使用方的网络都是独立运维和管理的,甚至属于不同的组织,并不希望把网络直接打通,那该怎么办呢? 

试想一下,有没有一个模型,类似于在服务使用方的VPC 和服务提供方的VPC 之间接上一根虚拟电缆,这根虚拟电缆的连接不需要通过互联网或NAT 网关, 且电缆的两端,分别在自己的VPC 之内,同时又分别在对方VPC 之外,这样既满足了网络隔离的要求,又满足了服务互通的要求。

这个模型就是私网连接(PrivateLink)产品的设计思路。

3.6.1 什么是私网连接


私网连接允许用户在自己的VPC 内通过私网访问阿里云服务、第三方服务或者自己发布的服务,这些服务都部署在服务提供方的VPC 内。

服务使用方使用私网连接在自己的VPC 内创建终端节点时,使用的是弹性网络接口(ENI)和自己VPC 子网内的IP 地址,是可以使用安全组(Security Group)来管理终端访问的。

服务提供方使用私网连接,可以在自己的VPC 发布私网服务,也可以自主控制连接过来的终端,实现服务的发布、管理和售卖。

与VPC 对等连接等方式不同,私网连接并不是直接将两个VPC 连接在一起, 变成一个网络空间,而是更像通过一个“虫洞”将两个网络空间打通。服务使用方可以在VPC 中通过PrivateLink 提供的入口(即终端节点)单向访问服务提供方在其VPC 中提供的特定服务(即终端节点服务)。使用私网连接的方式,双方可以各自独立规划和管理自己的VPC,不用担心网络地址冲突,也无须配置复杂的网络路由,如图3-23 所示。

带你读《云网络:数字经济的连接》第三章云数据中心网络3.6私网连接(一)

图3-23 私网连接 

3.6.2 私网连接的组成


私网连接可以分为服务使用方组件和服务提供方组件两大部分。服务使用方和服务提供方可以是同一个阿里云账号,也可以是不同的阿里云账号。

服务使用方最重要的组件是终端节点。终端节点代表了服务使用方VPC 中的服务入口。当服务使用方需要使用某个服务时,可以创建一个连接到这个服务的终端节点,参考图3-24。

带你读《云网络:数字经济的连接》第三章云数据中心网络3.6私网连接(一)

图3-24 终端节点

终端节点是一个逻辑上的组件,访问服务的请求流量实际发送到了与终端节点相关联的弹性网卡上。与ECS 上的弹性网卡一样,终端节点网卡需要连接到服务使用方VPC 的vSwitch 上,并且分配一个vSwitch 私网地址段的IP 地址。服务使用方所访问的服务地址,就是这个ENI 的私网IP 地址。

服务提供方最重要的组件是终端节点服务。终端节点服务代表了一个服务提供方所提供的云服务。终端节点服务可以接收终端节点的连接请求。服务提供方可以选择自动或者手动控制是否接受连接请求。

终端节点服务是一个逻辑上的组件,真正提供服务的是与终端节点服务所关联的服务资源。目前,阿里云支持将SLB 作为私网连接的服务资源,后续还将支持更多类型的网元作为服务资源。

需要注意的是,私网连接只会转发同可用区的流量。也就是说,发给某个可用区vSwitch 终端节点网卡的请求,只会转发到同一可用区的终端节点服务资源(即SLB 集群)。所以当服务提供方没有在某个可用区提供服务资源时,服务使用方也无法在对应可用区的vSwitch 中创建对应的终端节点网卡。