1. 实验题目背后的设计意图
看到“实验五:使用交换机构建交换式以太网”这个题目,很多同学第一反应是“不就是拿几台交换机连几台电脑嘛,照着拓扑图插线,然后配个IP地址,ping通就完事了”。如果你也是这样想的,那这个实验大概率就做成了一次“插线练习”,做完之后除了记住交换机的端口长什么样,其他什么也没留下。
我第一次做这类实验的时候也差不多,拓扑图摆在那里,线插上去,指示灯一亮,觉得万事大吉。直到后来在真实网络环境里排查过几次莫名其妙的“网速慢”“时通时断”之后,才回头意识到:交换式以太网这个“实验五”,想让你搞明白的根本不是怎么插线,而是数据在二层交换机上到底是怎么被转发的,以及为什么交换机会比集线器(Hub)强那么多。
换句话说,实验真正的考点藏在三个问题里:
- 交换机收到一个帧之后,凭什么决定从哪个端口发出去?
- MAC地址表是怎么建立起来的?它会老化吗?
- 如果交换机收到一个目的MAC地址未知的帧,它会怎么处理?
带着这三个问题去做实验,哪怕只用了两台交换机、三台电脑,收获也完全不一样。这篇内容我就按照实际动手的顺序,把从规划拓扑、连接设备、配置验证,到查看MAC地址表、排查环路广播风暴的完整过程捋一遍。其中有些操作是我在实际项目中反复用过的,有些坑也是踩过之后才长记性的,希望对正在做这个实验或者想彻底搞懂交换式以太网的人有点帮助。
1.1 交换式以太网与传统共享式以太网的核心差异
要理解这个实验的意义,得先回到以太网的老祖宗——共享式以太网。
早期组网用的是集线器(Hub)和同轴电缆,整个冲突域里所有设备共享同一条通信链路。什么意思呢?就是A要给B发数据,C和D虽然在物理上也连着这根线,但它们只能干等着。而且如果A和C同时开口说话,就会产生冲突,大家都得退避重传。这种“一个时刻只有一台设备能说话”的机制,导致网络带宽被所有设备瓜分,设备一多,效率就断崖式下跌。
交换机的出现,本质上是把“共享”变成了“交换”。交换机内部维护了一张MAC地址表,知道哪个MAC地址在哪个端口下,所以A发给B的帧只从连接B的那个端口出去,C和D的端口完全不受影响,它们该发啥发啥,互不干扰。这个转变带来的直接好处有两个:
第一个是冲突域被隔离。每个端口都是一个独立的冲突域,端口之间不再抢信道,A和C可以同时向各自的通信对象发数据,只要目的端口不冲突,数据就能并行转发。
第二个是带宽不再被共享。接在Hub上的10台设备共用100Mbps,平均下来每台可能只有10Mbps;而交换机的每个端口都能跑满100Mbps,而且是独享的,这区别放到现在的千兆环境里更明显。
我在实际组网的时候,早就不会有人去买Hub了,但理解这个对比依然有意义。因为在一些老旧项目里,你可能会碰到“感觉出口带宽不够,怎么加设备都没用”的情况,排查到最后发现是某个环节的设备在二层上退化成半双工模式或者被广播风暴拖垮了。那时候你再回头想交换机和Hub的区别,就会有一种“课本上的知识点终于用上了”的顿悟感。
1.2 为什么选择交换机作为核心设备
做这个实验选交换机而不选其他二层设备,还有一个更现实的理由:交换机是当前局域网组网的绝对主力,从家庭的小路由器自带的交换口,到数据中心里成千上万台服务器的接入层设备,二层转发的基本逻辑都是一样的。
你可能会问:家里用的无线路由器不也能连好几台电脑吗?它不是交换机吗?严格说,家用的无线路由器是一个多合一设备,里面集成了路由功能、交换功能和无线AP功能。它的LAN口之间就是一颗交换机芯片在做二层转发。所以你拆开一个家用路由器,看到的那些LAN口,本质就是这个“实验五”里交换机的缩小版。
而在高校实验室或者公司的接入层组网里,我们用的往往是独立的二层交换机。这类设备结构更简单,转发逻辑也更纯粹,适合用来学习。通过命令行或者Web界面,你能清清楚楚看到MAC地址表里哪条记录是哪台设备的,哪个MAC是从哪个端口学到的,而不是像家用路由器那样把细节全封装在芯片里。
做这个实验还有一个隐藏价值,就是训练你“看图施工”的能力。实际工作中,几乎不可能上来就让你从头规划设计整个网络,更多时候是给你一张拓扑图、一批设备和一捆网线,要求你在规定时间内把它搭起来并验证连通。实验五模拟的正是这个场景:拓扑已知,设备有限,任务明确,剩下的全靠你对交换原理和实操细节的把握。
2. 组网规划与设备选型细节
这个实验看起来简单,但想做得顺畅、不返工,规划阶段千万别省。我见过不少同学上来就插线,结果IP地址段没规划好,两台设备冲突了,又或者端口接错位置,最后排查半天。与其那样,不如先花十分钟把方案理清楚。
2.1 最小化拓扑与扩展拓扑怎么选
实验题目通常会给一张参考拓扑,常见的有两种形态。
第一种是最小化拓扑:一台交换机,接两台或者三台PC。这个拓扑的目标非常纯粹,就是验证交换机的单点转发能力,观察MAC地址表的变化。适合刚上手、时间紧的情况。
第二种是级联拓扑:两台交换机,用一根线把两台交换机连起来,下面各自挂几台PC。这个拓扑引入了一个新问题:跨交换机通信时,帧是怎么从交换机A到达交换机B的?你会发现,交换机A学到远端设备的MAC地址时,对应端口指向的是连接交换机B的那个端口,而不是某个具体PC的端口。这个细节特别重要,因为它揭示了交换机之间是如何相互学习、相互协作的。
如果实验室允许,我建议直接选级联拓扑。它比单台交换机多了一层转发路径,能观察到的东西丰富得多,也更容易理解“MAC地址表不是每台交换机各自独立,而是通过帧的流动不断学习更新”的机制。
动手规划之前,先把所有设备的角色定义清楚。比如:
- 交换机1作为核心交换机,接服务器或者上联口。
- 交换机2作为接入交换机,接普通PC。
- 每台PC的IP地址段、网关、子网掩码提前列成表格。
IP规划上,我习惯用一个简单清晰的规则:同一网段内,设备编号从10开始递增。比如192.168.1.10、192.168.1.11、192.168.1.12这样排下去。好处是后期排查问题的时候,看到地址就能猜到是哪台设备,不用到处翻笔记。
注意:规划IP的时候,一定要确认是否所有设备都在同一个网段,并且子网掩码一致。实验五的目标是搭建一个二层交换网络,重点测试交换机转发能力,而不是路由转发,所以所有终端都应该在一个网段内。
2.2 设备与线缆的自查要点
开始动手之前,建议把设备清单列出来逐项核对。以下是我根据以往实验总结的核查表,可以直接抄作业:
| 项目 | 核查内容 | 可能出现的坑 |
|---|---|---|
| 交换机 | 是否通电,型号是否一致,端口数量是否满足 | 型号不一致可能导致管理和配置方式不同 |
| 网线 | 数量是否充足,长度是否够用,是否为直通线 | 线序不对会导致链路协商失败 |
| PC/终端 | 网卡驱动是否正常,防火墙是否关闭 | 防火墙拦截ICMP导致ping不通 |
| IP规划 | 所有设备是否同网段,是否有重复IP | 重复IP会导致间歇性断网 |
| 管理方式 | 交换机是否支持命令行配置,是否需要使用console线 | 需要console线但没准备,只能干瞪眼 |
网线这块多说一句。现在大多数设备都支持MDI/MDIX自适应,也就是端口能自动识别直通线还是交叉线,随便插都能通。但在一些旧设备或者特殊场合,如果链路指示灯不亮,先别急着怀疑交换机坏了,换个线序试一下很可能就好了。我手里常备两三类网线,直通线为主,另备一两根交叉线应急,这个习惯帮我避免过不少尴尬。
另外,交换机如果支持网管功能,记得把管理接口的默认IP和登录凭据提前查好。有的交换机默认管理地址是192.168.1.1,有的可能是其他网段,如果跟PC的IP规划冲突了,处理起来会有一点绕。
2.3 物理连线的顺序与规范
插线这件事看着简单,但顺序是有讲究的。
我推荐按照“先交换机侧,再终端侧”的顺序来。原因是交换机通常放在机柜或者桌子上,位置固定,先把它的线全部插好,后面整理线缆时会顺手很多。如果先插PC那头,再回头插交换机,绕来绕去的线容易缠成一团。
插线时还会遇到一个让人很烦的问题:交换机端口上方和下方各有一排指示灯,要是设备多了,根本分不清哪根线对应哪个端口。我的做法是:每插一根线,就顺着线缆在两端贴上标签,或者在纸上记录“交换机端口号——PC名称”。别高估自己的记忆力,等出了故障排查时,这个记录能省下大量时间。
具体操作可以按下面这个步骤走:
- 先把交换机的电源接好,确认设备正常启动,指示灯状态稳定。
- 在交换机端,按规划的端口顺序依次插入网线。
- 到终端侧,把网线插进PC的网卡接口,听到“咔嗒”一声才算插到位。
- 观察交换机端口指示灯,确认已连接。正常情况下,指示灯应为绿色或稳定亮起。
- 两端都插完后,统一整理线缆,避免交叉缠绕。
做过几十次实验之后,我发现一个规律:凡是实验做到一半网络不通,有很大概率不是配置问题,而是物理层的问题。要么是网线没有插到位,要么是线序不对,要么是接口接触不良。所以物理连接这一步,宁可慢一点,也要确保每根线都插实了。
3. 接入配置与连通性验证实操
物理链路通了之后,接下来的重点就转到终端配置和连通性测试上了。这个环节是把“纸上网络”变成“真实网络”的过程,也是最容易出状况的地方。
3.1 PC网络参数设置的操作细节
在Windows系统下,打开网络适配器设置,进入IPv4属性,手动指定IP地址。这里有几个容易忽略的细节:
子网掩码要填正确,比如255.255.255.0,如果错填成255.255.0.0虽然大概率也能通,但逻辑上是不严谨的。网关这个字段,如果实验环境没有路由器,也没有跨网段访问的需求,可以留空。但如果后面要扩展到跨交换机甚至跨网段通信,网关就要提前规划好。
DNS服务器一般不填,因为实验环境通常不涉及域名解析。
还有一项经常被忽略:设置完之后,一定要确认网卡的“IP辅助功能”或者“网络发现”等设置没有干扰测试。最简单的办法是打开命令行,输入ipconfig /all,查看网卡是否正确获得了刚才配置的IP地址。
我一般在每台PC上会做两件事:
- 用ping 127.0.0.1验证本机TCP/IP协议栈是否正常。
- 用ping本机IP地址验证网卡的IP配置是否生效。
这两步能快速排除“网卡驱动问题”和“IP配置问题”。如果本机IP都ping不通,那多半是网卡或者协议栈出了问题,跟交换机没有关系。
3.2 交换机侧的可选配置:VLAN与端口状态
实验五如果不涉及VLAN,交换机基本上零配置就能用,插上电,接上网线,设备之间就能互通。但“能互通”和“知道为什么互通”是两回事。有条件的话,我还是建议进入交换机的管理界面,看一眼端口状态。
常见的二层交换机可以通过命令行或者Web界面查看端口信息。命令行一般用show interface status或者display interface brief这类命令,能看到端口是否up、协商速率、双工模式等信息。
这里有个很重要的观察点:当PC接入端口后,端口指示灯会变成绿色,show命令里通常会显示“Connected”或者“UP”。如果显示“Down”,说明物理链路有问题,十有八九是网线。
在此基础上,如果你想更贴近真实项目场景,可以顺手把两个VLAN配出来玩玩:VLAN 10和VLAN 20,分别划分到不同的端口。你会发现同一个交换机下,不同VLAN的PC彼此之间ping不通,而相同VLAN的PC能ping通。这就从实践层面理解了“VLAN隔离二层广播域”的含义。
提示:做VLAN实验时,端口要改成access模式,并指定所属VLAN。命令一般是在接口视图下执行port link-type access和port default vlan 10这类配置。配完别忘保存配置,很多交换机的配置重启后会丢失。
3.3 连通性测试方法:ping与pathping的合理使用
测连通性最常用的工具是ping,但很多人只会用ping一下然后看是否“通”。实际上ping命令的结果隐藏着很多信息,值得逐条看。
举例来说,ping 192.168.1.11,如果返回结果是“Reply from 192.168.1.11: bytes=32 time<1ms TTL=128”,说明二层转发路径正常,时延极小。如果返回“Request timed out”,不一定代表网络不通,有可能是对方防火墙拦了ICMP。如果返回“Destination host unreachable”,通常说明本机ARP解析不到目标MAC,可能是IP配置问题,也可能是对方根本不存在。
在多台设备都加入网络之后,我还会用ping -t这种方式持续测一段时间,观察有没有规律性丢包。如果出现“隔几条通一条”的情况,就要警惕链路质量问题或者广播风暴。
如果实验环境允许,也可以使用更高级的工具,比如Windows自带的pathping,它能同时展示路径上的每个节点丢包率和延迟,比单纯ping更有诊断价值。在一台交换机内部,pathping虽然只能看到一跳,但在检测本机到网关的链路质量时,它还是能帮上不少忙的。
4. 交换机转发机制的关键细节
如果说前面几节都是在解决“怎么把网络搭起来”的问题,那这一节就要解决“为什么网络能通”的问题。这才是实验五真正的核心。
4.1 MAC地址表是如何建立和维护的
交换机最核心的一张表是MAC地址表(也叫CAM表)。它记录的是“哪个MAC地址出现在哪个端口下”。这张表不是出厂就写好的,而是交换机在工作过程中自动学习出来的。
学习过程可以拆成下面几个步骤:
- PC A发出一个帧,目的MAC是PC B。
- 交换机从端口1收到这个帧,先把源MAC地址(也就是PC A的MAC)和端口1的对应关系记录到MAC地址表里。
- 交换机查表,发现目的MAC(PC B)还没有记录,于是把这个帧从除了端口1以外的所有端口广播出去。
- PC B收到帧后回应,它的源MAC地址从端口2进入交换机。
- 交换机同样学习PC B的MAC对应端口2。
- 下次PC A再发帧给PC B时,交换机查表发现目的MAC在端口2,就只从端口2转发,不再广播。
这个过程就是“逆向学习”,听起来有点绕,但逻辑非常自然:看到哪个MAC从哪个端口进来,就记下“这个MAC在这个端口方向”。
MAC地址表还有一个特点是老化。交换机不会永久保留一封记录,通常老化时间是300秒(不同厂商略有差异)。如果某个MAC在这段时间内没有再发帧,它的记录就会被删掉。这样做的目的是为了适应网络拓扑的变化,比如PC从端口1换到了端口2,旧的记录如果不删除,交换机就会一直往端口1发帧导致不通。老化机制让交换机能够“纠错”。
4.2 转发、泛洪和过滤的决策逻辑
交换机收到一个帧后,主要做三件事之一:转发、泛洪或过滤。
- 转发:MAC地址表里有目的MAC的对应记录,从一个确定的端口发出去。
- 泛洪:MAC地址表里没有目的MAC的记录,或者目的MAC是广播地址(FF-FF-FF-FF-FF-FF),则从除了接收端口以外的所有端口转发出去。
- 过滤:目的MAC对应的端口就是接收端口本身,比如PC A发给PC A自己的MAC地址,交换机直接丢弃不处理。
这个决策逻辑跟路由器完全不同。路由器基于IP地址做路由查询,综合路由协议计算路径;交换机则是纯粹的“查表动作”,表里有记录就精确转发,没有记录就泛洪。也是因为“没有记录就泛洪”这一个特性,才引出了广播风暴和环路的问题。
做实验的时候,可以通过查看MAC地址表来验证这个过程。比如在命令行执行show mac address-table,你会看到类似下面的输出:
| VLAN | MAC地址 | 端口 |
|---|---|---|
| 1 | 00:1A:2B:3C:4D:5E | Ethernet0/1 |
| 1 | 00:1A:2B:3C:4D:5F | Ethernet0/2 |
你自己也会观察到,如果PC A ping了PC B,MAC地址表里多了两条记录:一条是PC A的,对应端口1;一条是PC B的,对应端口2。如果PC C的帧一直没出现过,那表里就不会有它的记录,这也解释了为什么“没通信过的设备不会出现在MAC表里”。
4.3 广播帧与未知单播帧的区别
很多初学者容易混淆“广播”和“泛洪”。这是两个概念,严格说并不完全相同:
- 广播帧的目的MAC是FF-FF-FF-FF-FF-FF,交换机必须从所有其他端口转发出去,这是广播域层面的行为。
- 未知单播帧是目的MAC未知的单播帧,交换机暂时不知道往哪发,所以临时从所有其他端口转发出去,这就是泛洪。一旦交换机学到了目的MAC,后续帧就不会再泛洪,而是精确转发。
这两种行为在实验里的表现完全相同——都是所有端口收到帧,所以很难直接区分。但区别在于:广播帧永远被泛洪,而未知单播帧只会泛洪一次。
理解这个区别的实用价值在于排查网络泛洪攻击或者性能问题的时候。如果有人在网络上不断发送目的MAC随机的帧,交换机会被逼着不停泛洪,端口利用率飙升,正常通信就会受到影响。这时候你看MAC地址表会发现大量无法匹配的条目,甚至不断老化不断重新学习。理解了这些机制,才不至于看到“交换机CPU飙升”就无从下手。
5. 实验踩坑实录:常见问题与排查方法
做实验和做真实项目最大的区别是:实验环境相对可控,但该出的问题一个都不会少。而且越简单的拓扑,越容易产生“看起来全对但就是不通”的诡异故障。这一节把我见过的高频问题按排查顺序整理出来,方便你遇到状况时直接对照。
5.1 接上交换机后PC显示“未识别的网络”
这是出现频率最高的问题。网卡插上去,指示灯也亮了,但操作系统弹一个“未识别的网络”,或者网络图标上一直有个感叹号。
先别急着查交换机。按照下面这个顺序排查:
- 先看网卡是否拿到了IP地址,执行ipconfig /all,确认IPv4地址是否为空或者是否出现了169.254.x.x这类的自动配置地址。如果出现169.254.x.x,说明PC没从DHCP服务器拿到地址,而你又是手动配置,那问题多半出在IP配置本身。
- 确认网卡和交换机的链路状态,网线两端是否都插到位。
- 如果网卡显示“已断开”,多半是物理层问题,换一根线试,或者换个端口试。
- 如果网卡显示“已启用”但一直发不出包,检查网卡驱动,尤其是那种免驱网卡,有时候驱动版本不对会引起间歇性问题。
- 关了Windows防火墙再测一次。很多时候ping不通纯粹是防火墙拦ICMP,跟交换机没有半点关系。
我在现场排查的习惯是:先做“最小化验证”。如果接了三台PC不通,那就先拔到只剩一台PC和一台交换机,两台设备之间做单点连通测试。通了之后再逐步加回其他设备。这个方法虽然朴素的,但非常有效,能快速定位是“设备本身问题”还是“设备之间配合问题”。
5.2 多台交换机级联后出现广播风暴
如果你在实验里多接了一台交换机,并且用两根线把两台交换机连起来,不巧形成了环路,那你很快就能体会到广播风暴的威力:交换机所有端口的指示灯疯狂闪烁,原本能通的PC开始大面积丢包,甚至整个网络瘫痪。
原因是这样的:交换机对广播帧的处理是“泛洪”,也就是说任何一个广播帧都会从所有其他端口转发出去。如果两台交换机之间有一条环路,广播帧就会在环路里不断转圈,一份变两份,两份变四份,指数级膨胀,直到占满所有带宽。
解决环路正确的方法是在交换机上启用生成树协议(STP)。STP的职责就是通过选举,把环路中的某个端口阻塞掉,让它从逻辑上断开,从物理上仍然保留。这样既避免了环路,又保留了冗余路径,一旦主路径出故障,STP会重新收敛,启用备份链路。
做实验的时候,你可以故意先不启用STP,插一根临时线形成环路,亲眼看看广播风暴有多恐怖。之后再启用STP,观察端口状态的转换过程,从Listening到Learning再到Forwarding,也就几秒钟的事。这个对比能帮助你牢牢记住STP的价值。
注意:普通家用交换机和部分傻瓜交换机默认不开STP,所以组网时千万别随意把两台交换机用两根线连起来。在实际工程项目中,接入层交换机之间更是要严格遵守“单链路互联”或者“正确启用STP”的组网规范。
5.3 速率与双工模式协商失败
另一个容易忽略的问题发生在网卡和交换机端口之间。现在的设备一般都支持自动协商,但如果一方被手动固定成某个速率,另一方还在自动协商,就很容易出现协商失败,结果表现为“明明链路是通的,但ping时延特别大或者丢包严重”。
以太网的自动协商遵循IEEE 802.3u标准,它通过一组快速的脉冲信号协商出双方都支持的最高速率和双工模式。正常情况下,这个协商过程是即插即用的,不需要人工干预。但有些老旧设备或者特殊网卡,自动协商不够规范,就会出现问题。
在实验里如果碰到“速率对不上”的情况,建议两端都固定成一致的参数,比如都设为100Mbps全双工。用命令的话,端口视图下一般有speed和duplex两个参数。固定配置后再观察链路状态,通常会稳定下来。
分享一个我见过很典型的案例:某次现场有个监控摄像头接在交换机上,画面时不时卡顿,排查了很久,最后发现是摄像头网卡与交换机端口协商到了100Mbps半双工。半双工意味着发送和接收不能同时进行,在高流量下冲突频繁,导致大量重传,画面卡得非常明显。把端口固定成百兆全双工之后问题才解决。这个案例让我养成了一个习惯:凡是涉及实时流量的终端,接入交换机后都会专门留意一下协商结果。
5.4 ping不通的当AB同机不同VLAN时
最后一个常见问题是在配置VLAN之后出现的。如果A和B接在同一台交换机上,但分属不同VLAN,它们之间互相ping不通。这不是故障,而是VLAN的隔离效果在起作用。
VLAN隔离二层广播域,不同VLAN之间如果需要三层互通,就必须经过路由器或者三层交换机。实验里如果只是创建VLAN不配置网关,不同VLAN之间自然不通,这是预期行为,不是交换机坏了。
很多同学第一次遇到这个情况会以为是VLAN配置错了,反复检查端口配置。其实更应该想清楚的问题是:你到底想不想让它们互通?如果想,就需要在三层设备上创建VLAN接口并配置IP,启用VLAN间路由;如果不想,现在的状态反而是正确的。
判断“通了是应该的,不通也是应该的”这一点,在真实网络设计中非常重要。VLAN划分的初衷就是把部门A和部门B隔开,减少广播域范围,提高网络安全性。如果做成实验后依旧全通,那才是真的错了。
6. 实验心得和后续扩展
做实验这件事,我始终觉得,重点不在“做完”,而在“做明白”。一个交换式以太网实验,如果你能顺利通ping,说明你掌握了插线和配置;如果你还能解释清楚MAC地址表的建立过程,说明你理解了交换机的转发机制;如果你还能亲自造一次广播风暴并把它修好,那这个实验对你的价值就已经超出了课堂要求。
按照我个人的习惯,做完成这个实验之后,还会有意识地做下面几个扩展练习,建议有条件的话你也可以试一试:
- 在三台以上PC都接入同一台交换机后,反复ping并同时查看MAC地址表变化,熟悉表项出现、刷新、老化三个状态。
- 把两台交换机级联,分别在两侧各接一台PC,观察跨交换机通信时MAC地址表里“对端MAC”对应的端口指向哪个端口。
- 手动关闭交换机某个端口,然后再断开终端设备连接,观察链路状态和MAC地址老化区别。
- 如果你有配置三层交换机的条件,把VLAN间路由配上,测试不同VLAN的互通,理解二层交换与三层路由的分工界限。
这些扩展动作都不复杂,但每做一步,对“交换式以太网”这个概念的掌握就会扎实一分。说到底,网络技术的学习不能只看书,最好的方式就是多做实验、多踩坑、多复盘。希望这篇记录能帮你在实验五的实操过程中少走一点弯路,把该学到的东西真正装进脑子里。