摘要:在实践中,我们开发并上线了网关和负载均衡网关。而负载均衡网关则支持无缝替换传统交换机实现网关集群,支持一致性,并支持根据任意字段,内存和端口来计算哈希,支持协议。
网络作为信息时代的重要载体,在云服务的快速发展下形成了独具特色的“虚拟网络”服务架构和模式。12月19日,2020中国云网络峰会于北京顺利召开,会上UCloud虚拟网络VPC负责人陈煌栋给大家带来了演讲《UCloud VPC技术演进之路》,着重介绍了UCloud在虚拟网络更新迭代过程中遇到的问题以及如何根据软硬件等方面进行改进的网络实践。
UCloud的VPC网络从2012年上线至今经历了三次大的技术演进,从最早的经典网络过渡到VPC网络,并形成了目前软硬件一体化的VPC 3.0架构。
早期的经典网络
和业界的发展历程类似,在早期,UCloud的数据中心网络实际以经典网络为主。云主机和宿主机都位于一个大二层网络中,网络转发依赖linux bridge,而隔离依赖控制面维护的iptables、ebtables规则。
随着网络规模不断扩大,经典网络也暴露了诸多问题:
VPC 2.0架构:基于SDN技术实现的VPC网络
正是存在以上问题,UCloud在2016年底开发并上线了基于VPC 2.0架构的VPC网络,并最终帮助客户无缝迁移到了VPC网络。
在VPC 2.0架构中,我们基于SDN技术实现了网络的虚拟化,通过在转发平面引入OpenVSwitch和OpenFlow完成Overlay流量的转发与隔离,在控制平面开发了SDN 控制器来完成Flow的管理。
在VPC 2.0中,我们通过Packet-In和Push相结合的方式来下发Flow规则。主动推送路由表、ACL相关的Flow,而点到点转发的Flow则依赖Packet-In机制上送到控制器完成Flow的下发。
此外,我们基于DPDK技术开发了诸多东西向和南北向网关,比如负载均衡网关、混合云网关、裸金属物理云网关等,这些网关会和VPC进行直接交互来完成流量的转发,实现VPC到异构网络访问。
在VPC 2.0的长期运营中,我们也发现了诸多问题:
VPC 3.0架构:软硬件一体化的新一代VPC网络
为了解决VPC 2.0下的这些问题,我们做了很多虚拟网络技术方面的探索和改进,最终形成了软硬件一体化的VPC 3.0架构。
在VPC 3.0架构中,最大的特点就是软硬件协同,转发面引入了非常多的转发网元,包括内核版ovs、硬件卸载版ovs、智能网卡、P4和DPDK等,因此如何适配诸多转发面网元并保持良好的扩展性是控制面需要考虑的重要问题。
网元适配
在VPC 3.0控制平面中,我们引入了模型层(Model Layer)、中台层(Middle Layer)、映射层(Mapping Layer)和推送层(DataPath Layer)等概念和服务。在适配网元时,统一的业务对象(如Subnet)会在模型层生成,并在中台层被路由给映射层,在映射层完成业务对象到不同网元对象的映射,如OpenFlow对象、P4对象、TC对象。
而后网元对象会再次经过中台层路由给推送层。推送层则关心具体的转发网元,实现高效、高性能的转发对象推送。
动态学习
为了解决VPC 2.0架构中的Packet-In问题,我们引入了主动推送和动态学习相结合的Flow下发方式,以完成Flow的高效下发。我们基于P4和可编程芯片开发了VPC网关BGW,BGW会和位于计算节点的Datapath Controller运行DCP(Datapath Control Protocol)协议来完成流表的学习和流量的offload。
具体实现原理是:当ovs既有规则无法满足转发时,通过默认Flow转发给BGW,而BGW除了正确将流量转发至目的地之外,也会按照DCP协议构造一个UDP报文发送给源端Datapath Controller,而Controller也会根据该报文学习到下发Flow所需的关键信息,因此实现Flow的动态学习和流量从BGW向ovs的offload。
相比于VPC 2.0的Packet-In机制,动态学习带来了以下好处:
控制面中台
此外我们构建了控制平面的中台能力,通过中台层实现了诸多通用能力,包括对象路由、一致性缓存、对象分片、对象灰度等,使得在开发不同产品、适配不同转发面时都可以快速复用这些已经定义良好、实现良好的通用能力,以此提高控制面的可靠性和性能。
硬件卸载
在转发面演进中,我们也从软件逐步过渡到硬件。从早期的kernel bridge和kernel ovs转发,逐步切换到目前的硬件卸载ovs、智能网卡等硬件网元来加速转发性能。在快杰云主机中,通过卸载ovs,将网络转发能力提升到25G带宽、1000w pps和10G外网带宽。
同时,网关也逐渐从DPDK技术演进到目前基于P4的可编程芯片。在P4实践中,我们开发并上线了VPC网关BGW和负载均衡网关CGW。VPC网关主要支持VPC内的二三层流量转发和ARP代答,并支持Flow Offload。而负载均衡网关则支持无缝替换传统交换机ECMP实现网关集群,支持一致性hash(Maglev Hashing),并支持根据任意字段(vni,内存ip和端口)来计算哈希,支持ipv4/ipv6 overlay协议。对于CGW的使用场景之一就是实现网关集群的sharding和灰度。
异构网络
在VPC 3.0架构中,我们通过引入UXR这样的中心化网关来完成异构网络的解耦,使得异构网络在和VPC通信时可以彼此解耦,无需关心VPC的网络细节,从而缩小网络边界,使得网络更内聚。
此外,我们也引入了VPC网关来实现VPC内的流量转发和流表的动态学习。
同时,裸金属物理云产品也向智能网卡演进,我们基于智能网卡实现了kernel ovs的卸载和NVGRE隧道的卸载,并通过bonding技术提升网络带宽至40G。
服务架构:微服务化
在服务架构中,我们也从单体架构逐步演进到微服务架构。
在单体架构中,我们是基于自有框架和TCP、ProtoBuf实现的分布式系统,在长期维护过程中也出现诸多问题:
因此,我们按照服务边界进行了拆分,将单体应用拆分成微服务,并引入了Istio、Kubernetes、gRPC等框架和组件。
在微服务架构中,我们取得了如下优点:
在微服务化的过程中我们也遇到了很多挑战,维护一个大型微服务系统会给整体服务带来更多的复杂性和不确定性,也更考验我们的服务治理能力,因此微服务化的背后我们也做了很多努力。
Telemetry和故障定位
随着云计算的发展,云网络的规模也在不断扩大,为了在日益复杂的云网络环境中定位网络问题,我们往往要回答内网流量追踪的三大痛点:
为了解决以上问题,我们设计和开发了UCloud的全链路的高性能探测系统。
该系统的最大的特点是对网元的要求非常小,只需要overlay/underlay网元支持流量镜像、ERSPAN即可,而无需可编程能力。通过将INT Packet(特殊染色的TCP报文)在各网元的出入向镜像给Telemetry Cluster,我们可以构建出端到端的报文bitmap,并据此分析出通信结果(通信是否正常、是否丢包、丢在了哪里)、端到端的近似时延、以及端到端的实际通信链路。
此外,配合我们的活跃流分析系统,可以实现VPC内的活跃流快速探测。在变更时我们可以通过这样的机制快速验证变更前后的活跃流通信状态、通信链路是否发生异常,从而快速、可靠的发现潜在问题。
总结
在最新的VPC3.0架构下,UCloud VPC支持高性能网络转发(内网包量最高可达1000万PPS,单个EIP支持最大10Gb外网带宽),除IPv4外,UCloud VPC也提供了对IPv6的原生支持,帮助客户快速构建IPv6 VPC网络。同时,通过ACL和安全组的支持,用户可以实现对VPC内资源细粒度的安全访问控制。
未来,UCloud VPC团队将密切关注网络相关的软硬件发展,并消化吸收符合自身需求的新技术,持续为用户打造安全、稳定、高性能的VPC云服务。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/125993.html
摘要:期间笔者有幸采访了虚拟网络负责人周健,更近距离的了解在异构网络下的创新历程。周健表示异构网络跨域互联存在几个难点,安全隔离性能保障用户体验一致性。2020年10月23日,UCloud用户大会暨TIC 2020大会于上海召开,以探讨云端构建,一起创见未来为主题。期间笔者有幸采访了UCloud虚拟网络负责人周健,更近距离的了解UCloud在异构网络下的SDN创新历程。今年1月20日,公司正式登陆...
摘要:对此,提供基于内网的高可用服务,内网通过前后三代广播集群的设计演进,解决了复杂异构网络下的广播实现问题,获得秒级高可用切换能力,并能够很好的支持物理云。宋体下面,本文将对秒级切换的内网高可用服务进行详细介绍。快节奏的生活,任何的业务异常 / 中断都是不能容忍的。 在无人化超市选购完成进行结账时,结账页面突然卡住,无法完成购买操作。这时该选择放弃手中的商品 or 继续等待? 酒店办...
摘要:存储方面,容器目前支持了两种类型的存储可以多点读写的网络文件系统和仅单点读写的云硬盘。通过添加对协议的支持,轻量级虚拟机可以直接对接到服务,从而实现了对高性能的型云硬盘挂载和使用。Cube诞生背景 随着云原生技术的推广及落地,容器技术在企业生产环境中的使用比重越来越大。Kubernetes作为容器编排的事实标准,在企业服务中被大量采用。UCloud容器团队在2018年推出了Kubern...
摘要:存储方面,容器目前支持了两种类型的存储可以多点读写的网络文件系统和仅单点读写的云硬盘。通过添加对协议的支持,轻量级虚拟机可以直接对接到服务,从而实现了对高性能的型云硬盘挂载和使用。Cube诞生背景随着云原生技术的推广及落地,容器技术在企业生产环境中的使用比重越来越大。Kubernetes作为容器编排的事实标准,在企业服务中被大量采用。UCloud容器团队在2018年推出了Kubernetes...
摘要:今天,阿里资深技术专家天羽为我们讲述阿里数据库的极致弹性之路。二容器化弹性,提升资源效率随着单机服务器的能力提升,阿里数据库在年就开始使用单机多实例的方案,通过和文件系统目录端口的部署隔离,支持单机多实例,把单机资源利用起来。 showImg(https://segmentfault.com/img/remote/1460000017333275); 阿里妹导读:数据库从IOE(IBM...
阅读 3473·2023-04-25 20:09
阅读 3684·2022-06-28 19:00
阅读 2994·2022-06-28 19:00
阅读 2995·2022-06-28 19:00
阅读 3048·2022-06-28 19:00
阅读 2834·2022-06-28 19:00
阅读 2969·2022-06-28 19:00
阅读 2578·2022-06-28 19:00