VXLAN及相关组件
VXLAN及相关组件
VXLAN协议
VXLAN(Virtual eXtensible Local Area Network)是一种在三层网络之上打通二层网络的虚拟网络隧道技术。VXLAN的技术原理是使用四层UDP数据包封装二层以太网帧,VXLAN协议适用VNI(VXLAN Network Identifier)来唯一标识一个虚拟网络,VNI最大支持1600万个虚拟网络。
VXLAN协议使用两个节点之间可达的IP地址作为VTEP(VXLAN Tunnel EndPoint),建立隧道,并在两端节点上创建VXLAN的逻辑接口(二层接口)。所有需要通过VXLAN隧道传输的二层流量,都通过本节点的VXLAN的逻辑接口进入VXLAN隧道,并根据VNI分配到对应的VXLAN隧道,发送到VXLAN隧道对端设备;对端设备收到VXLAN隧道发送过来的数据会拆开VXLAN包头,查看内部的以太网帧并按照规则进行转发。
云计算中的VXLAN
通过VXLAN协议,计算节点OVS成为了一台VXLAN交换机,在不同计算节点之间根据VPC打出多条VXLAN隧道,用于同子网云主机之间二层打通。实现原理即为以计算节点业务网卡之间IP可达为前提,将同子网云主机之间的交互的以太网数据帧,发送到OVS虚拟交换机的VXLAN虚拟接口,OVS查询目标MAC地址,并根据目标MAC地址,将这个以太网帧封装在一个VXLAN(UDP)数据包内部,这个VXLAN的数据包头包含了VNI(VPC唯一标识),隧道源IP和隧道目的IP,发送给计算节点业务口;本计算节点业务口将该数据包根据目的IP地址发送给目标计算节点。
组件介绍
- 云主机(VM):客户购买的云主机实例(instance)。
- 计算节点(HOST):承载云主机实例的物理服务器。
- OVS(Open Virtual Switch):为云主机提供网络连接功能的虚拟交换机,运行在计算节点内部。
- 安全组:针对单个云主机做访问控制的安全组件,运行在OVS内部。
- TGW:作为云主机网关承载云主机出入VPC的流量。
组件理解
可以将计算节点理解为一个微型数据中心,云主机是这个数据中心内的一台服务器;OVS是数据中心内的一台二层交换机:
- 下行口连接了云主机;
- 上行口通过网线连接到了TGW设备;TGW设备是一台路由器,作为云主机的网关使用。
TGW组件
TGW是一台独占的安装了VPP软件的Linux系统服务器,可以模拟一台三层交换机的全部功能,与传统网络中的三层交换机一样,它是使用配置命令来指导转发的。
OVS组件
OVS是安装在计算节点内的一个虚拟交换机组件,但和传统交换机不同,它不再使用配置命令指导转发,而是使用流表指导转发。
流表的原理
流表的原理,类似于传统网络中的PBR(Policy Based Routing),它回归了数据包转发的本质,即匹配(match)和操作(action):
- 匹配:即流表可以选择匹配数据包中的任意字段,不再需要区分网络分层;
- 操作:对匹配到的数据包执行特定操作,可以是转发到特定端口,丢弃,或者交由其他流表处理。
流表的匹配原则是,数据包由table0进入匹配序列,由table0开始处理,直到数据包转发完成或者被丢弃;每一个table中都可能同时存在多条规则,优先匹配优先级高的,同优先级顺序匹配。
TGW的配置
TGWV是一台安装了VPP软件,用来模拟三层交换机(路由器)的服务器,它通过配置命令的方式来控制流量的转发。
创建VPC
后台会自动在TGW上创建一个loop接口,作为VPC的在网关上的体现。
创建subnet
后台会自动在TGW根据客户在前端提交的数据,在对应的loop口上配置一个IP地址,作为该子网的网关。
创建云主机
后台会自动在TGW上创建一条静态VXLAN隧道,隧道源IP为本机的网卡IP,目的IP为计算节点的网卡IP;云主机发起的ARP-Request数据包通过VXLAN隧道发送到TGW后,TGW会主动学习MAC地址,并在TGW的二层转发表(L2FIB)内添加一个条目,将云主机的MAC地址指向收到ARP信息的VXLAN隧道;后台会自动在TGW上的ARP表里添加一个静态ARP条目,条目内容为云主机的IP和MAC地址。
创建弹性IP
后台会自动在TGW上创建该弹性IP的QoS配置;图里面是比特/秒,所以要×8。
OVS的流表
创建云主机
后台会自动在OVS上下发流表,指导OVS将云主机流量发送到对应VXLAN隧道,并根据流表,对从VXLAN隧道内收到的流量进行拆包和转发。
VPC内部交互流量模型
传统网络模型
在传统网络中:
- 同网段虚机互访,只要在ARP表内可以查到记录,均可直接访问
- 跨网段虚机互访,必须通过网关转发才能相互访问
- 这种流量模型内网容易成为瓶颈,所以云网络对该模型进行了优化。
云网络模型
1.3 网元类型与流量模型
1.网元分类
1.1、VPP 网元
VPP 是 CISCO 公司开发的一款开源软件产品,一台服务器安装 VPP 后便可以充当一台三层交焕机来实现流量转发功能;
注意,VPP是软件,下面的TGW等都是组件
注意,VPP是独占的,一旦安装要么充当TGW,要么充当IGW,要么充当VGW。只能当一个!
1.1.1、TGW(Tenant GateWay)
TGW 全称 Tenant GateWay,既租户网关,TGW 成对部要,每队之间用 VRRP 协议实现主备关系,只有主转发流量;每个租户都要分配且仅分配一对租户网关用于overlay流量转发。TGW 承载了 CNP 架构资源池内大部分的overlay流量,包括弹性IP、VPCPeer、云间高速、云专线等等;
根据 TGW 部罢的服务器形态(物理服务器/虚机)不同,可分为物理 TGW 和虚拟 TGW;根据 TGW 的租户分配机制,TGW 又可分为共享TGW(share cluster)与独享TGW(small cluster),共享即为多个租户共享一对 TGW,独享即为一个租户独享一对 TGW。在最新版本的 TGW 软件中,每一对物理共享 TGW 可承载 1500 个租户,每一对虚拟共享TGW,可承载 100个租户,该数量可能根据TGW的部署架构(ARMX86)和软件版本,在SDN 控制器上进行调整。
1.1.2、lGW(intranet GateWay)
IGW/ 主要承破了存储相关的流量,云主机/课金属服务器访司云存储(文件存储对象存)的流呈是通过 IGW 特发的
1.1.3、VxlanGW(Vxlan GateWay)
VxhnGW 承我了传统裸金属到虚拟TGW 的流量
1.2、OVS(openVswitch)网元
OVS(OpenVirtualSwitch)是运行在计算节点上的开源软件主要用于承载云主机的流量
根据计算节点上的 OVS 是否启用了 DPDK特性,OVS 网元又分为两种,既:Kernel-0Vs 创建的云主机虚拟网卡以tap开头,vxlan 入口名称为 vxlan_sys_4789DPDK-OVS 创建的云主机虚拟网卡以vhu开头,vxlan 入口名称为 vxlan1;
DPDK是一种对服务器内存调度进行优化的技术,主要优势是将数据包的处理从LinuxKemel(内核)占用的内存改为在用户(应用)占用的内存处理,省去了从内核内存复制到用户志(应用)内存的步骤,提高了数据包处理速度和转发速度,大幅提高计算节点带宽和PPS;
1.3、VPN 网元
VPN 网元是在 vne 虚机上用 ipsec 软件技术实现的 VPN 产品,客户在云管平台每购买一个VPN 实例,会在后台 NFV计算节点上为客户创建一个VPN虚机,承载户VPN 业务流量
1.4、ELB 网元
ELB 网走是在 vne 虚机,上用 haproxy 技术实现的负载均街产品,客户在云管平台每购买一个ELB 实例,会在后台 NFV计算节点上为客户创建两台ELB 虚机,两台ELB 虚机之间为主备关系,以保证 ELB 的高可用,承载客户 ELB 业多流量: