三层网络设计的结构发展已经很成熟,但leaf-spine (leaf叶节点,spine脊节点)结构越来越热门,网络设计师们应该如何进行选择呢?

尽管三层网络结构应用广泛而且技术成熟,但随着技术的发展,它的瓶颈也不断涌现,导致越来越多的网络工程师放弃这种结构的网络。那么有什么其他的网络可以代替这种三层结构,答案就是leaf-spine叶脊拓扑网络结构。

随着企业寻求效用的最大化和数据中心的利用率,主流的三层网络拓扑结构越来越不能满足需求。”网络拓扑”是指网络设备互联的方式,设备通过既定的协议和连线进行通信和连接。

我们先来看看标准的网络数据中心的拓扑结构,这是一个三层的网络结构:接入层-客户端连接网络;汇聚层-交换机接入;核心层-交换机和路由汇聚并连接内外网络。

图1. 传统三层网络结构图

这个模型的设计为数据中心的网络拓扑设计提供了可行性依据。这个模型设计图可以扩大为整个网络的拓扑图。重要的是三层模型,这里面包括网络端口的密度和交换机的数量要匹配。结构化布线的要求也可以清晰的看出来,层与层之间的连接是和数据中心的网络拓扑相同的。因此,虽然现实的三层网络增加更多的设备,但原理上和模型图是一致的。

为什么三层网络结构存在短板?

基于性能瓶颈和网络利用率等等的原因,资深的网络设计师都在探索新的数据中心的拓扑结构。

数据中心网络传输模式是不断地改变的。大多数网络都是纵向(north-south)的传输模式---主机与网络中的其它非相同网段的主机通信都是设备-交换机-路由到达目的地。同时,在同一个网段的主机通常连接到同一个交换机,可以直接相互通讯。

图2:n-s网络,纵向网络结构

图3:n-s网络简化图。数据传输模式

然而,现代数据中心的计算和存储基础设施,主要网络流量模式从已经不止是单纯的不同网段之间通讯。内外网的通讯、网络段分布在多个接入交换机,要求主机通过网络互连等这些环境。这些网络环境的变化催生了两种技术趋势:网络收敛和虚拟化。

网络收敛:网络结构中,储存网络和通信网络在同一个物理网络中。主机和阵列之间的数据传输通过储存网络来传输,在逻辑拓扑上就像是直接连接的一样。如ISCSI等。

虚拟化:将物理客户端向虚拟客户端转化。虚拟化服务器是未来发展的主流和趋势,它将使网络节点的移动变得非常简单。

横向网络(east-west)在纵向设计的网络拓扑中传输数据会带有传输的瓶颈,因为数据经过了许多不必要的节点(如路由和交换机等设备)。如果网络上主机需要通过高速带宽相互访问,但通过层层的uplink口,会导致潜在的、而且非常明显的性能衰减。三层网络的原始设计更会加剧这种性能衰减,由于生成树协议会防止冗余链路存在环路,双上行链路接入交换机只能使用一个指定的网络接口链接。

图4:e-w网络

虽然增大内部交换层的带宽有助于改善三层结构网络的传输阻塞,但这样受益的只是一个节点。E-W模式中主机之间的的数据传输并非同一时间只是存在两个节点之间。相反,数据中心中的主机之间在任何时间都有数据传输的。因此,增加带宽这种高层本低效率的投资只是治标不治本。

新兴的网络拓扑结构

那么要如何从根本上解决三层网络结构的这种瓶颈? 一种可行的解决方案就是在访问层之下增加交换层,两个节点之间的数据传输直接在这一层完成,从而分流了主干网络的传输。

这种结构就是leaf-spine叶脊拓扑结构,叶脊拓扑结构通过增加一层平行于主干纵向网络结构的横向网络结构,在这层横向结构上增加相应的交换网络,这种生成树模式是三层网络结构无法做到的。

这是类似于传统的三层设计,只是在脊层多个交换设备。在叶脊拓扑结构,所有的链接都是用来转发流量, 也是使用通用的生成树协议,如多连接透明互联协议(TRILL)或者最短路径桥接(SPB)。TRILL和SPB协议转发所有的连接流量,但同样能保持保持一个无环路的网络拓扑结构,类似于路由网络。

