zoukankan      html  css  js  c++  java
  • 数据中心网络架构演进 — 从传统的三层网络到大二层网络架构

    目录

    三层网络架构

    三层网络架构:是采用层次化模型设计的三层网络,Cisco 称之为:分级的互连网络模型(Hierarchical Inter-networking Model)。即将复杂的网络设计分成几个层次,每个层次着重于某些特定的功能,这样就能够使一个复杂的大问题变成许多简单的小问题。三层网络架构设计的网络有三个层次:

    • 核心层(网络的高速交换主干)
    • 汇聚层(提供基于策略的连接)
    • 接入层 (将工作站接入网络)

    为了方便管理、提高网络性能,大中型网络应按照标准的三层结构设计。但是,对于网络规模小,联网距离较短的环境,可以采用 “收缩核心” 设计,忽略汇聚层。核心层设备可以直接连接接入层,这样一定程度上可以省去部分汇聚层费用,还可以减轻维护负担,更容易监控网络状况。

    在这里插入图片描述

    核心层(Core Layer)

    核心层:核心交换机为进出数据中心的包提供高速的转发,为多个汇聚层提供连接性,核心交换机为整个网络提供一个弹性的 L3 路由网络。

    核心层是网络的高速交换主干,对整个网络的连通起到至关重要的作用。核心层应该具有如下几个特性:可靠性、高效性、冗余性、容错性、可管理性、适应性、低延时性等。在核心层中,应该采用高带宽的千兆以上交换机,因为核心层是网络的枢纽中心,重要性突出。核心层设备采用双机冗余热备份是非常必要的,也可以使用负载均衡功能,来改善网络性能。网络的控制策略最好尽量少在核心层上实施。核心层一直被认为是所有外部网络流量的最终承受者,所以对核心层的设计以及网络设备的要求十分严格。核心层设备将占投资的主要部分。

    汇聚层(Aggregation Layer)

    汇聚层:汇聚交换机连接接入交换机,同时提供其他的服务,例如:防火墙,SSL Offload,入侵检测,网络分析等。

    汇聚层是网络接入层和核心层的 “中介(中间层)”,就是在 Server 接入核心层前先做汇聚,以减轻核心层设备的负荷。汇聚层具有实施策略、安全、工作组接入、虚拟局域网(VLAN)之间的路由、源地址或目的地址过滤等多种功能。在汇聚层中,应该选用支持三层交换技术和 VLAN 的交换机,以达到网络隔离和分段的目的。

    接入层(Access Layer)

    接入层:接入交换机通常位于机架顶部,所以它们也被称为ToR(Top of Rack)交换机,它们物理连接服务器。

    接入层是直接面向用户连接的部分,向本地网段提供工作站接入,主要解决了相邻用户之间的互访需求。所以接入层可以选择不支持 VLAN 和三层交换技术的普通交换机,接入层交换机具有低成本、高端口密度且即插即用的特性。接入层还应当适当负责一些用户管理功能(如:地址认证、用户认证、计费管理等),以及用户信息收集工作(如:用户的 IP 地址、MAC 地址、访问日志等)。

    三层网络架构的设计原则

    • 层次化设计:每个层可以看作为是一个具有特定角色和功能的、结构定义良好的模块,层次化的设计结构,易于扩展和维护,降低了设计的复杂度和难度。三层网络架构可以更好地控制网络规模和网络质量,同时也方便网络管理和维护。
    • 模块化设计:每个模块对应一个部门、功能或业务区域,可根据网络规模灵活扩展,部门或区域内部调整涉及范围小,容易进行问题定位。
    • 冗余设计:双节点冗余性设计可以保证设备级可靠,适当的冗余提高可靠性,但过度的冗余也不便于运行维护。如果无法做好双节点冗余设计,对框式的核心交换机或者出口路由器,可以考虑单板级的冗余,如双主控板,双交换网板。另外,关键链路可以采用 Eth-Trunk 链路实现链路级可靠性。
    • 对称性设计:网络的对称性便于业务部署,拓扑直观,便于协议设计和分析。

    在这里插入图片描述
    在这里插入图片描述

    三层网络架构的特点

    通常情况下,汇聚交换机是 L2 和 L3 网络的分界点,汇聚交换机以下的是 L2 网络,以上是 L3 网络。每组汇聚交换机管理一个 POD(Point Of Delivery),每个 POD 内都是独立的 VLAN 网络。服务器在 POD 内移动不必修改 IP 地址和默认网关,因为一个 POD 对应一个 L2 广播域。

    在这里插入图片描述
    汇聚交换机和接入交换机之间通常使用 STP(Spanning Tree Protocol,生成树协议)。STP 使得对于一个 VLAN 网络只有一个汇聚层交换机可用,其他的汇聚层交换机在当前使用的汇聚层交换机出现故障时才被使用(下图中的虚线)。也就是说汇聚层是一个 Active-Passive 的 HA 模式。这样在汇聚层,是做不到水平扩展的,因为就算加入多个汇聚层交换机,仍然只有一个在工作。一些私有的协议,例如 Cisco 的 vPC(Virtual Port Channel)可以提升汇聚层交换机的利用率。但是,一方面,这是私有协议,另一方面,vPC 也不能真正做到完全的水平扩展。上图是一个汇聚层作为 L2/L3 分界线,且采用 vPC 的网络架构。

    在这里插入图片描述

    三层网络架构面临的问题

    STP 协议既是良方又是毒药

    生成树协议(Spanning Tree Protocol,STP),是一种工作在 OSI 网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路,用于确保以太网中无环路的逻辑拓扑结构,从而避免了广播风暴大量占用交换机的资源

    传统的数据中心网络技术,STP 是二层网络中非常重要的一种协议。但是,在二层网络中使用 STP 协议有一个相当矛盾的点,那就是 可靠性安全性 的矛盾。

    • 可靠性是指构建二层网络时,一般会采用会采用设备冗余和链路冗余的方式。
    • 安全性是指二层交换机同处于一个广播域,广播报文在环路中会反复持续传送,可能会形成广播风暴,所以必须防止形成环路。要想两种同时达到,可以采用 STP(生成树协议)自动控制,即冗余设备和冗余链路成备份,在正常情况下被阻塞掉,当出现链路故障时冗余的设备端口和链路才会被打开。

    为什么二层交换网络会产生物理环路

    1. 链路冗余:交换机之间为了冗余、带宽提升、或错误连接难免会产生一个封闭的物理环路,而以太网的转发机制又决定了不能有物理环路,一有环路,那些发给所有主机的 Broadcast 、Unknown Unicast Frame 就会肆无忌惮在环路上永不停歇地绕圈圈。这些 Frame 永远无法到达目的地,对交换机 CPU 是一个致命的打击,如果有环路的发生,你可能无法本地、或远程登录你的交换机,只有重启或拔线了。
    2. 二层交换机的转发机制:交换机对于从一个 Port N 上 incoming 的 frame,学习其 Source MAC X,生成 MAC Address Table(MAC X: Port N)。这样它就会生成 MAC 地址和 Port 的映射表,如果收到一个 Frame,就会通过 Frame 的 Destination MAC 与 MAC Address Table 进行匹配,继而得出这个 Frame 应该从哪一个 Port 发送出去。如果没有匹配到,就认为是 unknown Unicast 或 broadcast,只好将它从所有 Port( 除了 incoming 口)发送出去,让 Frame 到了其他的交换机上尝试处理,于是这个 Frame 就有可能会一直在封闭的环路里无限的循环。

    STP 协议的设计思路:人类的很多智慧来自于大自然,同学们仔细观察一棵树,会发现一棵树,有根,树干,树杈,树枝,叶子,水分通过根,源源不断地输送到主干,树杈,然后到达叶子。水分在从根扩散到叶子的过程中,一直是单向的;而叶子因为光合作用产生的能量,再沿着叶子到达树枝,树杈,树干,一直到根。水分和能量是相反方向的流量,如果定义根为上游,叶子为下游,则水是从上游流向下游;而能量则是由下游流向上游。无论是哪个方向的流量,都没有在原地打转的情况发生,那是因为树的物理结构是发散的,没有树干、树杈、树枝的物理交织,自然不会发生环路。网络科学家发现了这个规律,有一个大胆设想,既然二层网络里有物理环路,那用一种逻辑的方法将物理的环路斩断,斩成一个发散的树状架构,是不是Frame就不会无限循环下去了?答案是肯定的,也是这么做的。如果把树的拓扑结构用于二层交换网络,在二层网络里选择一个根(Root Bridge),其它交换机当作树的树杈,每个树杈自然有一个根末梢(Root Port),这个就是交换机的上游接口,除了根末梢,其它的接口都是下游接口,至于下游接口是畅通的、还是阻断的,取决于到根的路径成本(Cost),谁更接近根,谁就畅通(Forwarding) ,即常说的 Designated Port;谁远离根,谁就需要被阻断(Blocked),即常说的 Non Designated Port。通过这种仿生的机制,可以有效地避免网络环路。

    STP 协议的工作原理:任意一个交换机中如果到达根网桥有两条或者两条以上的链路,生成树协议都根据算法把其中一条切断,仅保留一条,从而保证任意两个交换机之间只有一条单一的活动链路。因为这种生成的这种拓扑结构,很像是以根交换机为树干的树形结构,故为生成树协议。

    STP 的工作过程:首先进行根网桥的选举,其依据是网桥优先级(Bridge Priority)和 MAC 地址组合生成的桥 ID,桥 ID 最小的网桥将成为网络中的根桥(Root Bridge)。在此基础上,计算每个节点到根桥的距离,并由这些路径得到各冗余链路的代价,选择最小的成为通信路径(相应的端口状态变为 Forwarding),其它的就成为备份路径(相应的端口状态变为 Blocking)。STP 生成过程中的通信任务由 BPDU 完成,这种数据包又分为包含配置信息的配置 BPDU(其大小不超过 35B)和包含拓扑变化信息的通知 BPDU(其长度不超过 4B)。

    由于 STP 协议造成的逐层收敛的性能问题,一般情况下 STP 的网络规模不会超过 100 台交换机。STP 的这种机制导致了二层链路利用率不足,尤其是在网络设备具有全连接拓扑关系时,这种缺陷尤为突出。如下图所示,当采用全网 STP 二层设计时,STP 将阻塞大多数链路,使接入到汇聚间带宽降至 1/4,汇聚至核心间带宽降至 1/8。这种缺陷造成越接近树根的交换机,端口拥塞越严重,造成的带宽资源浪费就越可观。

    在这里插入图片描述

    云计算推动纵向流量向横向流量的转变

    早期数据中心的流量有 80% 为纵向(north-south,南北)流量,随着云计算、分布式架构的发展,现在已经转变为 70% 为横向(east-west,东西)流量。所谓纵向流量指的是从数据中心外部到内部服务器之间交互的流量;横向流量指的是数据中心内部服务器之间交互的流量。

    随着云计算的到来,越来越丰富的业务对数据中心的流量模型产生了巨大的冲击,如搜索、并行计算等业务,需要大量的服务器组成集群系统,协同完成工作,这导致服务器之间的流量变得非常大。比如搜索,用户只是发出一个搜索指令,服务器集群就在海量数据面前进行搜索与计算,这个过程是非常复杂的,而只是将结果传递给用户。早期数据中心主要满足外部对数据中心的访问,所以流量就以 “南北” 为主。这种流量模型受到了出口带宽的限制,一般的数据中心访问都会存在收敛比,即网络接入带宽比较大,而出口带宽比较小,访问的速度无法提升,在业务高峰期时,用户访问数据中心的体验感下降,这种网络模型已经不适应现今数据中心的发展需要。

    服务器虚拟化带来的虚拟机迁移问题

    但随着数据量的增长,数据中心运营者发现的服务器不够了,当时最早做出反应是服务器层面,服务器虚拟化趋势越来越强,“提高服务器利用率”,“充分发挥计算资源效能”,成了当时最常听到的声音。随之而来的就是服务器与网络之间的关系改变了,原来网络和操作系统紧耦合的关系被打破,变成了松耦合的关系,网络不再能直接感知到操作系统了。而这种对应关系上的变化又带来了两个层面的矛盾:

    1. 性能层面:单台物理机上的应用多了,或者说是虚拟机多了,单个网口上承载的数据流量大了,原来的链路不够了;
    2. 功能层面:物理服务器不是真正的业务所在了,真正的业务在虚拟机上,但是虚拟机要在服务器上漂移,不能够被固定在原先一个区域当中了;

    在三层网络架构中,通常会将二层网络的范围限制在网络接入层以下,避免出现大范围的二层广播域。这就导致了服务器不能随便在不同二层域之间移动,一旦服务器迁移到其他二层域,就需要变更 IP 地址,伴随着生产业务中断。在具有网络关联性的服务器集群中甚至会牵一发而动全身,相关的服务器也要跟着变更相应的配置,影响巨大。

    由于这般限制,传统数据中心的三层网络架构设计根本无法满足服务器虚拟化中更灵活的、可自定义的虚拟机迁移策略。服务器虚拟化从根本上改变了数据中心网络架构的需求,需求数据中心、甚至是跨数据中的网络可以支持大范围的二层域,二层网络规模有多大,虚拟机才能调度、迁移有多远。

    从三层网络到大二层网络架构的演进

    在这里插入图片描述
    传统的用三层架构(Three-tier Architecture)根据物理位置将服务器划分为不同 POD,每个 POD 内的服务器都属于同一个 VLAN, 因此服务器无需修改 IP 地址和网关就可以在 POD 内部任意迁移位置。POD 内走二层广播,POD 间走三层路由。

    这种架构由核心交换机、汇聚交换机和接入交换机组成。在汇聚交换机和接入交换机之间运行生成树协议(Spanning Tree Protocol,STP)以保证网络的二层部分(L2)没有环路。STP 有许多好处:简单,即插即用(plug-and-play,P&P),只需很少配置。但是,STP 无法使用并行转发路径(Parallel Forwarding Path),所以它永远会禁用 VLAN 内的冗余路径,这意味着在未发生故障时,最大链路带宽的 50% 会被 Block(阻塞)掉。

    2010 年,Cisco 提出了 vPC(Virtual Port Channel,虚拟链路聚合)技术来解决 STP 的限制。 vPC 解放了被 STP 禁用的端口,提供接入交换机到汇聚交换机之间的 Active-Active 上行链路,充分利用可用的带宽。使用 vPC 技术时,STP 会作为备用机制(Fail-safe Mechanism)。

    随着云计算的发展,使得应用的部署方式越来越分布式,导致数据中心内部横向流量(East-West-Traffic)显著提升,冗长的横向流量路径(接入→汇聚→核心→汇聚→接入)会导致高时延。这些流量需要被高效地处理,并且还要保证低的、可预测的延迟。然而,vPC 只能提供两个并行上行链路,因此三层数据中心架构中的带宽成为了瓶颈。

    在这里插入图片描述

    可见,在云计算时代,传统的三层网络架构已经无法满足云计算大规模的二层扩展需求。大二层域的概念被摆上了桌面,即整个数据中心的网络、跨多个数据中心的网络都是一个 L2 广播域。这样,数据中心的管理员可以创建一个集中式的、更加灵活的、能够按需分配的资源池,服务器/虚拟机就可以在任意地点创建,迁移,而不需要修改 IP 地址或默认网关。

    在这里插入图片描述
    然后,大二层网络最大的缺点是 BUM(Broadcase,Unknown Unicast,Multicast)会在整个数据中心传播,这就限制了网络的规模。因为网络规模大到一定程度时,BUM 风暴就会严重影响正常的网络通讯。这是数据中心网络发展过程中向网络服务提供商们提出的又一个新的课题,而服务商们交出的答卷就是 Overlay 网络。

    相关阅读:

  • 相关阅读:
    Office加载项安装
    Office加载项
    centos部署vue项目
    centos系统下安装Nginx
    MongoDB 安装笔记
    CDN基本工作过程
    前端常见跨域解决方案(全)
    JS 扁平化(flatten) 数组
    console.log 打印的值不准确
    arr.flat(Infinity)数组扁平化
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13309559.html
Copyright © 2011-2022 走看看