交换机工作原理详解:二层转发、三层路由与四层负载均衡
2026/9/18 20:31:08 网站建设 项目流程

简介:这份PDF面向计算机网络初学者与备考网络技术的学习者,系统讲解交换机在OSI参考模型不同层次上的工作原理,帮助读者理清二层、三层、四层交换机的转发逻辑与适用场景。资源共1个PDF文件,压缩包约104KB,内容以图文结合的方式展开,配有工作原理示意图,便于对照理解数据包从接收、分析到转发的完整流程。文档重点覆盖二层交换机基于MAC地址表的动态学习与广播转发机制、三层交换机“一次路由、多次交换”的网段间转发策略,以及四层交换机依据端口号识别应用服务、通过虚拟IP实现服务器负载选择的过程。已有1108人学习,适合用于课程复习、网络设计入门与故障排查思路梳理,也可作为理解局域网数据转发机制的参考材料。

1. 从一次广播风暴说起:交换机到底在转发什么

很多人第一次接触交换机,是从"插上网线就能通"开始的,直到某天网络突然变慢,抓包发现满屏 ARP 广播,才意识到交换机并不是一根透明的网线。它内部维护着一张会随时间变化的表,转发、泛洪、学习、老化,全围绕这张表展开。这份《计算机网络 交换机工作原理.pdf》把二层、三层、四层交换机拆开讲,恰好补上了"配置命令会敲、原理说不清"的那段空白。

它适合两类人:一是正在准备计算机网络期末复习、需要把 MAC 地址表和路由表关系理顺的学生;二是天天配华为、H3C 交换机,却对"一次路由、多次交换"只停留在背概念层面的运维。下面按二层转发、三层路由、四层负载、排错验证的顺序,把这份资料里的原理落到能复现的命令和参数上。

2. 二层交换机:MAC 地址表的学习、泛洪与老化

二层交换机工作在 OSI 数据链路层,只认 MAC 地址,不关心 IP。它的全部智能都体现在一张 MAC 地址表上,理解这张表的增删改查,就理解了二层交换。

2.1 收到帧之后的三步判断

当某个端口收到一个以太网帧,交换机会依次做三件事:读取帧头里的源 MAC 和目的 MAC;用源 MAC 去更新地址表,记录"这个 MAC 来自这个端口";再用目的 MAC 去查表决定怎么转发。查表结果只有三种:命中且端口不是入端口,单播转发;命中但端口就是入端口,丢弃(目的和源在同一端口,没必要转发);没命中,向除入端口外的所有端口泛洪。

这里有个容易被忽略的点:学习发生在转发之前。所以哪怕目的 MAC 查不到要泛洪,源 MAC 的映射也已经写进表里了。这就是为什么两台主机第一次通信会泛洪,第二次就能单播直达。

2.2 用命令观察 MAC 地址表

在华为或 H3C 交换机上,查看地址表是最直接的验证手段。下面以华为 VRP 为例:

# 查看全部动态学习的 MAC 地址表项 display mac-address # 只看某个 VLAN 下的表项,VLAN 10 为例 display mac-address vlan 10 # 查看某个接口学到的 MAC display mac-address interface GigabitEthernet0/0/1 # 查看 MAC 地址老化时间(默认 300 秒) display mac-address aging-time

display mac-address输出里几个字段要会读:MAC Address 是学到的地址,VLAN 表示所属广播域,Port 是学习来源端口,Type 为 dynamic 表示动态学习、static 表示手工绑定。老化时间默认 300 秒,意味着一个 MAC 超过 5 分钟没有流量刷新就会被删除,下次通信重新泛洪学习。

提示:如果发现同一个 MAC 在两个端口之间反复跳变,通常是环路或 MAC 欺骗,先查生成树状态,再考虑端口安全。

2.3 泛洪的代价与端口安全

泛洪本身不是故障,但无节制的泛洪会吃掉带宽。常见做法是在接入端口开启端口安全,限制单端口可学习的 MAC 数量:

# 进入接口,限制最多学习 2 个 MAC,超限则告警 interface GigabitEthernet0/0/1 port-security enable port-security max-mac-num 2 port-security protect-action restrict

max-mac-num控制学习上限,protect-action决定超限行为:protect 静默丢弃、restrict 丢弃并告警、shutdown 直接关端口。参数怎么选取决于场景,办公区接入一般用 restrict,机房核心链路慎用 shutdown,避免误伤。

转发行为触发条件结果
单播转发目的 MAC 命中且非入端口只从对应端口发出
泛洪目的 MAC 未命中除入端口外全部发出
丢弃目的 MAC 命中但等于入端口不转发
过滤目的为组播/广播按 VLAN 范围泛洪

3. 三层交换机:一次路由、多次交换是怎么落地的

三层交换机常被误解成"二层交换机加了个路由模块",其实关键在转发路径的优化。它把首个数据包交给路由模块处理,把结果缓存下来,后续同一条流直接走二层硬件转发,这就是"一次路由、多次交换"。

3.1 同网段与跨网段的判断逻辑

三层交换机收到数据包,先比较源 IP 和目的 IP 是否在同一网段。同网段,直接交给二层交换模块按 MAC 转发,路由模块根本不参与;不同网段,才把包交给三层路由模块。路由模块查内部路由表,看目的 IP 与目的 MAC 是否已有映射:有,转回二层转发;没有,做一次路由处理,把 IP 与 MAC 的映射写进表,再转回二层。

这个映射表就是常说的 FIB(转发信息库)加邻接表,硬件里叫快速转发表。它让后续数据包绕开 CPU 路由计算,直接由 ASIC 转发,延迟从毫秒级降到微秒级。

3.2 配置 VLAN 间路由验证跨网段转发