图5: 叶脊拓扑结构简化图

叶脊(leaf-spine)拓扑网络的优势

叶脊网络拓扑结构现在事实上是一个标准——供应商的各种以太网产品设计基本都可以应用在这种结构。因为叶脊网络拓扑结构有几个理想的特性,能充分发挥网络的优势。

所有横向的主机在网络位置上是平行的。叶脊网络扩大接入和汇聚层。一个主机可以通过叶支交换机(leaf)和另一个叶支交换机上的主机进行通信,而且是独立的通道。这种网络可以大大提高网络的效率,特别是高性能计算集群或高频流量通信设备,

叶脊网络里使用所有的互连链路,是传统的三层设计采用生成树一预防环路协议。如前所述,生成树检测回路,然后在回路的位置进行标记和隔离,以防止形成回路。这意味着,双路接入交换机只能使用两个上行链路其中的一个。而新的代替协议,如SPB和TRILL允许接入设备之间的所有链接都接入网络,使网络规模随着流量增长。

叶脊网络同样支持固化配置的交换机(也就是非管理型交换机)。和传统有可以管理端口数量的模块化插槽的交换机相比,这种交换机只有固定的端口,不过这种交换机的特点是价格便宜。但大量交换机连接着多层结构的三层拓扑结构中,传统交换机还是不可代替的。 叶脊网络允许多个脊交换机(spine)交叉互连,这样能避免叶脊网络所需的大量管理交换机。大部分企业也都抱着少钱多办事的原则,在不必要用管理型交换机的地方,就使用普通非管理型交换机来节省成本。

叶脊网络拓扑结构提供了解决横向网络连接的传输瓶颈,而且提供了高度的扩展性,它几乎能适应所有大中小型数据中心。可以预见,所有企业的IT建设都是走向收敛型和高层次的虚拟化型叶脊网络结构。

叶脊拓扑网络结构的缺点

叶脊拓扑网络结构不可能是完美的。其中一个缺点就是,交换机的增多使得网络规模变大。叶脊拓扑网络结构的数据中心需要按客户端的数量,相应比例的增加交换机和网络设备。随着主机的增加,需要大量的叶交换机(leaf)上行连接到脊交换机(spine)。

图6. 叶脊网络完整图

脊交换机和叶交换机直接的互联需要匹配,一般情况下,叶脊交换机之间的合理带宽比例不能超过3:1。例如,有48个10Gbps速率的客户端在叶交换机上,预计所需的带宽是480Gbps。如果叶层交换机使用4个40Gbps的uplink端口连接脊层交换机,它的带宽就是160Gbps,这样的比例就是3:1,不会超负荷。

在设计叶脊网络的时候特别要注意这个带宽的比例关系。

叶脊网络也有明确的布线的要求。叶脊层之间的电缆数量增加是数据中心管理人员面临的挑战,甚至需要用光纤来连接。因为光模块有传输距离远,衰减小的特点,在大型的网络部署中有不可代替的优势。部署数据中心叶脊网络的时候必须考虑这些因素,如客户端数量,带宽需求的大小,距离的远近等等,以便选择是否需要光纤模块。

