前言

YY游戏Cloud 2.0的开发背景详见《YY游戏私有云平台实践》。在Cloud 2.0里,虚拟网络的架构和实现是重中之重,本文主要谈及网络设计部分。

虚拟网络架构

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

  • 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、云杉在技术方案、测试设备等方面对我们的大力支持。

YY游戏Cloud 2.0网络设计分析相关推荐

  1. android pad版本 yy,YY游戏直播app(Android版)1.2.0版本更新

    YY游戏直播app(Android版)1.2.0版本更新 [更新时间] 2014年4月18日 [下载方式] [内容提要] YY游戏直播,上百款热门游戏.最新赛事直播,每天实时热播精彩不停歇! 关注你喜 ...

  2. Cloud 2.0时代 云基础设施的变迁与创新

    看什么看,快点蓝字关注我! 伴随着云计算.人工智能.AR/VR 等新技术的飞速发展,短视频.直播.信息流等新的互联网业态也正处于高峰发展期,从依靠人口红利发展转向数据红利,互联网企业对公有云服务提供商 ...

  3. 华为云K8S创新,Cloud 2.0的正确打开方式

    说起K8S(Kubernetes),恐怕和容器的崛起脱不了干系,这个基于容器技术的分布式架构最早源于Google开源的容器集群管理系统Borg.它可以在结合Docker技术的基础上,为容器化的应用提供 ...

  4. css-3秒(大概吧...)快速撸出YY游戏页面(三)

    有哪里不懂的,请在下面留言,我每天都看,有时间我会一一解答,看评论区也许有人提出了跟你同样想问的问题,可以看看我给出的回答,不用重复提问. css-3秒(大概吧...)快速撸出YY游戏页面(一) cs ...

  5. 【华为云技术分享】从 Cloud 1.0 到 2.0,云计算的“多元架构命题”

    今天,我们处于 Cloud 2.0 时代.1.0 时代,企业接触云计算,开始上云:2.0 时代,企业云化加深,核心业务上云.然而,在 2.0 时代,我们看到云计算正在进入多元架构时代. 什么是多元架构 ...

  6. Unity 年度总结:一款游戏的从0到1

    2020年开端,公司刚好开始一款新的项目,一款FPS吃鸡类手游. 到今日,大部分功能都已经实现,基于自己在此项目中的经历,写下此文. 思考自己一年来学习到的方方面面的知识点,以及部分做的不够好的地方. ...

  7. 详解ZStack Cloud v4.0:自研VPC网络模型实践指南

    一.背景 近日发布的ZStack Cloud v4.0中,推出了自主研发的VPC网络模型,以解决广大云计算用户网络个性化强.功能复杂.运维难等痛点. ZStack Cloud专有网络VPC (Virt ...

  8. 网络游戏源代码分析_为您的游戏选择正确的网络代码

    网络游戏源代码分析 We evaluated and researched today's most popular netcode frameworks for multiplayer games ...

  9. 极客日报第 37 期:苹果官网出现价格 Bug;大众 CEO点评“苹果造车”;Spring Cloud 2020.0 正式发布

    文章目录 一.互联网快讯 二.程序员专属 三.Github 每日精选 四.CSDN 社区优质博文精选 一.互联网快讯 1.阿里云量子模拟平台"太章 2.0"正式开源 阿里巴巴发布阿 ...

最新文章

  1. 11matlab [A rank]=sort (B), P = p(rank,: )的问题 and ~符号运算
  2. python将第一列替换_python-通过将另一列与第二个DataFrame进行比较来替换一列中的值...
  3. 1.3 List集合:ArrayList和LinkedList类的用法及区别
  4. java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext崩溃解决
  5. CRMEB移动端前端目录结构
  6. 【详解】()调试方法从线索(错误征兆)出发,通过分析这些线索之间的关系而找出故障,是从个别推断一般的方法。
  7. java匿名类和匿名对象及this的其他用法
  8. PHP在线无人值守源码交易网站源码,集成支付宝微信接口
  9. EAR、JAR、WAR(IT)
  10. varchar,char,varchar2,mybatis查询无返回
  11. Web应用程序的目录结构
  12. vue之生命周期(beforeCreate,created,beforeMount,mounted,beforeUpdate,updated)
  13. IE6 与 GZIP, BUG汇总
  14. 磊科nw336+linux驱动程序,磊科NW336无线网卡驱动程序
  15. 历史 微信开发者工具_微信开发者工具-微信开发者工具下载 v1.03.2011120官方版--pc6下载站...
  16. windowskb2685811补丁_关于Win7/8.1 KB2685811、KB2685813和KB2670838蓝屏补丁下载汇总
  17. 激活windows系统,你知道吗
  18. JAVAweb JSP飞机订票系统航空机票预订销售系统(机票预订系统)
  19. java4.25生成车牌号_泸牌16年涨882倍 超25万人拍一张车牌为哪般?
  20. iText生成pdf中文字体

热门文章

  1. 主流浏览器及四大内核
  2. 长视频的日子,过得不如短视频舒坦
  3. vs2008 断点进不去的问题解决
  4. 论文笔记:Hashtag Recommendation for Multimodal Microblog Using Co-Attention Network
  5. 2020-11-21 CentOS8下载
  6. Scrapy入门示例程序
  7. 运维面试必问的自动化系列高频面试题(2021年最新版)
  8. Excel基础—为什么学习Excel
  9. 【电子学会】2020年06月图形化四级 -- 小猴数草莓
  10. sql2012数据库不能登录的解决方法之一