写点什么

YY 游戏云平台 Cloud 2.0 网络设计分析

  • 2016-04-18
  • 本文字数:3416 字

    阅读完需:约 11 分钟

前言

YY 游戏 Cloud 2.0 的开发背景详见《YY 游戏私有云平台实践》。在Cloud 2.0 里,虚拟网络的架构和实现是重中之重,本文主要谈及网络设计部分。网络设计一个核心功能是实现租户网络(VPC),我们采用VxLAN 技术来构建VPC。考虑到性能和稳定性,使用带SDN 功能的硬件交换机来完成VXLAN 的offload 和routing。同时,游戏运营有特殊的业务需求,例如云网关功能。处于同样的考虑,采用硬件防火墙来实现云网关,包括南北向的NAT 和Floating IP。在这个方案里,还支持不同VPC 对共享数据区域的访问,也就是东西向的访问,同样使用硬件防火墙的NAT 来实现。

在由客户端vSwitch、接入交换机、核心交换机、防火墙组成的虚拟网络里,数据流程跟传统网络没有太大的差别,但是数据结构非常不同。比如为了支持VPC,接入交换机要设置VNI(VXLAN 网络标识),核心交换机上要配置VRF(虚拟路由器),防火墙上要开启vSys(虚拟子系统),它们处理的数据包不同于传统网络。而它们处理包的方式、转发路径,则取决于控制器的实现。在本文里,将对虚拟网络架构、数据转发流程、以及SDN 控制器进行一个较为详细的描述。

虚拟网络架构

(点击放大图像)

这个架构的主要组成部分如下:

  • SDN TOR:虚拟网接入交换机,负责 VXLAN 的封装和转发;
  • SDN Core:虚拟网核心交换机,负责 VXLAN 的三层网关和路由;
  • Firewall:防火墙,负责南北向的 NAT 网关,包括 Floating IP;
  • SDN Controller:SDN 控制器,负责整个虚拟网络的配置管理;
  • vSwitch:运行在计算节点上的虚拟交换机组件。

核心技术指标

在这个架构中需要实现的核心技术指标有:

  • VXLAN 功能 offload 到硬件交换机中实现;
  • VPC 内 L2 VTEP,offload 到 SDN TOR;
  • VPC 内 L3 VTEP,在接入侧 offload 到 SDN TOR,在网关侧 offload 到 Core Switch;
  • VXLAN VNI 和 VLAN 实现解耦,VLAN 根据物理位置和 VNI 进行动态映射;
  • NAT 和 VPN 做在硬件防火墙;
  • 每个 Core Switch 支持至少 4K 租户(取决于核心交换机能力),可以通过横向扩展,支持更多租户;
  • 通过在 vSwitch 或者 TOR 上启用 ARP 代理,避免 ARP 广播到物理网络;
  • 流表通过控制器预先下发,而不是通过动态学习;
  • Floating IP 使用硬件防火墙实现,提高转发性能;
  • 除了虚拟机外,还支持物理机接入;
  • 控制器支持运行时无缝动态增加、删除网元设备;
  • 控制器和 Agent 不依赖 OpenStack 组件,可独立部署和实现;
  • OVS 和 Agent 运行的宿主机环境,稳定支持 Ubuntu 14.04 LTS 操作系统和对应的最新内核 (linux-image-generic)。

SDN 控制器

控制器架构

(点击放大图像)

云平台门户调用 RiseCloud API ,完成跟虚拟网络的对接。RiseCloud API 是 YY 自己实现的、高度抽象的网络控制器接口。它北向是一套简单的 API,类似于 OpenStack 的 Neutron API;南向跟厂家设备、厂家控制器以及跟第三方控制器集成,共同完成对虚拟网络的管理。

控制器功能

  • 交换机、物理服务器、VM、租户网络等信息映射关系管理。
  • VM 端口配置、ACL、QOS 等。
  • 租户网络配置管理,租户二层网络创建、删除、变更等。将 VXLAN 功能实现在 TOR 交换机上,并随资源变化能够动态进行更新。
  • 三层路由转发功能,为每个租户创建三层路由 vGW,可实现 ACL、Routing、QOS 等功能。在核心交换机上为每个租户创建一个 VRF,通过 VXLAN Routing 实现租户路由转发。
  • 南北网关功能,为每个租户实现一个南北向网关,可实现防火墙规则、NAT、PAT 功能。通过专业硬件防火墙,为每个租户创建一个 VR,实现地址管理、NAT 规则等独立操作。
  • 共享数据区域访问,为租户提供对共享数据区域访问(IP 地址、端口访问)方式,通过防火墙 PAT 功能,按需进行动态地址和端口映射。
  • 网络监控,监控交换机、物理服务器、虚拟机、虚拟端口、流量等信息,汇总至 Controller 进行统一呈现。
  • 诊断分析,提供配置检查、内网发包诊断、租户内网数据抓包分析、按协议 / 应用 / 地址等进行流量分析功能。

