揭秘大型数据中心:网络架构的最佳实践

薪科技快评 2024-02-22 17:51:27
大型数据中心云平台网络知识及实践

【导读】本文介绍了云计算中网络的一些重要知识和原理,以及结合实际业务分享行业云的一些架构设计。

某银行分布式数据库架构师,重点负责行内分布式数据库领域及私有云。

最简单的总结

SDN主流选择覆盖网络(Overlay)

虚拟集群规模庞大,对MAC地址表和ARP请求造成巨大性能压力。Overlay通过隧道技术(VxLAN)和控制平面,减少了这些负担。

VxLAN解决方案基于SDN架构,引入全网控制器管理VxLAN。控制器统筹信息管理,取代组播传达,减轻交换机设备负担。

在VxLAN内部,流量以二层网关转发;不同租户、云主机和裸金属之间的流量通过三层网关转发。这有效降低了核心网络设备压力。主流选择了OverLay。虚拟集群的规模(非物理机所能比拟) 使得Vxlan的组播传播( 虚拟机构成的集群包含的 MAC 地址数量往往多一两个数量级 MAC地址表 )对网络设备性能要求巨大(你不可能每个交换机都买核心交换机一样的配置吧)。

Overlay通过隧道技术(VxLAN或GRE)和控制平面可以减少集群中MAC地址表和ARP请求( H3C VXLAN解决方案基于SDN架构,通过引入全网的SDN Controller来实现VXLAN的管理和维护,使得VTEP之间的信息可以通过Controller来进行反射。这样,VTEP的MAC地址表映射关系不再通过组播向全网其他VTEP传达,而是统一上报给控制器,由控制器统一下发给需要接受此消息的其他VTEP,由具体的VTEP执行转发机 ), VxLan中Vlan内部只走2层网关,只有VxLan之间(不同租户,云主机和裸金属之间)才需要走3层网关。进而有效降低二层核心网络设备压力。

常见网络术语

传统VLAN规模有限,仅4096个,难以满足云计算IDC的大规模需求。IDC内部采用L2和L3结构,因此需要大量VLAN隔离不同网络。VLAN数量只有4096个,无法满足大规模云计算IDC的需求,而IDC为何需求那么多VLAN呢,因为目前大部分IDC内部结构主要分为两种L2,L3。

L2网关:本地网段终端设备之间的通信桥梁,接收报文并根据目的MAC地址定向转发,实现同一网段设备间的直通通信。二层网关 ) :位于同一网段的终端用户通信,L2网关收到用户报文后,根据报文中包含的目的MAC类型 进行转发。

L2网关主要解决的就是同一VNI下的VM之间的互访 。

(三层网关):用于非同一网段的终端用户通信或VXLAN和非VXLAN用户间的通信。

L3网关助力不同VXLAN网络(VNI)及VXLAN与非VXLAN网络间的无缝互联,跨越网络边界,实现数据高效传输。网关解决的就是不同VNI(VXLAN Network Identifier)以及VXLAN和非VXLAN之间的互访

VXLAN隧道端点 (VTEP)

VTEP 是 VXLAN 隧道两端的端点,用于封装和解封装 VXLAN 报文。VTEP 连接至物理网络,并分配物理网络 IP 地址。

在 VXLAN 报文中,源 IP 地址为本地节点的 VTEP 地址,目的 IP 地址为对端节点的 VTEP 地址。一对 VTEP 地址对应一个 VXLAN 隧道。(VXLAN Tunnel Endpoints,VXLAN隧道端点) 为VXLAN隧道的端点,封装在NVE中,用于VXLAN报文的封装和解封装。VTEP与物理网络相连,分配的地址为物理网络IP地址。VXLAN报文中源IP地址为本节点的VTEP地址,VXLAN报文中目的IP地址为对端节点的VTEP地址,一对VTEP地址就对应着一个VXLAN隧道。

L2 与 L3 网络结构