为什么要使用叶脊(leaf-spine)拓扑网络?的更多相关文章

  1. Mininet实验 多个数据中心的拓扑网络实现

    实验目的 掌握多数据中心网络拓扑的构建 掌握多数据中心数据交换过程 实验原理 主机间发送消息上报给交换机,交换机对收到的报文信息进行分析判断,如果交换机中存在此消息相对应的流表,则交换机直接下发流表, ...

  2. 利用 VMWare 搭建随机拓扑网络

    这篇文章是计算机网络上机实验课的作业. 实验任务:利用 VMWare 搭建一个由 5 个主机组成的随机拓扑的网络.要求该网络中至少有 2 个子网,两个路由器 .实验的网络拓扑图如下: 网络中有两个路由 ...

  3. 数据中心网络架构的问题与演进 — CLOS 网络与 Fat-Tree、Spine-Leaf 架构

    目录 文章目录 目录 前文列表 CLOS Networking Switch Fabric 胖树(Fat-Tree)型网络架构 Fat-Tree 拓扑示例 Fat-Tree 的缺陷 叶脊(Spine- ...

  4. CLOS网络架构与FATTREE胖树拓扑

    FatTree拓扑结构是由MIT的Fares等人在改进传统树形结构性能的基础上提出的,属于switch-only型拓扑. 整个拓扑网络分为三个层次:自上而下分别为边缘层(edge).汇聚层(aggre ...

  5. MiniNet自定义拓扑

    SDN 与 Mininet 概述 SDN 全名为(Software Defined Network)即软件定义网络,是现互联网中一种新型的网络创新架构,其核心技术 OpenFlow 通过网络设备控制面 ...

  6. 网络协议学习笔记(九)CDN和数据中心

    概述 上一篇给大家介绍了DNS协议和HttpDns协议,现在给大家介绍一下CDN和数据中心相关的知识. CDN:你去小卖部取过快递么? 如果你去电商网站下单买个东西,这个东西一定要从电商总部的中心仓库 ...

  7. 容器网络——从CNI到Calico

    从容器诞生开始,存储和网络这两个话题就一直为大家津津乐道.我们今天这个环境下讲网络这个问题,其实是因为容器对网络的需求,和传统物理.虚拟环境对网络环境需求是有差别的,主要面临以下两个问题: 过去Iaa ...

  8. [转帖] InfiniBand主流厂商和产品分析

    https://blog.csdn.net/swingwang/article/details/72935461 InfiniBand主流厂商和产品分析 2017年06月08日 22:03:46 Ha ...

  9. [转帖]InfiniBand 主流厂商 和 产品分析

    InfiniBand 主流厂商 和 产品分析   Mellanox成立于1999年,总部设在美国加州和以色列,Mellanox公司是服务器和存储端到端连接InfiniBand解决方案的领先供应商.20 ...

随机推荐

  1. 《利用Python进行数据分析》笔记---第2章--1880-2010年间全美婴儿姓名

    写在前面的话: 实例中的所有数据都是在GitHub上下载的,打包下载即可. 地址是:http://github.com/pydata/pydata-book 还有一定要说明的: 我使用的是Python ...

  2. TypeError: pivot_table() got an unexpected keyword argument 'rows'

    利用Python进行数据分析>第二章,处理MovieLens 1M数据集,有句代码总是报错: mean_rating = data.pivot_table('rating', rows='tit ...

  3. 解析6种常用View 的滑动方法

    View 的滑动是Android 实现自定义控件的基础,实现View 滑动有很多种方法,在这里主要讲解6 种滑动方法,分别是layout().offsetLeftAndRight()与offsetTo ...

  4. 解决RTMP推送时间戳问题引起HLS切片不均匀导致手机浏览器播放卡顿的问题

    本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/74161115 引言 最近在测试EasyNVR ...

  5. 3. 什么是JSR参考实现? - JavaEE基础系列

    本文是JavaEE基础系列的第三节. Java EE简介 - JavaEE基础系列 JSR简介 - JavaEE基础系列 上一节中, 我们介绍了什么是JSR.JSR就是一个提交到JCP的抽象请求,包含 ...

  6. DataFrame数据批量做线性回归

    我们通常用pandas读取csv文件为DataFrame数据格式,如下图,是部分县2001年到2009年的某种作物的产量数据.我们希望求得9年的增长趋势,即求一个一元线性回归模型的斜率,这个时候便可以 ...

  7. Weinre(pc调试手机页面)

         Weinre是一款基于Web Inspector(Webkit)的远程调试工具,借助于网络,可以在PC上直接调试运行在移动设备上的远程页面,中文意思是远程Web检查器,有了Weinre,在P ...

  8. kubeadm搭建kubernetes集群之一:构建标准化镜像

    使用docker可以批量管理多个容器,但都是在同一台电脑内进行的,这在实际生产环境中是不够用的,如何突破单机的限制?让多个电脑上的容器可以像单机上的docker-compose.yml管理的那样方便呢 ...

  9. 类中的迭代器__iter__

    什么是迭代器 有iter()函数返回,可以通过next(it)函数取值的对象就是迭代器 迭代器协议 迭代器协议是指对象能够使用next函数获取下一项数据,在没有下一项数据时触发一个StopIterat ...

  10. BZOJ2005 NOI2010 能量采集 【莫比乌斯反演】

    BZOJ2005 NOI2010 能量采集 Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些 ...