数据转发面架构

数据转发架构图

(点击放大图像)

  • 南北流量

    如图所示,租户子网南北流量路径为:
    ToR <–> VXLAN <–> 核心 <–> (GW1) 防火墙 <–> NAT/PAT

  • 跨子网东西流量

    如图所示,租户跨子网东西流量路径为:
    ToR <–> VXLAN <–> (GW3) 核心 (GW3) <–> VXLAN <–> ToR

  • 跨机柜同子网流量

    如图所示,租户跨机柜通子网流量路径为:
    ToR <–> VXLAN <–> ToR

  • 共享数据访问流量

    如图所示,租户共享数据访问流量路径为:
    ToR <–> VXLAN <–> ToR <–> (GW2) 防火墙 <–> PAT

注:以下网关类型分别为:

  1. GW1:南北网关
  2. GW2:资源区网关
  3. GW3:东西网关

L2 流量转发过程

同 TOR 同 hypervisor 内同网段 VM 转发

主要利用 Open vSwitch 的流表进行转发,这时需要 SDN 控制器向 Open vSwitch 下发对应的流表。对于 arp 报文,需要匹配 arp request 从 hypervisor 和 TOR 连接的端口送出,将报文送到 TOR 上,由 TOR 的 arp proxy 代理完后发回来。arp reply 匹配 vlan + macda 后,送到正确的 VM 上完成 arp 通信。数据报文匹配 in_port + macsa 完成 tenant VM 的识别后,送到另外一张 L2 转发流表,该流表匹配报文的 macda 后送到指定的 VM 完成数据报文通信。

同 TOR 不同 hypervisor 内同网段 VM 转发

主要利用 Open vSwitch 的流表和 TOR fdb 进行转发,这时需要 SDN 控制器向 Open vSwitch 下发对应的流表。对于 arp 报文,需要匹配 arp request 从 hypervisor 和 TOR 连接的端口送出,将报文送到 TOR 上,由 TOR 的 arp proxy 代理完后发回来。arp reply 匹配 vlan + macda 后,送到正确的 VM 上完成 arp 通信。数据报文匹配 in_port + macsa 完成 tenant VM 的识别后,送到另外一张 L2 转发流表,该流表匹配报文的 macda 后送到 hypervisor 和 TOR 连接的端口。报文送到 TOR 后,根据 fdb 表完成二层数据转发,完成数据报文通信。

不同 TOR 不同 hypervisor 内同网段 VM 转发

主要利用 Open vSwitch 的流表和 TOR tunnel offload、core switch fdb 进行转发,这时需要 SDN 控制器向 Open vSwitch 下发对应的流表。对于 arp 报文,需要匹配 arp request 从 hypervisor 和 TOR 连接的端口送出,将报文送到 TOR 上,由 TOR 的 arp proxy 代理完后发回来。arp reply 匹配 vlan + macda 后,送到正确的 VM 上完成 arp 通信。数据报文匹配 in_port + macsa 完成 tenant VM 的识别后,送到另外一张 L2 转发流表,该流表匹配报文的 macda 后送到 hypervisor 和 TOR 连接的端口。报文送到 TOR 后,根据下发 vlan 和 vni 的对应关系,封 VXLAN 报文送到 core switch,在 core switch 上根据 fdb 表转发 VXLAN 报文,送到对端 TOR 上完成数据通信。

L3 流量转发过程

(点击放大图像)

主要利用Open vSwitch 的流表和TOR tunnel offload 进行转发,这时需要SDN 控制器向Open vSwitch 下发对应的流表。对于ARP 报文,需要匹配ARP request 从hypervisor 和TOR 连接的端口送出,将报文送到TOR 上,由TOR 的ARP proxy 代理完后发回来。ARP reply 匹配VLAN + macda 后,送到正确的VM 上完成ARP 通信。数据报文匹配in_port + macsa 完成tenant VM 的识别后,送到另外一张L2 转发流表,该流表匹配报文的macda=core switch mac 后,送到hypervisor 和TOR 连接的端口。报文送到TOR 后,根据下发VLAN 和VNI 的对应关系,封VXLAN 报文送到core switch。core switch 收到VXLAN 报文后,根据报文里的VNI 信息,找到对应的VRF 信息(一个VRF 对应于一个虚拟路由器),查找相应的路由(看core switch 支持情况,32 位主机路由还是网段路由),将对端网段VNI 信息再封成VXLAN 报文送出。TOR 上解封装后,翻译VNI 和VLAN 的映射关系,送到hypervisor 上查流表进行转发。