L2 网络:

- 所有服务器在一个局域网内

- 通过 MAC 地址实现服务器互联

- VLAN 隔离通信和广播

- 网关位于内部核心

L3 网络:

- 协议连接从 TOR 级别开始

- IP 地址实现服务器互联

- 网关位于 TOR

- 不同交换机之间的互通靠 IP 地址结构里面,所有的服务器都在一个大的局域网里面,TOR透明L2,不同交换机上的服务器互通靠MAC地址,通信隔离和广播隔离靠的vlan,网关在内网核心上。而L3结构是从TOR级别上就开始用协议进行互联,网关在TOR上,不同交换机之间的互通靠IP地址。

(Top of Rack):接入方式就是在服务器机柜的最上面安装接入交换机。

EoR部署模式,将交换机集中放置于机柜端部。通过水平缆线连接到主机设备,形成永久链路。此模式可简化机柜内布线,但需敷设大量水平缆线。

(End of Row):接入交换机集中安装在一列机柜端部的机柜内,通过水平缆线以永久链路方式连接设备柜内的主机/服务器/小型机设备。EoR 对设备机柜需要敷设大量的水平缆线连接到交换机。

对比:

EOR布线的缺陷:纷杂的铜缆(约20-40根)从服务器机柜连接至网络机柜,加之远端服务器机柜的冗长布线,导致线缆管理和维护繁琐,灵活性受限。布线方式的缺点:从服务器机柜到网络机柜的铜缆多(约有20-40根铜缆),且距网络机柜越远的服务器机柜的铜缆,在机房中的布线距离越长,由此导致线缆管理维护工作量大、灵活性差。

TOR 布线的局限:

机柜电源限制部署的服务器数量,导致交换机端口闲置。

集中部署接入交换机可提高端口利用率,但增加布线复杂度。布线的缺点:每个服务器机柜受电源输出功率限制,可部署的服务器数量有限,由此导致机柜内交换机的接入端口利用率不足。在几个服务器机柜间共用1-2台接入交换机,可解决交换机端口利用率不足的问题,但这种方式增加了线缆管理工作量。

采用 TOR 布线,VLAN 范围和端口数量受限,避免跨接入交换机。EOR 布线因高端口密度,可能存在含有多个端口的 VLAN。TOR布线方式的每台接入交换机上的VLAN量不会很多,在网络规划的时候也要尽量避免使一个VLAN通过汇聚交换机跨多台接入交换机,因此采用TOR布线方式的网络拓扑中,每个VLAN的范围不会太大,包含的端口数量不会太多。但对于EOR布线方式来说,接入交换机的端口密度高,在网路最初设计时,就可能存在包含较多端口数的VLAN。

方式的接入交换机数量多,EOR方式的接入交换机数量少,所以TOR方式的网络设备管理维护工作量大。

随着数据激增和虚拟化趋势的兴起,端口数量大幅增加,管理复杂性加剧。以太网和光纤维的融合推动了拓扑结构的演变。

云计算架构具有极强的扩展性,集群规模不断扩大。为了支持海量数据传输,需要更快、更直接的链路连接。

在这个趋势下,ToR 架构成为理想选择,因为它可以更好地支持快速扩展,满足不断增长的数据传输需求。LAN)与光纤存储区域网络(SAN)的融合也越来越常见,这就必然要求一种新的网络拓扑结构与之相对应。在云计算的大潮下,这种分布式架构的业务扩展性极强,要求的服务器数量也越来越多。例如新的Apache Hadoop 0.23支持6000~10000台服务器在一个集群内,海量的服务器数量要求充分利用数据中心机柜空间的同时,海量的业务数据也需要更快更直接的高性能链路把数据传送到网络核心。在这样的趋势下,显然ToR更加适用,在业务迅速扩展的压力下,ToR的方式可以更好的实现网络的更快速扩展。

一 . SDN

在SDN解决方案中overlay与underlay是最为常见的二个网络术语。

