项目拓扑


实施思路

VRRP+MSTP的架构

有成环的出现,所以需要STP,有两台核心,所以需要VRRP,有出口路由器,所以需要NAT跟ACL。这个图虽然不是很大,但是这个结构基本是企业通用的结构。

生成树是二层技术,链路聚合也是二层技术(当然也有三层的)

    在数据中心或企业网核心层,为了避免二层环路(STP阻塞链路浪费带宽),通常会将两台核心交换机之间、或者核心与汇聚之间运行三层路由(如OSPF)。此时,为了增加这两台设备间的带宽,你就会创建一个三层Eth-Trunk,在上面配置IP地址,并宣告进路由协议。


项目需求


实验一

什么时候用DHCP中继

当DHCP客户端和DHCP服务器位于不同的广播域(即不同的子网/VLAN),且你不能或不想在每一个广播域都部署一台DHCP服务器时,就必须使用DHCP中继。

网络设备对线表

接入层交换机

华为企业产品支持网站

华为企业业务产品技术文档 - 华为

配置DHCP中继

但是现在都获取不到IP地址

客户端想要从DHCP服务器获取地址,需要发送一个discover报文,这个报文的源IP是:0.0.0.0,目的IP是:255.255.255.255,这个报文只会在同一个广播域中传播,

SW4没有去往50.1的路由

直连路由产生的前提:
当路由器的接口有合法的IP地址,当这个接口的Physical和Protocol状态都是UP的,就可以通过链路层发信息自动生成直连路由。

给SW5的vlanif 50 配置上地址,就产生了直连路由了

DHCP服务器上也需要配置上接口ip

现在SW5上Ping 50.1能通

中继发的Discover报文是单播

但是现在依然拿不到IP地址

现在在DHCP服务器上查看,是否分配了IP地址

display ip pool name vlan10 used

这已经分配了IP地址

DHCP服务器收到的discover报文是中继给它发的

DHCP都没有去往192.168.10.251的路由(只有192.168.50.0/24的直连路由),都没法回包

写静态路由

SW5给DHCP服务器(路由器)发报文是不需要写静态路由的,

DHCP服务器去客户端的每个网段都要写一个静态路由,但是为了方便可以写一条默认路由。

所以为什么DHCP获取不到IP地址

1、SW5没有给vlanif50配置IP地址,所以中继到服务器之间没有路由,数据包(discover报文)发不过去

2、DHCP服务器上没有写去客户端网段的回程路由,数据包也回不过来。

如果你把SW5的G0/0/5口(连接DHCP服务器)改成trunk,那么SW5跟DHCP服务器网都不会通。

但是如果把trunk口的pvid修改也是可以通的。

理论上,无论怎么样设计接口的类型,都能让数据进行通信的。

做trunk需要三条命令,做access只需要两条命令即可。


实现vlan间通信的两种方式:单播路由和三层交换

本质区别在于:路由转发这件事,是在“外部软件”做的,还是在“内部硬件”做的。

  • 单臂路由:代表的是控制与转发分离的早期架构。路由决策在路由器CPU(软件)里做,转发依赖共享的物理链路。

  • 三层交换:代表的是控制与转发集成的现代架构。路由决策和高速转发都在交换机内部的专用硬件(ASIC)里完成。

至于为什么会有这两种方式,这完全是由成本、性能需求和技术演进驱动的。


一、为什么会有单臂路由?(历史起源)

想象一下90年代到21世纪初的网络环境。

  1. 设备分工明确,价格昂贵:

    • 交换机很便宜,但功能单一,只会看MAC地址转发(二层)。

    • 路由器很贵,功能强大,但接口少,转发靠CPU算,速度慢。
      那时候,企业买不起几台路由器,但可能需要划分VLAN来隔离广播域。

  2. 物理限制催生逻辑创新:
    如果我有10个VLAN,难道要买10台路由器,每个VLAN接一个口吗?这成本太高了。
    于是,聪明的工程师想出了一个办法:在一根网线上传输多个VLAN的流量(Trunk),然后在路由器的一个物理口上创建多个“逻辑口”(子接口)来分别处理这些VLAN。
    这样一来,就用一台路由器、一根线,解决了所有VLAN的互通问题。

所以,单臂路由诞生的核心原因:在硬件性能不足、成本高昂的年代,用“逻辑切片”的方式,低成本地解决了VLAN间路由的刚需。 它是一种非常巧妙的“权宜之计”。


二、为什么会出现三层交换?(技术演进)

随着网络规模扩大,单臂路由的缺点越来越致命。

  1. 性能瓶颈无法忍受:

    • 带宽瓶颈: 所有VLAN的流量都要挤那一根线。100Mbps的网络,10个VLAN抢这100Mbps。

    • 处理瓶颈: 路由器CPU要处理每一个数据包的“拆标签-查路由-贴标签”过程。当网络流量变大时,路由器CPU直接爆满,大量丢包。

  2. 新的硬件技术成熟:
    这时,硬件工程师发明了一种叫 ASIC(专用集成电路) 的芯片。这种芯片是“硬连线”的,处理转发比CPU快几个数量级。
    既然交换机本身就有高速的ASIC芯片做二层转发,那为什么不让这个芯片也能处理三层路由呢?

  3. 集成带来质变:
    于是,厂商把路由器的路由功能,移植到了交换机的ASIC芯片里。这种新设备就是三层交换机

    • 第一次转发: 第一个数据包,CPU参与一下,查路由,然后把怎么转发的指令告诉ASIC芯片。

    • 后续转发: ASIC芯片记住了这条“捷径”(硬件转发表)。后面的海量数据包,直接在芯片内部就完成了“终结VLAN -> 查表 -> 重新封装”的全部过程,再也不需要去打扰CPU,也完全不用出交换机