总结

YY 游戏 Cloud 2.0 建设是一项全新的尝试,我们让不同厂家的硬件设备和驱动、第三方控制器、YY 自己的 RiseCloud 控制器、YY 云平台业务系统有机的整合起来,组成一个高性能、高可靠的虚拟网络系统。在这个过程中所取得的成功经验和失败的教训,我们也乐于分享,期望对国内企业的私有云建设有所帮助。同时感谢合作厂家包括华为、H3C、云杉在技术方案、测试设备等方面对我们的大力支持。

如果您在 SDN、QEMU/KVM、Ceph、Libvirt 任何一项有长足的经验,都欢迎与我们联系:me@fenghe.org,YY 游戏云平台欢迎各路有志之士加盟。


感谢魏星对本文的策划和审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-04-18 17:252420

评论

发布
暂无评论
发现更多内容

Go常用设计模式(中)

闫同学

三周年连更

Macos媒体播放器 Movist Pro 针对 macOS 13 Ventura 进行了优化

Rose

Movist Pro 中文版 Movist Pro下载 Macos媒体播放器 视频播放器下载

什么是人工智能领域模型的 Presence Penalty 参数?

汪子熙

人工智能 机器学习 深度学习 强化学习 三周年连更

OpenHarmony设备开发从零到一

鸿蒙之旅

OpenHarmony 三周年连更

macOS硬盘如何格式转换?用Tuxera NTFS就够了!

Rose

ntfs FAT32

Focus Matrix for Mac(智能任务管理器)

Rose

mac软件下载 Focus Matrix 任务管理器

必知必会的JavaScript前端面试题篇(一),不看后悔!

Immerse

一套前后台全部开源的H5商城送给大家

越长大越悲伤

开源 java‘

在啥样的公司工作没意义

Jadedev

职场 职场经验 职场发展

Mac 触控增强神器:BetterTouchTool如何使用?

Rose

苹果软件下载 BetterTouchTool破解 BetterTouchTool教程 Mac 触控增强神器

macbook触摸板怎么按右键

理理

MacBook 触控板

SVN管理工具Cornerstone意外退出怎么办?

理理

SVN管理工具 cornerstone 4破解 Cornerstone mac版 Cornerstone意外退出

Smart Disk Image Utilities for Mac(智能磁盘镜像工具)

理理

Smart Disk Mac磁盘管理

在这样的公司工作没意义

Jadedev

职场 职场经验 职场发展

Office Mac升级提醒如何去掉?关闭Microsoft AutoUpdate弹框提示

Rose

许可证 Office 2019中文版 Office Mac office更新 office2021下载

容量成本性能全都要有, Redis 容量版 PegaDB 设计与实践

Baidu AICLOUD

Pratt Parsing - 自顶向下的算符优先级

乌龟哥哥

三周年连更

架构训练营模块一作业

Geek_3d7c4d

架构训练营

软件测试 | MTV开发模式

测吧(北京)科技有限公司

测试

waves插件更新,Waves V14系统及支持的主机一览

理理

waves下载 waves14

团队管理的五个关键词

Jadedev

团队管理

2023-05-06:X轴上有一些机器人和工厂。给你一个整数数组robot,其中robot[i]是第i个机器人的位置 再给你一个二维整数数组factory,其中 factory[j] = [posit

福大大架构师每日一题

golang rust 福大大

苹果Mac最佳卸载程序和清理助手:App Cleaner & Uninstaller

Rose

mac系统清理优化软件 苹果系统清理 App Cleaner

玛雅Maya 2024 发布 maya2024破解

理理

maya2024下载 maya2024新功能 maya2024安装教程

责任心与执行力

Jadedev

职业素养 团队文化 人格

云原生应用使用的云服务组件介绍

穿过生命散发芬芳

三周年连更 云服务组件

Java IO流详解

timerring

Java

云原生文件存储 CFS 线性扩展到千亿级文件数,百度沧海·存储论文被 EuroSys 2023 录用

Baidu AICLOUD

文件存储 元数据 posix

Django笔记二十二之多数据库操作

Hunter熊

Python django database

Java实现坦克大战2.0

timerring

Java

清晰的定位对团队成功的影响

Jadedev

团队管理

YY游戏云平台Cloud 2.0网络设计分析_语言 & 开发_风河_InfoQ精选文章