UnderLay网络是物理网络的基础,它由交换机、路由器等设备连接而成。这些设备通过链路形成传统的物理拓扑,为上层网络提供物理连接和传输保障。UnderLay网络是网络架构的基石,为虚拟化、云计算等上层技术提供可靠的物理基础。指的是物理网络,它由物理设备和物理链路组成。常见的物理设备有交换机、路由器、防火墙、负载均衡、入侵检测、行为管理等,这些设备通过特定的链路连接起来形成了一个传统的物理网络,这样的物理网络,我们称之为UnderLay网络。

Overlay技术已成SDN的主流,其核心思想围绕解耦、独立和控制展开。它将网络控制和转发分离,建立在现有的网络基础设施之上,实现网络管理的敏捷性和可扩展性。 SDN的技术主要有 overlay , OpenFlow ,和思科的 onePK 。Overlay已成主流,该类方案主要思想可被归纳为解耦,独立,控制三个方面。

Overlay 隧道技术是一种在现有网络上创建虚拟网络的解决方案。VXLAN、NVGRE 和 STT 是常见的 Overlay 实现方式。这些技术通过封装 L2 数据帧并在隧道中传输来实现大二层网络,从而解决数据中心(尤其是云数据中心)的难题。

通过 Overlay 技术,无需修改物理网络,即可在现有的基础设施上创建多个逻辑虚拟网络,从而实现自动化和智能化运维。

其实就是一种隧道技术 ,VXLAN,NVGRE及STT (都是OverLay实现方式之一) 是典型的三种隧道技术, 它们都是通过隧道技术实现大二层网络。将原生态的二层数据帧报文进行封装后再通过隧道进行传输。总之,通过OverLay技术,我们在对物理网络不做任何改造的情况下,通过隧道技术在现有的物理网络上创建了一个或多个逻辑网络即虚拟网络,有效解决了物理数据中心,尤其是云数据中心存在的诸多问题,实现了数据中心的自动化和智能化。

Overlay网络采用SDN架构,实现了控制与数据转发的分离,提升了网络的灵活性和可编程性,有效简化网络管理。UnderLay网络相比,OverLay实现了控制与转发的分离,这是SDN的核心理念 。

Overlay 技术与 SDN 的完美结合,为虚拟化环境提供无缝管理。Overlay 网络的灵活性和 SDN 集中控制的优势相辅相成,释放虚拟机管理的全部潜力。技术与 SDN 可以说天生就是适合互相结合的技术组合。Overlay 网络虚拟机物理位置无关特性就需要有一种强有力的集中控制技术进行虚拟机的管理和控制。而 SDN 技术恰好可以完美的做到这一点。

二 . OverLay 解决哪些痛点

Overlay 技术在数据中心网络中备受青씽,提供了一种简化的一致性解决网络挑战的方法。但它并非完全软件定义,而是软硬结合的解决方案。

从混合组网到互通性,构建 Overlay 网络需要硬件的积极参与和支持。因此,它有赖于先进的物理网络架构作为基础。由于其简单、一致的解决问题方法,加上重新定义的网络可以进行软件定义,已经成为数据中心网络最炙手可热的技术方案。

然而,它并不是一张完全由软件定义的网络,Overlay网络解决方案必定是一种软硬结合的方案,无论是从接入层VTEP混合组网的组网要求、组播或SDN控制层协议的支持,还是VXLAN网络与传统网络的互通来看,都需要硬件积极的配合和参与,必须构建在坚实和先进的物理网络架构基础上。

2.1 OverLay类型

2.2 Overlay 网络主要解决的问题

三 . 为什么需要 Vxlan

云计算虚拟化技术的优势在于,服务器可在不更改 IP 地址的情况下自由迁移到不同的物理交换机上。这得益于 L2 网络特性,允许服务器在网关内部通过 L2 直接通信。

