自己整理的一些云计算overlay网络的基础知识,示例为腾讯云专有云

整体架构

云计算学习-overlay网络基础_封装

  • 网络控制器(Network Controller):网络的控制平面,是网络资源的统一控制平面。
  • 计算节点(Compute Node):云计算的计算资源的逻辑集合,对应宿主机物理服务器,承载是云主机资源,宿主机上的分布式虚拟交换机提供云主机对外通信功能。
  • 网络节点(Network Edge):网络资源的逻辑集合,对应VPC内网络资源所在的物理服务器集群,提供L4~L7层服务能力,所有南北向流量均通过网络节点提供服务。 

网络控制平面架构

云计算学习-overlay网络基础_云主机_02

SDN控制器基于转控制分离架构和分布式路由技术独立自主研发实现。  控制平面在逻辑上可以抽象为产品业务层、北向接口层、分布式调度系统、南向控制层(oss)共4个层次。  通过灵活的API接口与计算虚拟化管理平台、账户系统、计量平台、鉴权系统、监控系统、对账系统等一共构成整个的控制平面,实现网络资源的灵活调度、平滑扩展。 

云计算学习-overlay网络基础_云主机_03

  • VPC GW

DNS/NTP/YUM/CDB/CMEM等基础服务通信的核心组件

  • NATGW

NAT核心组件,实现SNAT/DNAT转换

  • PCGW

跨地域对等连接核心组件

  • DCGW

专线核心组件

  • CLB

EIP/LB核心组件

  • VPN服务

VPN核心组件

  • PVGW

VPN支持组件

VPC路由表项

路由表项是VPC维度,即每个VPC会有一套路由表项,每个虚拟机交换机上会有6个路由表,用于出方向4个,入方向2个,当有数据包来时,按顺序查表,命中则按表转发,否则丢弃 

出方向查表顺序:

表项

说明

方向

global_route 

记录公共服务的下一跳路由

记录docker某个子机网段与母机的关系 

route_table 

记录子母机关系以及内网LB的下一跳路由 

subnet_route 

记录用户自定义路由关系 

vhost_table 

记录EIP的CLB集群IP关系 

入方向查表顺序

表项

说明

方向

global_neigh

记录docker网段,子机IP,子机MAC的对应关系 

neigh_table 

记录子机IP与MAC地址关系 

VPC内互通逻辑架构

云计算学习-overlay网络基础_云主机_04

VPC控制器上会记录所有租户的全部资源的IP地址、VPCID、所在宿主机物理网络的IP地址信息,这三个维度即组成一组路由信息,用于指导数据报文在隧道转发路径,控制器会将路由信息下发到对应的虚拟交换机和网关。

同宿主机下的同VPC内云主机互访流程如①②③所示,不同宿主机下的同VPC内云主机互通如④⑤⑥⑦所示。 


对等连接架构

云计算学习-overlay网络基础_ip地址_05

不同私有网络是通过VPC ID逻辑隔离的,私有网络间建立对等连接,表示两个VPC ID建立了映射关系,这种映射关系在控制器上记录,并向对应的分布式虚拟交换机和网络节点同步这种映射关系。

跨地域对等连接。同地域对等连接,不需要通过DCI转发数据流量,其通信模型与同一个VPC内两个云主机通信类似

VPCGW逻辑架构

云计算学习-overlay网络基础_封装_06

当云主机需要访问CDB、NTP、YUM、DNS等基础服务,以及需要通过内网负载均衡访问其他云主机时, 均需要通过VPCGW转发,VPCGW主要提供内网负载均衡和SNAT、DNAT以及GRE报文的解封装等功能。

目前VPCGW直接部署在物理机上,而非虚拟机。为了实现高可用,VPCGW网关实体采用集群部署。 


弹性公网IP架构

云计算学习-overlay网络基础_ip地址_07

弹性公网IP的生成流程如下:

在收到控制台请求后,VPC Controller会向CLB Controller申请一个弹性公网IP地址,请求信息中包含云主机的内网IP。

TGW Controller响应VPC Controller的请求,返回弹性公网IP地址信息给VPC Controller,同时记录下云主机内网IP和弹性公网IP的映射关系。

VPC Controller更新弹性公网IP信息和云主机内网IP的对应关系 VPC Controller更新EIP所在的TGW集群的路由信息。 

NATGW

  • 控制台新建NATGW实例,并绑定EIP;创建路由表,并将访问internet的下一跳指向natgw
  • VPC控制器更新路由信息到VPC母机和natgw物理服务器 
  • TGW记录natgw实例和EIP的绑定关系
  •  TGW同步相关的EIP信息给VPC controller 