要复现三层转发,最典型的是配 VLANIF 接口。下面在华为交换机上建两个 VLAN 并启用三层接口:

# 创建 VLAN 10 和 20 vlan batch 10 20 # 配置 VLANIF 10 作为网关 interface Vlanif10 ip address 192.168.10.1 255.255.255.0 # 配置 VLANIF 20 作为网关 interface Vlanif20 ip address 192.168.20.1 255.255.255.0 # 把物理口划入 VLAN interface GigabitEthernet0/0/1 port link-type access port default vlan 10 interface GigabitEthernet0/0/2 port link-type access port default vlan 20

Vlanif是三层交换机上的虚拟三层接口,每个 VLAN 一个网关地址。配完后 192.168.10.0/24 和 192.168.20.0/24 之间就能互通,靠的正是三层路由模块。用display ip routing-table能看到直连路由,用display fib能看到硬件转发表项。

3.3 路由表与 FIB 的差别

很多人分不清路由表和 FIB。路由表是控制平面算出来的,包含协议、优先级、度量值;FIB 是数据平面用的,只保留"去哪个网段、下一跳是谁、从哪个口出"。三层交换机把路由表下发到 FIB,转发时查 FIB 而不是路由表。

# 查看路由表,关注 Destination/Mask 和 NextHop display ip routing-table # 查看 FIB,关注 Flag 和 Interface display fib

如果跨网段不通,排查顺序是:先看 VLANIF 是否 up、IP 是否配错,再看路由表有没有对应条目,最后看 FIB 是否下发成功。常见坑是 VLAN 里没有 up 的物理口,VLANIF 就起不来,路由自然不生效。

4. 四层交换机:端口号识别与服务器负载均衡

四层交换机工作在传输层,靠 TCP/UDP 端口号判断应用类型,HTTP 是 80、HTTPS 是 443、FTP 是 21。它的核心价值不是转发,而是把请求分发给一组服务器,同时对外只暴露一个虚拟 IP。

4.1 虚拟 IP 与真实服务器地址的映射

四层交换机为每个应用服务器组设一个虚拟 IP(VIP),DNS 里解析的是 VIP 而不是真实服务器地址。用户请求到达 VIP 后,交换机按负载算法选一台最佳服务器,把数据包目的地址里的 VIP 改成该服务器真实 IP,再通过三层模块转发过去。回程流量再改回来,用户全程只看到 VIP。

这样做的直接好处是服务器组可以随时增减,用户无感知;同时对外隐藏了内网拓扑,安全性更好。

4.2 常见负载均衡算法与配置思路

算法依据适用场景
轮询依次分配服务器性能相近
加权轮询按权重分配服务器配置不均
最小连接当前连接数最少长连接业务
源 IP 哈希源地址取模需要会话保持

以源 IP 哈希为例,它能保证同一客户端始终落到同一台服务器,适合有 session 的业务。配置时通常要定义服务器组、健康检查方式和算法:

# 伪代码示意:定义真实服务器组并绑定算法 slb group web_servers method source-ip-hash health-check tcp 80 interval 5 timeout 3 real-server 192.168.30.11 port 80 real-server 192.168.30.12 port 80

method指定算法,health-check定义健康检查,interval是检查间隔秒数,timeout是超时。健康检查失败的真实服务器会被摘除,恢复后自动加回。参数上,间隔太短会增加探测流量,太长则故障切换慢,一般 5 秒是折中值。

注意:四层负载只看端口,不看应用内容。如果要做基于 URL 的分流,那是七层负载均衡的范畴,别混用。

5. 排错与验证:从 MAC 表到抓包定位转发异常

原理讲完,真正拉开差距的是排错。交换机问题大多表现为"时通时不通"或"某段突然变慢",下面给一套从表项到抓包的定位顺序。

5.1 分层排查的固定顺序

先二层后三层,先本地后远端。二层看 MAC 表有没有学到、有没有漂移;三层看 VLANIF 和路由表;跨网段不通再查 FIB。命令上,display mac-address看学习情况,display interface brief看端口 up/down 和错包,display logbuffer看有没有环路或 MAC 冲突告警。

# 查看接口状态和错包计数 display interface GigabitEthernet0/0/1 # 查看最近日志,定位环路、MAC 漂移 display logbuffer | include MAC

接口输出里 CRC 错误持续增长,通常是线缆或光模块问题;display logbuffer里出现 MAC 地址漂移告警,基本可以锁定环路,配合生成树display stp brief确认阻塞端口。

5.2 用镜像抓包验证泛洪与单播

想确认"第一次泛洪、第二次单播",最直接的是端口镜像加抓包。把要观察的端口流量镜像到抓包口:

# 将 GE0/0/1 的入方向流量镜像到 GE0/0/24 observe-port 1 interface GigabitEthernet0/0/24 interface GigabitEthernet0/0/1 port-mirroring to observe-port 1 inbound

observe-port定义观察口,port-mirroring把指定方向流量复制过去。抓包时清空 ARP 缓存再 ping,就能看到第一帧是广播、后续是单播。这个技巧在验证 MAC 学习和定位广播风暴时特别有用。

5.3 一个容易踩的坑:老化时间与流量模式

MAC 表默认 300 秒老化,如果某台设备超过 5 分钟才发一次包,每次都要重新泛洪学习。低频通信的工控设备、打印机经常遇到这个问题,表现为"偶尔第一次访问慢"。解决办法是适当调大老化时间,或对关键设备做静态 MAC 绑定:

# 手工绑定静态 MAC,避免老化 mac-address static 5489-98ab-cdef GigabitEthernet0/0/5 vlan 10

静态表项不会老化,适合位置固定的服务器和网关。但绑定前务必确认 MAC 和端口对应关系,绑错会导致该设备彻底不通,改回来还得先undo掉错误表项。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询