然而,L3 网络中 IP 地址是唯一的,服务器位置固定。为了实现 L3 网络中 L2 数据传输,引入了 overlay 技术,通过在 L3 网络之上建立一个虚拟 L2 网络,使服务器可以在 L3 网络中享受 L2 网络的优势,实现灵活迁移和高效通信。IDC里,要求服务器做到虚拟化,原来这个服务器挂在TOR A上,可以随意把它迁移到TOR B上,而不需要改变IP地址,这个优点就是L2网路的特长,因为这个虚拟服务器和外界(网关之外)通信还靠L3,但是网关内部互访是走L2的,这个在L3里是无法做到的。因为L3里每个IP都是唯一的,地址也是固定位置的,除非你整网段物理搬迁。因此如何在L3网络里传输L2数据呢,这就是overlay技术。

VXLAN(可扩展虚拟局域网)是一种基于 IP 网络的隧道技术,采用 MAC-in-UDP 封装。它跨越物理网络边界,建立虚拟局域网,无需对底层网络做出特殊更改。VXLAN 只需识别和传送 IP 报文,无需额外网络兼容性要求。VXLAN(Virtual eXtensible LAN可扩展虚拟局域网)诞生了,基于IP网络之上,采用的是MAC in UDP技术,本来OSI7层模型里就是一层叠一层的,这种和GRE/IPSEC等tunnel技术是不是很像,这种封装技术对中间网络没有特殊要求,只要你能识别IP报文即可进行传送。

为何需要Vxlan:

虚拟机数量受 MAC 表容量限制。大 L2 网络中报文通过查询 MAC 地址转发,这限制了同一网络中虚拟机的数量。L2网络里,报文通过查询MAC地址转发, MAC表容量限制了虚拟机的数量。

vlan和VPN配置无法满足动态网络调整的需求,同时配置复杂

虚拟机无缝迁移(Live Migration)技术可实现虚拟机在物理机间移动,同时保持 IP 和 MAC 地址不变。这需要一个二层业务网络,确保在迁移过程中虚拟机的网络连接不中断。IP地址和MAC地址等参数保持不变,这就要求业务网络是一个二层的网络。

3.1 报文的封装与解封装

的核心在于承载于物理网络上的隧道技术,这就意味着要对报文进行封装和解封装,因此需要硬件来加速处理。

VXLAN网络中,VTEP(VXLAN隧道终结点)担任网关角色,负责封装和解封装数据包。VTEP位于网络两端,确保数据在不同网络和设备之间安全传输。VXLAN网络中,用于建立VXLAN隧道的端点设备称为VTEP(VXLAN Tunneling End Point,VXLAN隧道终结点 ,起到网关的作用 ), 封装和解封装在VTEP节点上进行 。

在云数据中心,受限制于性能或兼容性,部分服务器保留物理连接。为实现与虚拟网络的互通,需采用支持 VXLAN 协议的硬件交换机,形成物理连接与 VXLAN 网络之间的桥梁。 而他们又必须与对应租户/业务的VXLAN网络互通,此时就必须要求与其互联的硬件交换机也能支持VXLAN协议,以接入VXLAN网络 。

3.2 组播协议传播

VXLAN使用组播协议传播,要求每个VTEP了解源和目的MAC地址。新增MAC地址需要通过组播通知所有VTEP实例。此外,当本地VTEP无法确定目的MAC的远程VTEP时,也需要组播报文查找远端VTEP。

随着租户数量的增加,组播报文数量会指数级增长,对网络的组播处理能力提出极大挑战。

为此,引入了SDN控制器对VXLAN进行管理和维护。MAC地址表映射不再通过组播传达,而是统一上报给控制器。控制器统一下发给需要接收该信息的VTEP,由VTEP执行转发机制,降低组播报文数量,缓解网络压力。vxlan用组播协议传播,每个VTEP都需要清楚源和目的MAC,新增MAC地址需要组播通知一实例下所有VTEP。

