2019-《Cloud Native Data Center Networking》

Cloud Native Data Center Networking

作者Dinesh G. Dutt是一家网络公司的首席科学家,在网络行业有20多年工作经验,曾 是Cisco Fellow,是TRILLVxLAN等协议的合作者(co-author)之一。

传统网络架构面临瓶颈

分布式应用(distributed application)正在与网络(network)共舞,而且前者是主角。分布式应用突然变换了舞步,现代数据中心的故事也由此开始。理解这种转变对网络从业人员至关重要,否则只会不断被一些新名词带着走。

应用-网络架构演进

The evolution of application architecture

应用架构演进:

  1. 单体应用

    • 通常部署在mainframe上。
    • 特定的厂商提供网络方案,协议是私有的(不是TCP/IP协议
    • 以今天的眼光看,应用所需的带宽极小。
  2. 客户端-服务器应用

    • 工作站和PC时代。
    • LAN开始兴起,充斥着各种L2L3和更上层协议。
      • 以太网、Token Ring、FDDI等是比较流行的互连方式。带宽上限100Mbps
      • TCP/IP体系开始发展,但还没用成为主流。
  3. Web应用

    • 以太网和TCP/IP一统互联网,其他绝大部分协议成为历史。
    • 计算和网络虚拟化:虚拟机时代
  4. 微服务(分布式应用)

    • 大规模的数据处理(例如MapReduce,使数据中心网络的带宽瓶颈从南北向变成东西向,这是一个历史性的转变。
    • 容器时代

21世纪以来的网络设计

Access-aggregation-core network architecture

上图是在上世纪末开始占据统治地位的网络架构:接入-汇聚-核心三级网络架构。

桥接(Bridging)的魅力

这种网络架构重度依赖交换(或称桥接,bridging,而在同时期,互联网(the internet)真正快速发展成型。既然支撑互联网的是IP路由(IP routing)技术,为什么数据中心网络没有选择路由(routing,而是选择的交换(bridging)呢?三方面原因:

  1. 交换芯片的出现(silicon switched packet forwarding)

    • 做数据转发的芯片原先主要用在网卡,现在用于功能更强大的交换设备
    • 这种设备显然要求芯片具备更高密度的接口,而这样的芯片在当时只支持交换(bridging,不支持路由(routing
  2. 厂商特定的软件栈(proprietary network software stacks)在企业中占据主导地位

    • “客户端-服务器”模型所处的时代,TCP/IP只是众多协议种的一种,并没有今天所处的统治地位。

    • 但各家的协议有一个共同点:二层协议是一样的,都是走交换(bridging。因 此汇聚层以下走交换就是顺理成章也是唯一的选择。

    • 接入-汇聚-核心成为了一种通用的网络架构:

      • 汇聚以下走交换(bridging,不区分厂商
      • 汇聚以上走各家的三层协议
      • 这样就避免了为每家厂商的设备单独搭建一张网络。
  3. 交换网络所宣称的零配置(zero configuration of bridging)

    • 路由网络很难配置,甚至对某些厂商的设备来说,直到今天仍然如此。需要很多显式 配置。
    • 相比交换,路由的延迟更大,更消耗CPU资源。
    • 交换网络是自学习的(self-learning,也是所谓的“零配置”(zero configurations

构建和扩展的桥接网络

厂商设备无关、高性能芯片加上零配置,使得桥接网络在那个年代取得很大成功。但这种网 络也存在一些限制

  1. 广播风暴和STP:这是自学习的机制决定的,

    • MAC头中没有TTL字段,因此一旦形成环路就无法停下来。
    • STP(生成树协议:避免交换网络出现环路,非常复杂,因此很难做到没有bug
  2. 泛洪成本

    • 大的交换网络的泛洪
    • 缓解:划分VLAN,使得泛洪域限制到VLAN内。
  3. 网关高可用

    • 网关配置在汇聚交换机

    • 为保证高可用,一组汇聚配置同一个网关;一台挂掉后自动切换到另一台。需要协议 支持,这种协议称为第一跳路由协议(First Hop Routing Protocol, FHRP

    • FHRP原理:几台路由器之间互相检测状态,确保永远有且只有一台在应答对网关的ARP请求。FHRP协议举例:

      • HSRP(Hot Standby Routing Protocol:思科的私有协议。
      • VRRP(Virtual Router Rundundency Protocol:目前用的最多的协议。

接入-汇聚-核心网络架构存在的问题

  • 广播风暴是所有在那个年代运维过这种网络的网工们的噩梦 —— 即便已经开启了STP
  • 应用(applications)变了 —— 服务器之间的东西向流量开始成为瓶颈,而这种网络架构主要面向的是“客 户端-服务器”模式的南北向流量时代。
  • 应用的规模显著变大,在故障、复杂性和敏捷度方面对网络提出了完全不同于以往的新需求。

现有网络架构无法解决以上问题。

  • 不可扩展性(Unscalability)

    • 泛洪:自学习机制是 “flood-and-learn”,因此泛洪是不可避免的。当网络规模非常大时(例如大规模虚拟机场景,定期地会有上百万的泛洪包,终端计算节点不堪重负。
    • VLAN限制:VLAN总共4096个,无法满足云计算时代的多租户需求。
    • 汇聚应答ARP的负担:汇聚负责应答ARPARP数量可能非常多,导致汇聚交换机CPU飙升。
    • 交换机水平扩展性和STP限制:理论上,增加汇聚交换机数量似乎就能增加东西向带宽。但是,STP不支持两个以上 的交换机场景,否则后果无法预测。因此汇聚交换机就固定在了两个,无法扩展。
  • 复杂性(Complexity)

    • 交换网络需要运行大量不同类型的协议,例如:STP、FHRP、链路检测协议;厂商特定的协议,例如VLAN Trunking Protocol(VTP,显著增加了网络的复杂性,STP使得网络只能用到一半的链路带宽。

The Stories Not Told

一些对这种网络方案的改进尝试:TRILLMLAG。经过时间沉淀,其他各种上层协议(L3+)已经退潮,IP协议成为唯一主流。是时候从网络需求出发,设计一种新的架构了。

Links

上一页
下一页