所以,三层交换诞生的核心原因:为了突破单臂路由的性能瓶颈,利用硬件ASIC技术,将路由转发做到了“线速”,实现了数据的内部高速流转。


三、本质区别的深度剖析(用最直白的比喻)

我们把网络比作一个大型工厂,里面有很多车间(VLAN),车间之间需要运送货物(数据包)。

1. 单臂路由:只有一个大门的工厂 + 外部物流中心

  • 工厂布局: 工厂里只有传送带(二层交换机),没有内部物流调度。每个车间生产的东西要运到其他车间,必须通过唯一的工厂大门(Trunk链路)送出去。

  • 物流中心: 门外有一个第三方物流中心(路由器)。物流中心有个老调度员(CPU),门口有个签到处(子接口)。

  • 工作流程:

    1. A车间(VLAN 10)的货物送到大门,门卫贴上“来自A车间”的标签(VLAN Tag),交给物流中心。

    2. 物流中心的签到处 .10看到“来自A车间”的标签,撕掉标签,把货物交给里面的调度员。

    3. 调度员(CPU)翻看厚厚的本子(路由表),说:“这货要去B车间(VLAN 20),应该从B车间的专属窗口 .20 发出去。”

    4. 调度员把货交给签到处 .20, .20 窗口给货物贴上“发往B车间”的新标签,再从大门送回工厂。

    5. 工厂里的传送带看到标签,把货送到B车间。

  • 痛点: 所有货物进出都要经过那一个大门(带宽瓶颈),调度员只有一个,还靠翻本子(CPU瓶颈)。工厂越大,这里越堵。

2. 三层交换:自带内部立交桥的智能工厂

  • 工厂布局: 工厂升级了,内部建起了高速立交桥和自动分拣系统(ASIC芯片和背板)。每个车间门口都有一个智能中转站(VLANIF接口)。

  • 工作流程:

    1. A车间(VLAN 10)的货物需要运往B车间(VLAN 20)。货物送到车间门口的智能中转站(VLANIF 10)

    2. 中转站(VLANIF 10) 瞬间识别货物信息,立刻通过内部的高速立交桥(ASIC芯片),直接把货物送到了B车间门口的中转站(VLANIF 20)

    3. 中转站(VLANIF 20)把货交给B车间。

  • 本质: 货物(数据)从A车间到B车间,全程在工厂内部的高速通道上流转,根本没出厂门,也没经过那个慢吞吞的调度员(CPU)


四、最终总结

维度 单臂路由 (外部物流中心) 三层交换 (内部立交桥)
本质区别 转发依赖外部共享链路和软件CPU 转发依赖内部专用硬件和背板
诞生原因 降低成本,用一台路由器和一根线解决所有VLAN的互通问题。 解决性能瓶颈,利用ASIC硬件实现高速、无阻塞的内部转发。
数据路径 数据必须出交换机 -> 进路由器 -> 再回交换机(走两次物理链路)。 数据在交换机内部直接从源端口到目的端口(走一次背板)。
性能 低,受限于物理链路带宽和路由器CPU处理能力。 极高,线速转发,与端口数量无关。
适用场景 小型网络、实验学习、对性能要求不高的场合。 大中型园区网、数据中心、对性能要求高的所有场合。

实验二

也要将vlan 50加入到instnce中

1. 前提知识:MSTP 中的 Instance 0

在 MSTP 中,有一个默认存在的实例 0(IST,Internal Spanning Tree)

  • 规则: 如果你没有手动将 VLAN 映射到其他实例,那么所有 VLAN 默认都属于实例 0

  • 场景设定:

    • 你的客户端 VLAN 10、20、30:被你手动映射到了 实例 1

    • 你的 DHCP 服务器 VLAN 50:由于你没有配置它加入任何实例,它默认留在了 实例 0

2. 发生了什么?—— 两个独立的树

现在,交换机开始运行生成树计算,它会生成两张完全不同的“无环地图”:

  • 地图 A(实例 1): 这是为客户端 VLAN(10,20,30)生成的。生成树算法会根据优先级、桥ID等,为这个实例选出一个根桥,并阻塞某些端口,形成一个专属于实例 1 的逻辑树状拓扑。

  • 地图 B(实例 0): 这是为 DHCP 的 VLAN 50 生成的。生成树算法重新计算,可能会选出另一个完全不同的根桥,并在完全不同的位置阻塞端口,形成另一棵拓扑树。

关键点: 这两棵树(拓扑结构)可能长得完全不一样!