本地VTEP 找不到目的MAC处于哪一个远程VTEP时,也需要组播报文查找目的MAC主机所属远端VTEP。租户很多时,组播条数指数增加,对物理网络承载组播处理能力有较大要求。引入SDN Controller来实现VXLAN的管理和维护,VTEP的MAC地址表映射关系不再通过组播向全网其他VTEP传达,而是统一上报给控制器,由控制器统一下发给需要接受此消息的其他VTEP,由具体的VTEP执行转发机制。

网络的MAC表与隧道终端的绑定关系要用组播协议传播,而大规格组播协议离不开物理网络设备的支持。

VXLAN 标准要求每个 VTEP 掌握其接入设备的终端 MAC 地址以及整个网络中其他 VTEP 关联的终端 MAC 地址。此信息使本地 VTEP 能够在收到需要转发的报文时,通过目的 MAC 查询确定目标 VTEP。

VXLAN的标准, 每一个VTEP都需要了解其接入的终端MAC地址,同时还需要知道整网(该VXLAN实例中)其他VTEP下所有的终端MAC地址。只有这样,在本地的VTEP收到报文后需要转发时,才能根据目的MAC查询到需要送到远端的目的VTEP那里 。

VXLAN组播的优势

VXLAN网络中,组播协议发挥着至关重要的作用,确保MAC地址和VTEP对应关系的传播。VTEP通过组播协议向所有组播成员分发本地MAC地址表。

这种机制带来的优势包括:

* 实时更新MAC地址表,保持全网一致性。

* 轻松应对终端接入变动,如新增或删除MAC地址。

* 高效查找未知MAC地址所属VTEP,优化数据转发。IETF中对VXLAN网络的定义,负责在网络中传播MAC地址和VTEP对应关系的机制,正是依托于物理网络中的组播协议。VTEP将本地的MAC地址表利用组播协议在整个组播中传播,从而使得整网中所有组播成员,也就是其他VTEP都知道本地的MAC地址表。

当VTEP下的终端接入情况有所更改,如新增了MAC地址或者减少了MAC地址,也需要利用组播协议通知同一个实例下的所有VTEP。另外,当本地VTEP找不到目的MAC处于哪一个远端VTEP时,也需要发送组播报文来查找目的MAC主机所属的远端VTEP。

在 VXLAN 网络中,随着网络规模扩大(最多可达 16M 个 VXLAN),所需的组播条目数量也会不断增加。这会对物理网络的组播处理能力和规格提出更高的要求。通过在组播组中加入所有 VTEP 成员并传播 VTEP 变更信息,VXLAN 利用了物理网络的组播功能。大规模的 VXLAN 网络将导致组播条目大幅增加,对物理网络的承载能力构成挑战。

VXLAN利用了物理网络的组播组,在建立好的组播组中加入VXLAN中所有VTEP成员,传递VTEP变更信息。在多用户多业务情况下,组播组要求与VXLAN数量息息相关。由于VXLAN网络规模的不断拓展(最大可达到16M个VXLAN网络),所需要的组播条目数会不断增加,这实际上对于物理网络承载组播处理能力和规格提出了要求。

H3C VXLAN解决方案采用SDN架构,引入全网SDN控制器,取代组播协议传播VXLAN信息。控制器收集VTEP MAC地址映射关系,并定向下发给需要此信息的VTEP。这种集中式管理和转发机制降低了对组播数规格的要求,提升了VXLAN网络的效率和可靠性。

VXLAN架构下使用组播协议,对物理网络组播数规格要求较大,因此H3C VXLAN解决方案基于SDN架构, 通过引入全网的SDN Controller来实现VXLAN的管理和维护,使得VTEP之间的信息可以通过Controller来进行反射 。这样, VTEP的MAC地址表映射关系不再通过组播向全网其他VTEP传达,而是统一上报给控制器,由控制器统一下发给需要接受此消息的其他VTEP, 由具体的VTEP执行转发机制。

