写点什么

OPPO 云 VPC 网络实践

  • 2021 年 12 月 14 日
  • 本文字数:2614 字

    阅读完需:约 9 分钟

1 OPPO 云网络现状

随着 OPPO 业务的快速发展,OPPO 云规模增长迅速。大规模虚拟实例的弹性伸缩、低延时需求对网络提出了诸多挑战。原有基于 VLAN 搭建的私有网络无法解决这些问题,给网络运维和业务的快速上线带来了挑战。


梳理存在的主要问题如下:

  1. 网络缺乏集中的控制系统,业务开通以手工配置为主,自动开通能力几乎没有,为后期维护、升级埋下隐患。

  2. 虚拟网络和物理网络耦合紧密,没有做到业务分离。虚拟网络的 MAC 或者路由会传递到物理设备上,对物理设备的二、三层表项的容量提出了很高的要求。虚拟实例大规模扩容后可能会使硬件设备上的路由表项耗尽,导致业务无法使用。

  3. 虚拟网络缺乏安全策略,已有的安全策略不能很好的管控虚拟网络之间的互访互通,网络访问控制机制不健全。

  4. 虚拟网卡带宽无法支持高性能业务。网络的虚拟网卡只支持 veth/tap 设备,网络带宽不高,满足不了网络数据密集型业务的需求。

  5. 虚拟网络系统没有实现控制和转发分离,控制面故障或者升级会影响业务。

2 虚拟网络选型  

分析上述问题的根本原因之后,决定选择目前业界主流的 SDN 网络技术来解决上述网络隔离和运维自动化能力不足的问题,选择智能网卡 OFFLOAD 功能来实现虚拟实例的网络加速,选用虚拟私有云(VPC)技术来治理不同用户的业务网络、提高系统的健壮性、安全性。


SDN 的数据面采用开源的 OVS 来实现,主要原因是 OVS 已经在数据中心中大规模应用,其转发性能、稳定性和安全性已经得到实践证明,其维护成本也相对降低。


VPC 控制器、VPC 网络接口(CNI)插件、VPC 网关、VPC 负载均衡(Load Balance)决定采用自研的方式实现,虽然社区已经有类似的方案(Neutron/OpenDaylight),但是这些项目都比臃肿,侧重于电信业务场景,维护成本较高,不能直接应用于数据中心互联网业务场景,并且和已有的平台系统,集成开发工作也比较多。而自研也有很多优点,比如新功能开发快速不在依赖社区、定制开发方便、轻量化、性能高、稳定性强。

3 VPC 网络方案

整个 VPC 网络系统架构如下图所示。

图 1 VPC 网络架构

VPC 控制台提供统一业务入口和便捷的界面操作,业务操作可视化,关键数据存于数据库中,便于维护和使用。


VPC SERVER 是整个系统的中心,对云平台提供高效,简洁的业务接口。是整个系统的消息转发枢纽。


FlowEngine 是位于计算节点的 OVS 控制器,它采用规则推理的方式计算流表,指示 OVS 如何转发业务报文。FlowEngine 与 VPC Server 一起称作网络的中央中枢。


VPC CNI Agent 负责计算节点网卡资源的管理和分配,同时对云平台提供了创建、删除等业务接口。它采用智能网卡虚拟化(SR-IOV)技术实现虚拟实例的网络加速。


VPC 网关分为东西向的分布式网关和南北向的集中网关,提供不同子网的通信,解决了集中网关的单点故障问题。南北向的集中网关支持 VXLAN 隧道,实现虚拟网络和物理网络的互通,并且支持横向扩展和 DPDK 加速技术。


VPC LB 实现四层负载均衡,对外提供业务的高可用方案。

3.1 VPC 网络类型

当前 VPC 网络支持租户网络、公共网络和弹性 IP 网络。租户网络中虚拟实例之间可以互相访问,只能通过 VPC 网关访问外部网络,虚拟实例的 IP 地址不会发布出去,因而不能被外部主机访问。只有绑定上弹性 IP 才可以对外直接提供服务,这种网络特别适合于开发测试环境向生产环境的切换,有利于业务的快速发布。