NAT网关和EIP需配套使用,即NAT网关创建时会默认绑定一个弹性公网IP(EIP),也可以指定已申请的空闲EIP, 如果没有则会新申请弹性公网IP,由VPC Controller向TGW Controller发起申请EIP,并将绑定关系同步,TGW会记录EIP和实例的映射关系,VPC controller下发SNAT/DNAT配置信息至NATGW模块。 

云计算学习-overlay网络基础_封装_08

VPN网关逻辑架构

云计算学习-overlay网络基础_ip地址_09

VPC侧到用户侧网关的转发流程如下:

VPC内云主机的报文经过GRE封装后,会发往VPNGW所在物理服务器,然后VPNGW服务器会进行GRE报文的解封装,并查询SPD(Security Policy Database)策略表(定义了需要进行IPSec加密的流)。

若该条流量能够匹配到SPD策略,则会进行IPSec报文的封装,然后再进行GRE封装并转发到TGW,否则将丢弃该报文。

TGW根据VPNGW的源IP地址进行NAT转换并将报文转发到公网出口(其中转换后的公网IP地址为预先分配给VPNGW的公网IP地址)。

反方向流程同理。 

专线接入架构

云计算学习-overlay网络基础_云主机_10

专线接入的报文转发流程:

VPC发往用户IDC:云主机的报文经Overlay封装后,转发至DCGW,DCGW收到报文后解除Overlay封装,查询表项,重新封装Overlay报文并转发至专线接入交换机。专线接入交换机收到报文后解除Overlay封装,根据路由规则转发至用户侧边界路由器。

用户IDC发往VPC:报文通过边界路由器发往专线接入交换机。专线接入交换机通过物理端口或者路由子接口接收报文,对报文进行Overlay封装,转发至DCGW。DCGW收到报文后,先解除Overlay封装,查询VPC相关表项后,重新进行Overlay封装,并将报文转发至目的IP所在的宿主机。

ELB逻辑架构(公网)

云计算学习-overlay网络基础_封装_11

当租户申请公网负载均衡时,可以创建四层和七层规则。用户到负载均衡vip的访问,根据负载均衡规则,经过TGW封装后,转发至STGW,STGW收到报文后解除Overlay封装,查询表项,重新封装Overlay报文并转发至对应的虚机所在的母机。TGW和STGW是IPIP隧道,STGW与宿主机之间是GRE隧道。

目前TGW直接部署在物理机上,而非虚拟机。为了实现高可用,四层TGW网关实体采用集群部署。七层STGW通过TGW实现集群。 

ELB逻辑架构(内网)

云计算学习-overlay网络基础_封装_12

VPCGW集群:支持各种属性的client接入,对TGW屏蔽网络差异  

四层TGW集群:支持四层LB相关功能  

Nginx & l7.ko,支持七层LB及相关网络解封包处理 

主备网关高可用

云计算学习-overlay网络基础_云主机_13

有状态转发,需数据同步状态

每个机房模块不少于2个机架部署网关,支持跨机架容灾 单机故障4秒内检测并自动主备倒换容灾 配置健康和容量监控以及相关告警 适用于VPCGW/NATGW/JNSGW 

多主网关高可用

云计算学习-overlay网络基础_ip地址_14

无状态转发,无需数据同步

每个机房模块不少于2个机架部署网关,支持跨机架容灾 网关设备使用OSPF发布路由 单机故障4秒内检测并自动剔除故障设备 配置健康状态和容量监控以及相关告警 适用于PVGW/DCGW/PCGW 

计算节点高可用

云计算学习-overlay网络基础_ip地址_15

母机侧:母机有两个接口eth0和eth1,分别接到一台接入交换机,两个接口做bonding(链路聚合),并配置lacp交互,ip地址配置在虚机接口bond0上  接入交换机侧:两台接入交换机利用IRF特性虚拟成一台逻辑交换机设备,将与母机连接的接口开启bonding功能  任何一台交换机故障,或接口故障,母机bonding会动态感知并剔除故障接口,流量从正常接口收发  配置健康和容量监控以及相关告警 

常见故障排查

控制平面

  • 检查服务容器是否运行正常
  • 检查服务域名是否可以解析,检查服务是否可以正常访问(通过curl请求)
  • 根据资源ID或请求ID查看组件日志 

数据平面

  • 检查安全组,确定安全组是否允许访问
  • 检查计算节点和网关上的CPU/内存/带宽等资源消耗是否过大
  • 检查计算节点和网关之间Underlay网络是否可通
  • 检查母机和网关上的/proc配置
  • 检查物理网络是否拥塞
  • 通过抓包来定位丢包、网络延迟等问题