这样vlan 50如果不加入instance,可能会形成次优路径。

逐包负载分担跟逐流负载分担

这是一个在网络链路聚合(Eth-Trunk)中非常经典的问题,直接关系到实际业务的质量。我们来详细拆解这两种负载分担方式的原理,并解释为什么实际应用中普遍推荐使用“逐流”方式。

一、什么是“逐包负载分担”?

逐包负载分担,顾名思义,是以数据包(Packet)为单位,将流量分摊到聚合组的不同成员链路上。

  • 工作机制: 当交换机或路由器通过Eth-Trunk发送数据时,它会将连续的IP数据包依次轮流发送到不同的物理链路上。比如第一个包走链路1,第二个包走链路2,第三个包走链路3,如此循环。

  • 优点: 在理想情况下,它能实现非常均衡的带宽利用率,因为每个包都被均匀分配。

  • 致命缺点: 可能导致数据包乱序(Out-of-Order)

为什么逐包会导致乱序?
在复杂的网络中,不同物理链路的传输延迟可能存在微小差异。即使延迟相同,数据包到达对端设备的顺序也可能因为中间节点的处理速度不同而被打乱。对于TCP协议来说,乱序是一个很严重的问题。TCP依赖数据包的顺序来确认和重组,如果乱序严重,接收端会认为丢包,从而触发快速重传,大大降低传输效率。对于实时性业务(如语音、视频),乱序会导致卡顿和丢包。


二、什么是“逐流负载分担”?

逐流负载分担,是以数据流(Flow)为单位,将属于同一个数据流的所有报文,都通过同一条成员链路转发。

  • 工作机制: 设备会提取数据包的某些特征字段(通常是二层的MAC地址、三层的IP地址、四层的端口号等),通过一个哈希(Hash)算法计算出一个数值,然后根据这个数值决定将整个流固定在某一特定成员链路上。

  • 一个“流”的定义: 通常指具有相同五元组的一组报文:

    • 源IP地址

    • 目的IP地址

    • 源端口号

    • 目的端口号

    • 传输层协议号
      例如,你和朋友的一个TCP连接,所有的数据包都属于同一个流。

逐流负载分担的优点:

  • 保证顺序: 同一个流的所有包走同一条路,严格按照发送顺序到达接收端,不会出现乱序,保证了TCP的传输效率和实时业务的体验。

  • 实现简单: 只需在入口做一次哈希,后续转发无需再查表。


三、为什么我们最好用逐流的负载分担?

在实际的生产网络中,99%的场景都会选择逐流负载分担,核心原因就是前面提到的防止乱序。下面从几个角度深入说明:

  • 逐包负载分担:理论上最均衡,但实际中因乱序问题,极少用于IP网络

  • 逐流负载分担:虽然不能保证绝对的带宽平均利用,但保证了数据流的顺序性,保护了上层业务的质量,是工程上的最佳选择


手工模式的缺点

手工模式只检测物理信号,不检测协议通断对端合法性。只要光纤发光、网线有电,它就认为链路正常,哪怕对端是台打印机、是个傻瓜交换机,甚至是堵墙(如果墙上有能激活端口的设备),它都会照发不误。

对比一下 LACP(链路聚合控制协议)模式,你就能更清楚地看到手工模式的不足了。

LACP模式会定期发送协商报文:

  1. 保活机制: 设备会通过成员端口定期发送 LACP 数据单元。

  2. 双向检测: 它不仅要确认对端设备的存在,还要确认对端设备的系统优先级、端口优先级、操作Key等配置是否一致。

  3. 故障快速感知:

    • 物理 Down: 当然能感知。

    • 逻辑 Down: 如果连续几个周期收不到对端的 LACP 报文(比如你把线插到了交换机C上,交换机C不会回复LACP报文),LACP协议就会判定这个成员链路协商超时,逻辑上将这个端口标记为 Down,并立即从聚合组中剔除,不再转发流量。

    • 配置不一致: 如果对端设备的聚合配置(比如允许通过的VLAN、速率双工模式等)与本端不匹配,LACP也能检测到,并可能将该端口置为Individual(独立端口)状态或Down状态,防止错传。


查看

设置SW5当lacp的主动端

先做MSTP,再做VRRP

先规划好二层转发路径,再部署三层的网关冗余,是网络部署的铁律。

关键的依赖关系来了:
VRRP设备之间需要定期发送心跳报文(Advertisement)来协商主备状态,选举Master和Backup。这些心跳报文是二层数据帧(目的MAC地址是固定的VRRP组播MAC:01-00-5e-00-00-12),它们必须在交换机组成的二层网络中传播。

如果这个二层网络本身是不通的,或者路径是断裂的,那么:

  • VRRP的心跳就可能中断。

  • 主备设备可能因为收不到对方的心跳,都认为自己是Master,导致双主现象,引发网络震荡。

设置主根

查看stp

查看vrrp

验证生成树

查询地址池

实验三


参考文档

通过网盘分享的文件:day04
链接: https://pan.baidu.com/s/1Q3t4K1NbcSH2w1ObnNOjjg?pwd=ybs8 提取码: ybs8 
--来自百度网盘超级会员v6的分享

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