租户网络也可以借助 LB 网关,发布虚拟 IP(VIP)路由,对外提供业务。                                                                                                        

公共网络类似于传统的 VLAN 网络,它的网段会被 VPC 网关发布到上联设备上,直接可以和 IDC 网络互通。方便部署基础虚拟云平台的监控服务以及公共服务。

图 2 VPC 业务网络架构

3.2 租户隔离的隧道 VXLAN

VPC 网络的类型为 VXLAN 隧道,每个子网分配唯一的 VXLAN 隧道 ID,同安全组技术一起使用保证不同用户网络的完全隔离,解决了业务上云的安全风险。


OVS 的数据面转发由本地控制器来控制,控制器故障不会影响其他节点的通信和已有隧道业务流的转发。

     

采用智能网卡的 VXLAN 卸载功能,不会因为 VXLAN 的性能损耗影响业务转发,同时节省了主机的 CPU 资源。

3.3 VPC 隧道封装说明

3.3.1 VXLAN 隧道隔离

VPC 网络支持虚拟机和容器位于同一个二层网络,从网络角度看,他们都在同一个 VPC 子网内。不同节点虚拟实例互访,需要借助 VXLAN 隧道完成。同子网虚拟实例通信,报文的 VXLAN ID 是本子网的 ID,异子网虚拟实例通信,报文的 VXLAN ID 是目的子网的 ID。


虚拟实例访问 VPC 外部网络需要借助 VPC 网关,VPC 网关采用软件实现,通过 DPDK 和高速网卡加速,运行在 X86 服务器上即可。当前也支持第三方 VPC 网关,VPC 网关可以通过 HTTP API 或者 BGP-EVPN 接口与 VPC SERVER 交互 VXLAN 的路由信息。

图 3 VXLAN 隧道转发示意

3.3.2 VPC 负载均衡

VPC 负载均衡采用全 NAT 方式实现,报文封装在 VXLAN 报文中进行转发。路由和隧道信息由 VPC SERVER 同步给 LB 控制器,LB 控制器负责将路由信息更新到对应的网元。


图 4 负载均衡转发示意

从上图可以清楚的看出报文的交互方案,LB 网元会保持业务的会话 session,支持轮巡、最小负载优先等调度算法。支持一致性哈希算法,无缝迁移业务功能。


LB 网元采用 DPDK 和高速网卡实现,报文转发速率(PPS)可以达到 800 万以上 ,会话数目可以达到 10 万以上,时延小于 1ms。满足互联网及 IOT 场景高并发业务要求。

3.4 VPC 性能指标

VPC 虚拟实例透传 VF 网卡后,转发性能可以到 25000Gbit/s。PktGen 测试报文转发速率(PPS)可以达到 2400 万,带宽可以达到 25Gbps。带宽和 PPS 都可以达到虚拟的 tap 设备的两倍以上,同时降低了网络转发的 CPU 使用率。


VPC 租户隔离的特性很好的解决多个租户内百万虚拟实例的快速互访问题。单实例和 LB 性能的提高了解决了现网中百万节点数据计算的带宽瓶颈。大大提高了系统的业务承载能力。VPC 网络技术赋能 AI 和大数据计算平台。

4 收益与展望

上线运行后,VPC 架构简化了网络架构,提高了网络的安全性、提高了系统的业务承载能力及运维效率,为用户带去良好的体验并得到客户的一致赞赏。


VPC 版本仍在不断迭代中,即将发布的新功能有 VPC 统一管理容器、虚拟机、逻辑等多种类型的计算实例,数据面的高可用,OVS 流表计算引擎高可用,100G 最新智能网卡等。


作者简介

Andy Wang OPPO 高级后端工程师

主要负责 VPC 网络架构设计及实现。长期致力于 SDN 网络新技术实践。曾在中兴通讯、IBM、赛特斯担任高级网络工程师及架构师。


获取更多精彩内容,搜索关注[OPPO 数智技术]公众号

发布于: 28 分钟前阅读数: 10
用户头像

还未添加个人签名 2019.12.23 加入

OPPO数智技术干货及技术活动分享平台

评论

发布
暂无评论
OPPO云VPC网络实践