其他
阿里云飞天洛神云网络Zoonet论文入选ACM CoNEXT 2022
云布道师
为了方便大家更通俗地理解这篇论文,本文将从技术层面解读 Zoonet 系统的设计背景、面临挑战、技术架构,以及大规模部署的经验分享。
背景介绍
Zoonet 支持异构的中间件。云网络中存在大量的异构中间件,因此 Zoonet 设计了一套通用探测模型,可以帮助这些中间件快速适配 Zoonet。 Zoonet 虚拟网络快速拓扑更新。为了处理频繁的拓扑更新,Zoonet 订阅了拓扑变化的信息,并采用了一系列优化策略以提高更新效率。而对于更新不及时带来的测量噪音,Zoonet 通过验证最新拓扑的方式来进行过滤。 Zoonet 通过不断扩展探测边界来发现更多的虚拟网络场景问题。除了普通的私网、跨地域等场景,Zoonet 还支持对公网、有状态中间件、虚拟机“最后一公里”等场景的探测。
物理网络探测局限
物理网络探测无法覆盖虚拟网络协议栈问题
虚拟网络和物理网络之间没有精确的拓扑映射
物理网络探测可能会旁路中间件
物理网络探测无法覆盖基于租户粒度的跨地域网络或 Internet 边界
虚拟网络探测挑战
在超大规模虚拟网络上实现低开销的探测
适应虚拟网络拓扑的快速更新
基于租户配置的实时拓扑重新计算; 根据拓扑更新实时计算端到端探测路径; 从控制器实时下发探测路径带来的大规模带宽开销。
多服务和多中间件覆盖
租户无感的 VM 到 VM 探测
区分虚拟和物理网络问题
Zoonet 解决方案
整体设计
Zoonet 数据面
请求数据包(Request packet),从 vSrc 到 vDst 的探测包; 回复数据包(Response packet),从 vSrc 到 vDst 的探测包; 报告数据包(Report packet),携带探测数据的报文,vBox 在收到请求或回复数据包时有可能会发送报告数据包。
2、探测模式
云网络有大量的有状态中间件,而无状态探测只能从一个方向监控虚拟路径; 现有解决方案只提供地域内的探测覆盖,而互联网边界是目前探测的盲点; 端到端探测可以检测异常路径,但故障发生时,无法定位确切的故障点(即设备/链路)。
Zoonet协议。我们自研了一套虚拟网络探测协议,该协议的数据包格式已在论文中公开。 Zoonet agent。自研开发的收发包代理软件,部署在 VM 宿主机上,是一个独立进程,并且有专门绑 CPU 控制核。这样可以有效避免对租户以及租户 VM 造成干扰和影响。 VM hypervisor。识别 Zoonet 数据包之后,主要封装、解封装隧道包头,以及打上一些标记位。 中间件。软件中间件比较好支持 Zoonet。对于一些可编程中间件,比如 Tofino 芯片,由于它们的片上资源有限,一般会把 Zoonet 数据包送给控制面处理。 最后一公里探测。从 Zoonet agent 发出的探测包无法覆盖从 VM 到 hypervisor 这一小段容易被忽视的链路,我们使用 ARP 探测解决这个问题。之所以选用 ARP 探测,是因为 ARP 协议是非常底层且基础的协议,一般的 VM 都默认支持。
Zoonet 控制面
探测任务产生的巨大测量开销; 频繁拓扑更新带来的问题; 探测数据采集与消费的巨大开销。
1、分层探测路径规划
2、频繁拓扑更新
虚拟网络实例,如 VPC、虚拟交换机、VM 等; 地域内、跨地域、接入 Internet/IDC 的路由; 其它如 ACL、每个租户的 Internet 带宽等。
策略一:删除与拓扑无关的更新。有一些租户的变更不会影响虚拟网络的拓扑,例如租户调整上网带宽。这样的更新会从消息队列中移除。 策略二:删除 add-del 更新。对于从消息队列中读取的一批更新,如果有相同实例、路由或其他配置的先加后删或先删后加,我们会识别并一起移除。 策略三:按 VPC 粒度聚合更新。探测拓扑分析器从设备控制器订阅拓扑更新。设备控制器是为了高可用性而分布式实现的,这可能会导致更新的无序到达。例如,探测拓扑分析器可能会收到在 VPC 中创建 VM 的更新,但相应的 VPC 创建事件可能会在下一轮才能从队列中读取,这将导致更新错误。我们的解决方案是按照 VPC 粒度聚合所有从队列中读取的更新。
3、探测数据采集与消费
线上部署发现的问题
虚拟网络协议栈错误
虚拟网络拥塞
虚拟路由异常
虚拟链路故障/物理网络故障
VM“最后一公里”异常
自证清白
经验分享
总结
你可能还想看
1. 阿里云计算巢 x GBase GCDW:自动化部署云原生数据仓库
2. 算力攻坚,视频云背后的「硬」核玩家
3. 阿里云连续3年跻身Gartner全球云数据库管理系统领导者象限
4. 深耕5G云专网,阿里云祝顺民入选“2022年度5G创新人物”
5. 阿里云张献涛:无影,让计算触手可及
关注我们欢迎关注加星标✨ 精彩推送不错过