作者:张向阳,腾讯CSIG后台开发工程师 0. 前言本文主要讲一下国外的互联网巨头的骨干网,每家公司的网络都有独特设计,其中 Facebook 和 Google 的网络主要是服务自身的产品和广大互联网用户,Amazon 和 Microsoft 在云服务的业务相对多些。 Facebook、Google、Microsoft 的网络在公开的论文都有比较详细的描述,而 Amazon 的底层网络相对的公开资料不多,在即刻构建 AWS 技术峰会 2019,AWS 的架构师分享了 AWS 的底层网络(第 3 章节或者参考文献),还是很值得学习。 1. Facebook Network目前 Facebook 公司系列产品有月活 30+亿用户,他们需要一个服务不间断、随时能访问的网站。为了实现这个目标, Facebook 在后端部署了很多先进的子系统和基础设施 ,可扩展、高性能网络就是其中之 一。 1.1 Facebook 全球网络概述1.1.1 概述Facebook 的网络本身就是一个大型分布式系统,针对不同任务划分成不同层次并采用不同的技术:
遍布在用户密集区的数量庞大的PoP/LB/cache通过骨干网作为偏远地区、低成本、数量可控的超大型数据中心的延伸。 1.1.2 Facebooke 网络流量模型从流量模型看,Facebook 分为两种类型。 1、外部流量:到互联网的流量(Machine-to-User)。 2、内部流量:数据中心内部的流量(Machine-to-Machine)。 其中,Facebook 数据中心内部的流量要比到互联网的流量大几个数量级,如下图所示。 1.1.3 解决方案机器对机器的流量通常会大量爆发,这可能会干扰并影响正常的用户流量,从而影网络可靠性目标。Facebook 将跨数据中心与面向 Internet 的流量分离到不同的网络中,并分别进行优化。 Facebook 设计了连接数据中心的网络Express Backbone (EBB)。在边缘互联网出口则推出Edge Fabric 架构。 1.2 Facebook 骨干网 EBB(Express Backbone)1.2.1 设计理念
1.2.2 EBB 架构
1.2.3 流量工程控制平面(Traffic Engineering Controller)NetworkStateSnapshot module:网络状态快照模块,负责构建活动的网络状态和流量矩阵PathAllocation module:路径分配模块,负责基于活动流量矩阵并满足某些最优性标准来计算抽象源路由。Drivermodule:驱动程序模块,负责将路径分配模块计算出的源路由以 MPLS 段路由的形式推送到网络设备。 1.3 Edge Fabric2017 年 Sigcomm 大会,Facebook 推出了面向互联网出口的边缘网络架构Edge Fabric。 A PoP has Peering Routers, Aggregation SWitches, and servers. A private WAN connects to datacenters and other PoPs。 Edge Fabric组件
img 由此看见 Edge Fabric 有一些限制:
1.4 总结Facebook 在骨干网、边缘网络都是使用 BGP 路由协议进行分布式控制,控制通道简单,避免多协议导致的复杂性,而对于流量工程采用集中的处理。 2. Google Network2.1 Google 全球网络概述Google 全球有 30+个数据中心,100+多个 POP 站点,同时在不同运营商网络中有很多 Cache 站点。信息从 Google 数据中心信息大致经过 Data Center-POP-Cache 三级网络发送到最终用户。 Google Cloud Netwok Google 的广域网实际上分为 B2 全球骨干网和 B4 数据中心互联网,边缘网络是 Espresso,数据中心内部则是 Jupiter,如下图所示。 Google网络构成 B2:面向用户的骨干网,用于连接 DC、CDN、POP、ISPs 等。B2 主要承载了面向用户的流量,和少部分内部流量(10%),带宽昂贵,整体可用性要求很高,利用率在 30%~40%之间。B2 采用商用路由器设备,并且运行 MPLS RSVP-TE 进行流量工程调节。 B4:数据中心内部数据交换的网络,网络节点数量可控,带宽庞大,承载的 Google 数据中心间的大部分流量。B4 承载的业务容错能力强,带宽廉价,整体利用率超过 90%。使用自研交换机设备,为 Google SDN 等新技术的试验田。 B4和B2架构 Espresso:边缘网络或者互联网出口网络,将 SDN 扩展到 Google 网络的对等边缘,连接到全球其他网络,使得 Google 根据网络连接实时性的测量动态智能化地为个人用户提供服务。 2.2 B2![]() B2物理架构
2.3 B4B4 是业界第一个成功商用的数据中心互联的 SDN 网络。
![]() B4的架构 Central TE (Traffic Engineering) Server:进行流量工程。 Network Control Server (NCS):数据中心(Site)的控制器,其上运行着 OpenFlow Controller (OFC) 集群,使用 Paxos 协议选出一个 master,其他都是热备。 交换机(switch):运行着 OpenFlow Agent (OFA),接受 OFC 的指令并将 TE 规则写到硬件 flow-table 里。 ![]() 流量工程 注:网上有很多介绍 B4 的文章,本文从略。 2.4 Espresso![]() 为了更好进行流量调度,Espresso 引入了全球 TE 控制器和本地控制器(Location Controller)来指导主机(host)发出流量选择更好的外部 Peering 路由器/链路,进行 per flow Host 到 Peer 的控制,并且解耦了传统 Peering 路由器,演进为 Peering Fabric 和服务器集群(提供反向 Web 代理)。 控制和转发流程:
3. Amazon Global Network注:本章节主要是参考即刻构建 AWS 技术峰会 2019的介绍,详细文档和视频见参考文献。 3.1 AWS 全球网络概述3.1.1 概述AWS 是一家全球公有云提供商,它拥有一个全球基础设施网络,以运行和管理其支持全球客户的众多不断增长的云服务。 ![]() 构成 AWS Global Infrastructure 的组件有:
![]() 3.1.2 设计理念
3.1.3 网络通信案例解析![]() 如上图所示,一个猫咪要去 AWS 的服务器中获取一张图片,流量首先通过 Internet 进入到 AWS Region,Region 包括 AZ,AZ 中有 VPC,在 VPC 中有 Server,Server 上面有图片,这是一种比较简单的抽象流程,但是如果把网络剥开一层再去看,其实会变得更加复杂,如下图: ![]() 可以看到包含了更多的 AWS 网络基础设施,流量首先进入 Edge PoP,这个也是 CDN 的站点,流量进来之后到骨干网络 Backbone,然后再进入 AWS Region,经过 Transit Center 进入 AZ。 3.2 AWS 全球网络的 Region 架构3.2.1 Availability ZoneAWS Region 是由 Availability Zone 组成。可用区(Availability Zones)实质上是 AWS 的物理数据中心。在 VPC 中创建的计算资源、存储资源、网络资源和数据库资源都是托管在 AWS 的物理数据中心。 每个 AZ 至少会有一个位于同一区域内的其他 AZ,通常是一个城市,他们之间由高弹性和极低延迟的专用光纤连接相连。但是,每个 AZ 将使用单独的电源和网络连接,这使得 AZ 之间相互隔离,以便在单个 AZ 发生故障时最大限度地减少对其他 AZ 的影响。 每个 Region 有两个 Transit Center,每个 Transit Center 和下面的每个 Datacenter 都有网络互联,同样 Datacenter 之间也有网络互联,这样可以确保 AWS 网络的可用性,部分网络基础设施故障也不会影响整个 Region 的可用性。 ![]() 3.2.2 AWS Regon 数据中心构造AWS 采用蜂窝式的网络架构。 ![]() 在图中间都是一个个小的模块,每个模块都有不同的一些功能,如 Access Cell 主要做主机的网络接入,Core Edge Cell 联通着 Transit Centers,进而把网络流量送进 AWS backbone。 每个 Cell 都肩负着不同的功能,Cell 和 Cell 之间都进行互联,在每一层,都可以通过平行扩展 Cell 来扩展整个网络的承载量,达到一个可伸展的网络。 每个 Cell 是一个单核路由器,端口比较少,可以控制故障域,转发架构更简单。 3.3 AWS 全球骨干网(Global Backbone)AWS Direct Connect、互联网连接、区域到区域传播和 Amazon CloudFront 到 AWS 服务的连接都是需要 AWS 骨干网。 和 Region 相似,全球骨干网也是采用了蜂窝式的一个网络架构,中间是大量的光纤连接,外层是负责一些网络功能的 Cell。 Transit Center Cell 用来连接 Region 内部的数据中心,Edge Pop Cell 用来连接 PoP 节点,Backbone Cell 用来连接远端的 PoP 节点进而连接到远端 Region 的数据中心。 ![]() 3.4 AWS Edge PoPAWS Edge PoP 是部署在全球主要城市和人口稠密地区的 AWS 站点。它们远远超过可用区域的数量。 AWS Edge PoP 对外就是连接的一张张 ISP 的网络。运营商接入 AWS 的骨干网络两个地方,一个是 Edge PoPs,另外一个 AWS 区域的网络中转中心(Transit Centers)。 Edge PoP 很大的一个作用就是对外扩充 AWS 的网络,同一个 Edge PoP 可以和运营商进行多次互联,获得至外网网络最优的互联。 ![]() 边缘站点也是采用了蜂窝式的架构,Backbone Cell 连接 AWS 骨干网络,External Internet Cell 连接外部的 Internet 网络,同时还包括一些 AWS Edge 服务网的一些 Cell,如连接 CloudFront、Route 53、Direct Connect 和 AWS Shield,这些服务都存在于 AWS Edge PoPs 中。 3.5 总结可以看到 AWS 在网络的各部分都采用了蜂窝式的架构,让这个网络的扩展性大大提升。并且通过采用主动式数据信道监控,从 AWS 服务日志采集互联网性能数据,以及互联网流量工程管理来达到互联网边缘的监控与自我修复。 4. Microsoft Network4.1 Microsoft Network 概述Microsoft 在布局云计算取得很大的成功,网络的布局功不可没、其中 Azure 拥有超过 165,000 英里的私有光纤,跨越全球 60 多个区域和 170 多个网络 PoP。 ![]() Azure网络 4.2 Microsoft SWAN 网络微软 SWAN 广域网 DCI 控制器也是一个典型的 SDN 网络,从最早的静态单层 MPLS Label 构造的端到端隧道,到最新的基于 BGP-TE SR 的全球 DCI 互联解决方案,可以实现 95%的跨数据中心链路利用率。 ![]() Microsoft SWAN架构 ![]() Microsoft SWAN控制面
注:具体细节可以见参考文献的论文 5 数据中心网络再补充一下 Google 和 Facebook 的数据中心网络设计。 5.1 Facebook 的 f4 和 f6 中文翻译http:///blog/facebook-f4-data-center-fabric-zh/ http:///blog/facebook-f16-minipack-zh/ 5.2 Google Jupiter 中文解读http:///2015/12/31/20151231-dive-into-google-data-center-networks/ 原文 http://conferences./sigcomm/2015/pdf/papers/p183.pdf 6. 总结从技术的角度看,互联网公司的网络演进是一个 SDN 的过程。SDN 是一个网络标准化的过程,是一个通信系统互联网化的状态,贯穿着网络的控制面、转发面、管理面。 从运营的角度看,互联网公司的网络演进是从“所有流量 all in one” 到互联网思路构建网络,网络具有分布式、模块化、低耦合等特点。 从布局的角度看,互联网公司的网络布局也是技术实力全球化扩张的缩影。也希望中国的互联网公司也能不断的扩张边界,进入全球化的食物链的顶端。 参考文献 Facebook 网络 https://engineering./2017/05/01/data-center-engineering/building-express-backbone-facebook-s-new-long-haul-network/ Google 网络 https://cseweb./~vahdat/papers/b4-sigcomm13.pdf AWS 网络 揭秘 AWS 底层网络是如何构成的 https://blog.51cto.com/14929722/2533206 AWS 底层网络揭秘 https://www.bilibili.com/video/av99088073/ Microsoft 网络 https://www2.cs./courses/cps296.4/compsci590.4/fall14/Papers/SWAN.pdf Facebook 的 F4,F16 网络架构 http:///blog/facebook-f4-data-center-fabric-zh/ http:///blog/facebook-f16-minipack-zh/ Google Jupiter 实现 中文解读 http:///2015/12/31/20151231-dive-into-google-data-center-networks/ 原文 http://conferences./sigcomm/2015/pdf/papers/p183.pdf |
|