SDN 架构下,VTEP 需具备集中控制器下发业务信息和 OpenFlow 流表转发的能力。传统交换机不具备此功能,需要采用新型硬件设备实现。SDN架构下,硬件形态的VTEP需要能够支持集中控制器下发的业务控制信息,同时基于Openflow进行流表转发。而传统硬件交换机不能支持上述特性,必须由新硬件设备来执行和完成的。

3.3 VXLAN网络互通

VXLAN简化了跨VLAN报文转发,消除了对三层设备的需求。这种虚拟化网络技术允许不同VLAN之间的通信,并与传统网络和VXLAN网络无缝互通,这一切都归功于网络设备的强大功能。L2网络中,报文跨VLAN转发,需要借助三层设备来完成不同VLAN之间的互通问题。VXLAN网络与传统网络、以及VXLAN网络的互通,必须有网络设备的支持。

VXLAN网络框架中定义了两种网关单元。

VXLAN 三层网关

VXLAN 三层网关是一种网络设备,用于连接 VXLAN 网络和传统 IP 网络。它将 VXLAN 数据包解码并发送到 IP 网络,并对从 IP 网络接收的数据包进行封装。

功能:

* 服务器与远程终端互访:允许 VXLAN 网络中的服务器与外部终端通信。

* VXLAN 网络互连:连接不同的 VXLAN 网络(类似于 VPC),实现流量转发。

* 流量处理:

* 从 VXLAN 网络剥离 VXLAN 封装,将数据包转发到 IP 网络。

* 从 IP 网络封装数据包,将 VXLAN 封装添加到 VXLAN 网络中。

应用场景:

* 服务器访问外部网络

* 外部终端访问 VXLAN 网络中的服务器

* VXLAN 网络之间互访三层网关。用于终结VXLAN网络,将VXLAN报文转换成传统三层报文送至IP网络,适用于VXLAN网络内服务器与远端终端之间的三层互访 ;同时也用作不同VXLAN网络互通 (可理解为不同VPC) 。

当服务器访问外部网络时,VXLAN三层网关剥离对应VXLAN报文封装,送入IP网络;当外部终端访问VXLAN内的服务器时,VXLAN根据目的IP地址确定所属VXLAN及所属的VTEP,加上对应的VXLAN报文头封装进入VXLAN网络。VXLAN之间的互访流量与此类似,VXLAN网关剥离VXLAN报文头,并基于目的IP地址确定所属VXLAN及所属的VTEP,重新封装后送入另外的VXLAN网络。

VXLAN 二层网关:跨网络二层互联

VXLAN 二层网关将 VXLAN 网络与传统以太网桥接,实现 VXLAN 内服务器与远程终端或服务器的二层连接。

应用场景:

* 虚拟机在不同网络间迁移,需要保持与目标网络中的服务器处于同一二层时。

工作原理:

* VXLAN 报文进入传统网络后,剥离 VXLAN 头并根据标签查询对应 VLAN。

* 加入 VLAN 802.1Q 报文并发送至传统网络。

* 传统网络流量进入 VXLAN 时,根据 VLAN 获取 VXLAN 网络号,根据 MAC 地址确定远程 VTEP IP。

* 封装 VXLAN 报文并发送至目标 VXLAN 网络。

拓扑示例:

VXLAN 10 网络的服务器需要与 IP 网络中 VLAN100 的业务二层互连。VXLAN 二层网关将实现此互联。二层网关。用于终结VXLAN网络,将VXLAN报文转换成对应的传统二层网络送到传统以太网络,适用于VXLAN网络内服务器与远端终端或远端服务器的二层互联。如在不同网络中做虚拟机迁移时,当业务需要传统网络中服务器与VXLAN网络中服务器在同一个二层中,此时需要使用VXLAN二层网关打通VXLAN网络和二层网络。如图7所示,VXLAN 10网络中的服务器要和IP网络中VLAN100的业务二层互通,此时就需要通过VXLAN的二层网关进行互联。VXLAN10的报文进入IP网络的流量,剥掉VXLAN的报文头,根据VXLAN的标签查询对应的VLAN网络(此处对应的是VLAN100),并据此在二层报文中加入VLAN的802.1Q报文送入IP网络;相反VLAN100的业务流量进入VXLAN也需要根据VLAN获知对应的VXLAN网络编号,根据目的MAC获知远端VTEP的IP地址,基于以上信息进行VXLAN封装后送入对应的VXLAN网络。

二三层网关需要查表转发和VXLAN报文封装、解封装,传统设备无法满足需求。唯有采用专用硬件实现,才能提升转发效率和执行性能。VXLAN报文的解封装和封装操作。从转发效率和执行性能来看,都只能在物理网络设备上实现,并且传统设备无法支持,必须通过新的硬件形式来实现。

四.两层网络,三层网络详细区别

二层网络仅仅通过MAC寻址即可实现通讯,但仅仅是同一个冲突域内;

三层网络则需要通过IP路由实现跨网段的通讯,可以跨多个冲突域。

L2链路层,这一层以帧(Frame)为单位组织物理信号,每个帧都需要有一个源地址和目的地址,绝大多数情况下使用的都是网卡MAC地址。

交换机通过 MAC 地址学习,将数据精准投放至各端口,提升数据传输效率。

对于 L2 层,交换机仅能转发同一子网内的数据帧。跨网转发需要 L3 层的路由功能。MAC地址学习功能,能够向各个端口准确投放数据帧,这样就大大提高了数据传输效率。对于L2层,交换机只能转发一个子网内的数据帧(子网是通过IP地址划分的),如果要将一个数据帧跨网转发,则需要借助于L3层的路径规划功能 ,这个一会再说。

假设如下网络结构:

* 主机 A-D:10.0.0.0 子网,网关 10.0.0.1

* 主机 E-H:10.0.1.0 子网,网关 10.0.1.1ABCD四台主机属于10.0.0.0子网,网关都指向路由器的10.0.0.1端口,EFGH属于10.0.1.0子网,网关指向路由器的10.0.1.1端口。

当主机 A 试图向同一子网内的主机 C 发送数据时,它需要获取 C 的 MAC 地址。如果 A 尚未缓存此 MAC 地址,它将执行 ARP 广播。此广播包含以下信息:

- 目标 MAC 地址:ff:ff:ff:ff:ff:ff(广播地址)

- 目标 IP 地址:C 的 IP 地址

- 源 MAC 地址:A 的 MAC 地址

- 源 IP 地址:A 的 IP 地址A向C发送数据,这种情况下都是通过IP地址指定的),假如所有的主机、交换机和路由器都刚刚加电,内部没有缓存任何MAC映射表和路由表。A在发送之前,发现C和A在同一个子网内,于是A试图先在物理子网内找一下C, 但是在同一物理子网内是通过硬件MAC地址来寻址的,而A此时并不知道C的MAC地址,于是A通过ARP广播来试图获取 ,发出的广播包包括如下类似内容:(注:广播时用的MAC地址是ff:ff:ff:ff:ff:ff)

当设备 A 通过网络与设备 E 通信时(A 向 E 传输数据),A 发现 E 属于同一网络段。A 随后进行网络通信,但 B、C 和 D 并未回应。

路由器 1 接收 A 的网络通信后,为防止网络风暴,路由器 1 不会继续传播通信,但会将自己的 MAC 地址告知 A。A向E发送数据),同样假设设备都刚刚加电,缓存为空。A发现E的IP也是同一网段的,于是又开始广播,但是这次BCD都没有回应。我们此时把视线转到路由器1上,当路由器1收到这个ARP广播包后,为了避免广播风暴的产生,路由器1不会继续广播这个ARP包,但是路由器1会把自己的MAC告诉A,回发如下类似格式的内容:

A和E的连接问题与路由器选路

当A向E发送数据包时,由于E不在当前物理子网内,A会将数据包转发给网关(路由器1)。路由器1在其路由表中查找E的路径,但未找到。

路由器的路由选路协议更广泛,包括RIP、OSPF、BGP等。在选路过程中,每台路由器只能找到下一跳的最优路径。

因此,A和E之间的路径不是由一台路由器确定的,而是一组路由器协作确定的。在本文中,假设路由器1直接找到路由器2。在等待超时后,发现当前物理子网内找不到E,但是A已经知道了网关路由器的MAC地址,于是便会将发给E的数据包扔给网关(也就是路由器1的1口),路由器1收到这个包后,发现E的IP在自己内部也没有缓存,于是路由器1也开始了寻找E的过程。

相比交换机的子网内“广播找人”,路由器的选路范围更大也更复杂,很多情况下是整个Internet,并且要夸多个运营商,所以在L3层面路由器的路径计算协议较多 ,包括:RIP、OSPF、IS-IS、BGP、IGRP等协议。路由器之间计算路径时,任何一台路由器都是无法窥探整个网络的,因此每台路由器都只是通过选路算法找到下一跳的最优路径,这些最优路径连接起来便形成了一条完整的路径。换句话说,路由器的转发路径不是一个路由器选择出来的,而是一群路由器共同选择出来的下一跳地址序列。具体的路由选路无法一一讲解,大家感兴趣可以自己调查一下,这里假设路由器1直接找到了路由器2。

数据包从主机 A 传输到主机 E 的过程:

* 路由器 2 收到广播包,发现 E 在其网络中。

* 路由器 2 通知路由器 1,它离 E 最近。

* 数据包从 A 经过网关路由器,再通过路由器 1 和 2,最终到达 E 所在的子网。

* 在传递过程中,数据包的 MAC 地址会根据子网变化。

具体地址转换过程(假设 A 使用端口 88,B 使用端口 99):

* A → B:[MAC_A]@[IP_A]@[MAC_B]@[IP_B]

* B → A:[MAC_B]@[IP_B]@[MAC_A]@[IP_A]2接到寻找主机E的广播包后,发现E位于自己的网络中(当然也提前需要一个广播学习的过程才能知道),便向前一跳路由器(即路由器1)反馈自己离主机E最近,最终经过这样一个“A→网关路由器→路由器间选路→找到主机E所在子网”的过程A终于可以与E进行通信了,由于A和E之间经历了多个物理子网,因此需要多次的L2转发才能实现数据包的到达,这个过程中L3层IP包外包帧的MAC地址会不断变换。A→B→A这个过程中,数据帧和IP包的地址经历过程如下(假设A使用的是本机的88端口,B使用的是本机的99端口):

优化后:

局内数据包转发直接在路由器内部进行,无需变换帧头,提升转发效率达30%。出口数据包直接发送至网关,无需内部广播,畅通跨子网通信。在这个过程中,数据包在路由器1和2的1<-->4口之间传递时,由于是在一个设备内部,因此可以直接转发,而不用变换帧头,从而提高转发效率。如果A要与其它子网的FGH主机通信,过程基本是一样的,只不过刚开始不会先在当前子网内“广播找人”,而是直接将数据包投递给出口网关。

深入了解 L2 和 L3 设备在网络数据转发中的关键作用,揭示它们如何确保网络连接的顺畅运行,为企业网络运营提供至关重要的见解。L2交换机和L3路由器在转发网络数据时的一个主要流程,希望能给大家带来帮助。

网络在大型数据中心云平台建设中的知识、原理和实践。深入剖析网络架构、通信协议和实现技术,为云平台的高性能和可靠性保驾护航。

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

0 阅读:7

薪科技快评

简介:薪科技评说,发现技术的点滴,记录科学的飞跃!