先说个我自己的感受搞网络这行很多人一开始都栽在“交换机和路由器到底有啥区别”这个问题上。有人画了一堆拓扑图背了一堆命令但真到了排查故障的时候反而不知道从哪下手。其实根源就在于对交换机转发数据这件事本身缺乏一个“画面感”。这篇日志我就把交换机的工作原理从头到尾捋一遍把我自己学习时踩过的坑、想通的关节都记录下来。2. 再往下走一步说说集线器。集线器就更古老了它是物理层设备完全不懂MAC地址。它收到一个信号就把它从所有端口广播出去所有接在集线器上的设备都能收到然后由网卡自己判断“这个帧是不是发给我的”不是就丢弃。这带来两个致命问题一是毫无安全性别人随便抓包就能看到局域网上所有流量二是效率极低整个冲突域里同时只能有一台设备在发数据一多就冲突。现在我们家用宽带动辄几百兆但如果你还在用集线器实际能吃到的带宽可能只有十分之一因为大家都在抢同一个信道。提示我学习的时候一度以为“交换机就是多个集线器拼在一起”这个理解只对了一半。交换机确实是多个端口但它多了一个无比重要的东西一张MAC地址表以及基于这张表做出的“只转发到该去的地方”的决策。这才是质变。3. 最后说说路由器。路由器是三层设备它看的是IP地址。它不关心你局域网内部谁是谁它只关心“你属于哪个网段我该把你往哪个出口送”。所以路由器的作用是把不同的网络连接起来比如把你的家庭网络和运营商网络连接起来。它没有MAC地址表或者说它的表项更复杂是路由表它是靠IP地址和路由协议来决定数据往哪走。一句话总结交换机工作在局域网内部靠MAC地址认人负责把数据精确地送到局域网里的某个设备路由器工作在网络之间靠IP地址认路负责把数据从一个网络送到另一个网络。搞清楚这个边界后面学VLAN、学三层交换、学STP都会顺很多。否则你脑子里就是一团浆糊看到交换机上配置了IP地址就觉得它该当路由器用看到路由器有交换端口就觉得它该当交换机用最后出了问题根本定位不了。1.1 从一块网卡开始MAC地址是怎么成为身份标识的既然交换机靠MAC地址认人那MAC地址到底是什么每块网卡出厂时厂商会烧录一个全球唯一的标识这就是MAC地址也叫物理地址。它是48位的通常写成“AA-BB-CC-DD-EE-FF”这种十六进制格式。前24位是厂商代码后24位是序列号。理论上全世界的网卡MAC地址都是唯一的虽然实际上可以通过软件修改但在局域网里这个唯一性非常重要。这里有个关键点MAC地址是在数据链路层使用的。所谓数据链路层你可以把它想象成“同一根网线或者同一个局域网内的快递规则”。它解决的是“在一段物理链路上数据从哪个网卡传送到哪个网卡”的问题。而IP地址是在网络层使用的它解决的是“在互联网这个大网络里数据从哪个主机传送到哪个主机”的问题它不关心你的数据具体走了哪段网线。交换机就是在数据链路层干活的。它只认MAC地址这张“邻居名单”不管你是哪个IP也不管你来自哪个网段。只要是同一个广播域通俗讲就是同一个局域网里的设备它都能给你精确送达。1.2 交换机的核心MAC地址表交换机内部的灵魂就是这张MAC地址表。这张表记录了两个关键信息设备的MAC地址和该设备连接在交换机的哪个端口上。这块核心表的变化、查询、刷新其实对应着交换机工作状态的几个关键操作也是它区别于集线器的根本所在。2. 核心细节解析交换机工作的“三板斧”交换机工作原理如果非要精简成三个核心操作就是学习Learning、泛洪Flooding、转发Forwarding。作为学习笔记我最初看这些名词的时候觉得太抽象了。后来我用一个生活化的类比把它记住了交换机就像小区门口的快递柜或者是保安大叔。2.1 学习交换机的“记人名”过程现实场景是你往快递柜里放了一个包裹快递柜系统会自动记录“这个包裹属于哪栋楼哪个单元哪位业主”。交换机也一样。当任意一台设备比如电脑A往交换机某个端口比如端口1发了一个数据帧时交换机会怎么做呢它会先看这个帧的“发件人”字段源MAC地址然后把这个MAC地址和接收这个帧的端口对应起来写进自己的MAC地址表。具体过程是电脑A发送数据给电脑B。数据帧到达交换机端口1。交换机读取帧头中“源MAC地址A”这个信息。交换机查自己的MAC地址表发现表里没有MAC A对应的记录。然后将“MAC A”和“端口1”绑定写入表里并记录时间戳。这个学习和记忆的过程是动态的。交换机本身并不知道局域网里有多少台设备它是在每次通信中“偷听”数据帧的源地址一点点把局域网里的设备“认全”的。这里有个重要细节交换机只学习源MAC地址不学习目的MAC地址的端口。实际上交换机学习的目的MAC也是通过源MAC学习或者IP层后续触发来累积的。但在学习这一操作上它只看帧的源MAC。比如它收到一个目的MAC是B的帧它查表发现没有B它不会自己把B记录进去它会采用第二种机制——泛洪来处理。实操心得我刚开始调试的时候经常用命令查看MAC地址表比如show mac address-table。你会发现初始状态时表是空的但只要网线一插上有设备一通信表项立刻就有了。而且如果设备是插在交换机上但不是一直收发包过一会儿你会发现表项消失了。别慌这是正常的这叫老化时间后面细说。2.2 泛洪交换机“初遇设备”的必经之路当交换机收到一个数据帧它要查MAC地址表找到目的MAC对应的端口但发现自己根本不认识这个目的MAC地址怎么办它的策略是“广播问询”。它会把这个帧复制一份从除了收到这个帧的端口之外的所有端口都发送出去这个操作就叫泛洪Flooding。现实中我们经常会在上班时候遇到一件事部门同事群发了一封邮件邮件发给了所有人。你可以想象成交换机在不认识收件人的时候就把信交给所有部门的人然后让他们传阅谁知道自己认识收件人就帮忙转交一下。泛洪的时候网络上所有设备都会收到这个数据帧。它们都会先看一眼帧里的目的MAC是不是自己。如果不是自己就丢弃如果是自己就接收并且会回复一个响应帧。这个时候就形成一个巧妙的反向学习闭环电脑B收到了交换机泛洪过来的帧。电脑B回复一个响应帧给电脑A。这个响应帧的源MAC是B它再次经过交换机。交换机一看源MAC是B端口是2立刻把“MAC B - 端口2”记录到表里。所以泛洪是交换机学习设备地址的必经之路。在设备刚刚入网、交换机还没认识它的时候这是必然发生的过程。但泛洪也是一把双刃剑它会把数据发给所有端口如果频繁发生会消耗网络带宽和所有设备的CPU。2.3 转发精确投递的“熟客通道”当交换机地址表里已经完整记录了源MAC和目的MAC的端口它就不会泛洪了而是直接查表找到对应的目的端口然后只从这个端口发送数据。这就是精确转发也是交换机能保持高带宽的原因。转发流程梳理电脑A发送数据给电脑B数据帧经过交换机端口1。交换机读取目的MACB查表发现 MAC B 对应端口2。交换机直接在内部把数据帧引导到端口2发出去。电脑B收到数据同时交换机顺带学习了源MAC A的端口如果表里没有。从前面的“学习”到这里的“转发”交换机的整个工作状态就是不断重复这三个动作通过这三个动作局域网内的通信就实现了。这里也隐藏着一个新手特别容易忽略的点交换机在转发帧时不会修改帧里面的内容它只是个搬运工。它既不修改源MAC也不修改目的MAC更不管里面封装的是不是IP包。它就像快递柜管理员只看单子上的“寄件人”和“收件人”标签根本不看包裹里装的东西是什么。3. 实操过程与核心环节实现从建表到环路处理这一切是怎样串联的既然原理听起来这么简单为什么实际网络故障还是层出不穷因为把“学习、泛洪、转发”放到一个真实的多设备、多终端网络里还会遇到几个硬核问题时间老化、环路风暴和服务隔离。这一节我们模拟一个最典型的小型局域网环境把交换机工作的完整路径走一遍。3.1 搭建一个最小复现环境三台设备的通信实验我们先做一个最简单的实验验证上面的理论。准备一台交换机我用的是某模拟器做实验实际上物理设备也同理接三台电脑A、B、C。配置项电脑A电脑B电脑CIP地址192.168.1.1192.168.1.2192.168.1.3MAC地址00-0C-29-AA-11-0100-0C-29-BB-11-0200-0C-29-CC-11-03接入端口G0/0/1G0/0/2G0/0/3Step 1清空MAC地址表。我用命令清空交换机表项。clear mac address-table dynamic然后查看show mac address-table输出为空符合预期。Step 2A向B发起数据通信。我在A上ping 192.168.1.2ping通了B。Step 3立刻查看MAC表。我再次运行show mac address-table。输出结果Vlan Mac Address Type Ports --- ---------- -------- ------- 1 00-0C-29-AA-11-01 DYNAMIC GigabitEthernet0/0/1 1 00-0C-29-BB-11-02 DYNAMIC GigabitEthernet0/0/2这个结果是符合预期的。因为A发数据时交换机学习了A的MAC在1端口。等B回应时交换机又学习了B的MAC在2端口。那C呢表里没有C。因为C这台设备压根没有参与通信交换机还没见过它的源MAC。所以如果现在A要发数据给C交换机查表找不到C就会执行第二板斧——泛洪把数据发给除了1端口以外的所有端口也就是2端口和3端口。C收到后会回应从而被交换机记住。注意这个泛洪过程直接暴露了一个安全问题。如果C上没有开启防火墙或者是抓包软件它完全可以收到A发给B的数据副本因为泛洪从而窃听网络流量。这也是为什么现在企业级网络都会做端口隔离、VLAN隔离的原因。如果你把电脑直接接到傻瓜交换机上并且不做任何安全隔离局域网内任何设备都能通过抓包工具看到你的一些明文协议数据比如TELNET、FTP。这是很多人忽略的一点我举这个例子就是想说学原理不是纸上谈兵它能直接引导你做出安全设计决策。3.2 地址表为什么有老化时间看完了表项的建立我们再看一个最常见但容易被忽略的参数老化时间Aging Time。实际环境中电脑网卡可能换了、电脑可能关机了、网线可能拔了。交换机怎么知道哪条表项是过时的呢它不可能永远记住设备A在端口1万一A被拔掉换了一台手机接到端口1呢交换机还保留着A在端口1的表项就会把发给A的数据错误地转发给手机。解决办法就是老化时间机制。默认情况下交换机的MAC地址表项会在300秒内没有活动后自动删除。# 查看老化时间 show mac address-table aging-time # 默认值为 300这个300秒是动态的每当这个端口有对应的源MAC出现时计时器就会重置。这个设计非常巧妙只要设备还在通信它就会持续“刷新”自己的表项只要它超过300秒沉默交换机就会认为它可能“失联”了然后删掉表项下次它再发数据时通过泛洪重新学习。实操心得血泪教训我排障时遇到过一种诡异的情况一台服务器换了块新网卡但IP和位置没变。结果发现全网大部分电脑都能访问它但特定几台电脑就是不通。排查到最后发现某台接入交换机上还留着服务器旧网卡的MAC地址表项而且这个表项因为老化机制没及时清理——因为旧MAC地址正好是某个交换机管理VLAN的网关或者DNS服务器一直在通信导致它每隔几分钟就被刷新一次永远不老化。于是交换机一直把去往服务器的数据转给那个旧MAC地址。后来我手动清了表项clear mac address-table dynamic问题瞬间解决。所以大家遇到这种“时通时不通”的诡异故障第一反应千万别是重启设备先看看MAC地址表里有没有异常表项。很多时候老化的表项就是元凶。3.3 环路灾难广播风暴的可怕之处交换机最大的坑当交换机通过“学习、泛洪、转发”来工作的时候一旦网络里出现物理环路比如网管失误把两台交换机的两个端口互相连上就会出现致命问题。我模拟一个场景交换机A的G0/0/1接到了交换机B的G0/0/1交换机A的G0/0/2接到了交换机B的G0/0/2。此时你往广播域里发一个广播帧比如ARP请求。交换机A收到广播泛洪从除入端口之外的所有端口发出去。交换机B收到广播也泛洪。交换机B泛洪出去又回到交换机A的另一个端口。交换机A再次泛洪再次回到交换机B。无限循环永不停止。这就是广播风暴。整个网络的带宽会被这个无穷无尽的广播帧耗尽所有交换机CPU利用率达到100%所有电脑网卡被塞满数据整个网络瘫痪。因为广播帧一进来交换机就会把它泛洪给所有端口。为什么广播帧不会像单播帧那样被交换机“查表后只从特定端口转发”因为广播帧的目的MAC是全FF-FF-FF-FF-FF-FF交换机查表根本找不到这种地址记录唯一处理方式就是泛洪。这就导致广播风暴在环路中呈指数级放大除非物理断线否则无法自动停止。几乎每个没有启用生成树协议STP的网络环路事故都能把整个局域网搞瘫。这也是交换机支持并默认启用**生成树协议Spanning Tree Protocol, STP**的原因。3.4 生成树STP给交换网络划分逻辑无环拓扑STP协议的核心思想非常巧妙在存在物理环路的网络中通过算法选定一棵无环的“树”。物理链路还在但STP会逻辑上阻塞Blocking其中某一个冗余端口让它既不转发数据也不学习MAC地址只监听BPDU桥协议数据单元。这样数据就从物理有环变成逻辑无环。STP的工作步骤我尽量提炼得简单选举根桥整个网络中指定一个交换机为“根桥”它是全网络的中心。通常是优先级数值最小或MAC地址最小的交换机。选举根端口在每个非根桥交换机上选举出一个最接近根桥的端口作为根端口负责向根桥方向转发数据。选举指定端口在每条链路上选举一个指定端口负责向该网段转发数据。阻塞其他端口既不是根端口也不是指定端口的端口进入阻塞状态逻辑上切断环路。当网络中的某条链路断开时STP会重新计算把原先阻塞的端口过渡到转发状态恢复网络连通实现冗余保护。实操心得如果你的交换机上配置了STP但设备重启或版本升级后一直提示“拓扑变化”并伴随MAC地址表不停刷新那大概率是某个端口的边缘端口连接终端设备的端口没开边缘端口功能。因为终端设备一开机关机就会引起STP重新计算导致全网MAC地址表抖动。正确做法连接PC、服务器、摄像头这些终端的端口都开启边缘端口Edge Port或快速端口PortFast。我做实验时发现只要交换机上接了一个会频繁开关机的设备全网的转发延迟都会明显变高这就是STP拓扑变化引发的。3.5 VLAN交换机怎么解决“广播域过大”的问题前面讲了泛洪讲到了广播风暴。如果一个交换机连接了200台电脑那么任何一台电脑发出ARP广播其他199台电脑都会收到。这种广播域过大是安全隐患和性能瓶颈。VLAN虚拟局域网就是干这个的。通过交换机配置将一个物理交换机分割成多个逻辑隔离的广播域。比如把办公室1的电脑放进VLAN 10办公室2的电脑放进VLAN 20。VLAN 10的广播帧永远发不到VLAN 20里。但这里有个核心难点VLAN之间怎么通信你要知道交换机是二层设备它靠MAC地址转发帧跨VLAN通信时帧的二层标签不同MAC地址表隔离直接转发肯定不行。标准的做法有几种方案一单臂路由。路由器的物理接口比如G0/0/0配置了子接口分别对应VLAN 10和VLAN 20的网关IP。交换机连接路由器的链路配置为Trunk中继链路允许VLAN 10和VLAN 20的带标签帧通过。这样跨VLAN通信时数据先二层到达路由器路由器改写VLAN标签再二层转发回去。方案二三层交换机。在交换机上创建VLANIFSVI三层逻辑接口为每个VLAN配置网关IP然后开启路由功能如HCIA实验中的SVI路由接口、H3C的VLAN接口。设备跨VLAN通信时交换机内部直接路由不需要把数据先送物理路由器。我在实际工作中优先推荐方案二。三层交换机几乎是干这种活的标配。但有几点注意注意如果你的VLAN之间需要ACL访问控制比如VLAN 10的用户禁止访问VLAN 20的服务器这个控制点最好放在三层交换机上。如果你还停留在“VLAN就是防止广播的”的认知层面但实际管理200个人的办公楼网络你会发现跨VLAN访问权限完全失控。我维护过的一个办公楼网络网管曾经图省事把财务、行政、业务三个部门全部设在VLAN1结果局域网攻击、广播风暴、病毒传播层出不穷从那次起我们明确规定一个部门或一个安全区域必须独立一个VLAN再通过三层交换机做东西向流量管控。4. 常见问题与排查技巧实录理论学完了必须实战检验。这一节我整理了5个典型的故障和排查思路这些案例来源都是我处理过的真实场景已匿名化处理希望能帮大家避开同样的坑。4.1 故障排查基础方法看日志、看表、看计数器先教大家一套排查基本功。遇到交换机故障别先怀疑硬件问题先按顺序做这几件事看端口状态用show interface status或display interface brief看端口是不是UP有没有大量CRC错误、冲突报错。**看MAC地址表**用show mac address-table看表项是否正常有没有异常漂移。**看CPU和日志**用show cpu或show logbuffer查看是否有广播风暴、ICMP攻击、BPDU异常的告警。排查网络问题最忌讳的就是没有章法地乱试。这一套基础的查看操作比重启设备有效得多。4.2 问题一设备能上网但时通时断现象办公室某台电脑经常是微信群发消息延迟、浏览器半天下载不动文件但刷新几次偶尔能好。排查过程先ping网关IP发现延迟极高丢包严重延迟从1ms跳到300ms。检查交换机CPU利用率发现CPU占用高达90%以上。用show logbuffer查看日志发现频繁提示“MAC address flapping between port ... and port ...”MAC地址漂移。结论网络中出现了MAC地址漂移。也就是说某台设备的MAC地址一会儿出现在交换机的端口1一会儿出现在端口2。这通常是因为下联设备可能是傻瓜交换机、集线器违规级联形成了环路。但因为环路里是两根独立的物理线路没有启用STP或者STP没覆盖到位导致MAC表疯狂刷新CPU占用飙升。解决找到违规级联的线路拆除或者把连接的端口开启STP边缘端口并启用BPDU GuardBPDU保护。要注意的是很多傻瓜交换机内部会跑私有STP但和标准STP不兼容所以最好直接物理隔离。实操心得很多人一遇到卡顿就先查病毒、查出口带宽其实在局域网内部最先该怀疑的就是这种二层环路。因为它的表象和网络拥堵、病毒攻击一模一样但根因完全不同。我自己排障用“三步法”查MAC漂移日志、查端口CRC错误、查CPU利用率。90%的二层问题都能在这三步里找到。4.3 问题二新接入一台设备全网都变慢现象在一个监控摄像头项目中新增了一台IPC摄像头后整个监控网络的画面开始卡顿、掉线连办公网络都受影响。排查过程使用show interface counters检查交换机所有端口流量。发现新增摄像头所在端口的广播包数量巨大每秒增长上千个。在接入交换机上用抓包工具抓包发现大量来源不明的组播/广播报文。结论这台摄像头可能是组播协议异常或者它不断向全网发送错误ARP广播。接入交换机收到之后它没有出接口匹配的目的MAC表项就只能不断泛洪广播域被塞满。解决给这台摄像头单独设置一个VLAN隔离广播域同时在接入交换机端口上开启单端口风暴抑制Broadcast Suppression功能。在端口上设置广播包速率阈值超过阈值就丢弃避免影响到其他正常终端。实操心得这个案例还揭示了一个关键问题很多终端的网卡或者固件有Bug会无节制地发送广播报文。这种终端放在VLAN1默认广播域里简直是灾难。建议大家的网络设计原则就是终端、服务器、IoT设备、办公网全部划分到不同VLAN宁可多花点时间配置不要等出问题了再手忙脚乱隔离。4.4 问题三访问服务器总是掉线但其他网段的设备访问正常现象服务器在机房办公网络跨路由访问它时总是每隔几分钟断开一次稍等重连又恢复。排查过程检查服务器IP、网关配置正常。持续ping服务器观察到断流周期刚好在300秒左右。检查核心交换机MAC地址表发现服务器的MAC在不断变化一会儿在G0/0/1一会儿在G0/0/2。到机房一看服务器的两个千兆网卡做了绑定NIC Teaming而且工作模式配置成了“负载均衡”但汇聚交换机没有配置对应的LACP链路聚合两个独立物理端口都开着导致交换机的MAC表震荡。结论服务器双网卡绑定/链路聚合使用错误。服务器侧做了聚合但交换机侧没有配置链路聚合EtherChannel/Bond导致交换机将服务器的MAC地址在两个物理接口之间来回漂移。解决在交换机侧配置静态或者动态LACP链路聚合将两个端口绑定为一个逻辑接口Port-channel并且保持两端速率、双工、VLAN配置一致。如果实在无法配置链路聚合就把服务器的网卡绑定模式改为“故障转移”Active/Backup也即是只用一个物理网卡收发数据另一个做备用。实操心得这种问题一般来说在链路聚合配置之后会明显解决。另外提一个细节配置聚合链路后单播流量会通过聚合组内的某一条链路负载均衡但广播、组播流量通常会从其中一条链路发送。如果工作模式配置不平衡可能出现聚合端口链路带宽利用率差异极大的情况。所以配置完后一定要用show etherchannel summary或show port-channel summary查看成员端口的状态是不是都是“绿灯”状态。4.5 问题四端口能UP但就是不通且指示灯狂闪现象某交换机的一个端口连接到一台PCPC网卡显示连接正常但无法获取IP地址也无法访问网络。排查过程检查端口状态UP速率协商正常1000Mbps但MAC地址表里始终没有该PC的MAC。用笔记本接这个端口可以正常上网说明端口本身没问题。接回原PC发现交换机的端口指示灯快速闪烁端口状态Down掉又UP反复循环。结论这个端口被配置成了Trunk端口且没有修改PVID。PC发出的不带VLAN标签的标准帧进入Trunk端口后会被打上PVID对应的VLAN标签默认VLAN 1。而PC本身无法识别带标签的帧导致通信失败。或者该端口开启了端口安全功能绑定了其他设备的MAC新设备强行接入后被自动关闭。解决把端口设置为Access端口并将端口的PVID设为PC所在VLAN。如果开启了端口安全Port-security则先清空mac限制然后再重新学习。实操心得这种排查经验特别适合刚接触网络的新人。有时候你觉得明明都是有线连接为什么ping不通直接看一下交换机端口类型就知道Access口和Trunk口所处理的帧不一样。不是说物理线路通二层就通。这个坑我见过太多人踩了。敲命令前先把端口类型理清楚。5. 知识串联从交换机原理再看网络排错的整体思路前面把交换机的原理、细节、故障案例都过了一遍现在思考一个更大的问题掌握交换机工作原理对整体网络排错有什么价值我调试网络有一个心得遇到一个问题先判断它是物理层问题、二层问题还是三层问题。物理层网线没插好、端口Down、光衰过大。表现是端口状态Down。二层问题MAC表震荡、VLAN配置不正确、广播风暴、STP阻塞。表现是链路Up但业务不通、时断时续。三层问题路由表错误、IP地址冲突、网关ARP问题。表现是VLAN间通信不通、跨网段路由断开。交换机原理是二层的基石。如果你对MAC地址表、VLAN、STP没有深刻理解你会发现很多网络故障的定位会非常困难。你会频繁陷入“是不是路由器坏了”“是不是IP冲突了”的猜测中而忽略掉最简单的环路、MAC漂移和VLAN标签问题。同时交换机原理也是理解三层交换、堆叠、虚拟化网络的底层基础。现在很多大型数据中心里交换机都已经在做VXLAN、SDN这种叠加网络了但它们的核心依旧是将二层转发和三层路由结合起来的只是封装和解封装的方式变了。真正先把二层的“学习、泛洪、转发”彻底搞懂再升级看VXLAN完全能省下好几倍的精力。5.1 一个帮助记忆的小模型快递柜与门卫的结合最后分享一个我自己给学生讲课的时候经常用的记忆模型方便大家把分散的知识点串起来。想象一下整栋楼有个“智能门卫”他管理着一个大柜子MAC地址表柜子每个格子对应一个“门洞”端口。学习每当有一个人从某个门洞进来他先记住这个人的长相源MAC并把长相和门洞编号绑定放进柜子里。泛洪如果有人要找某个人但他没在柜子里见过这个人。他只能拿着大喇叭对着所有门洞喊“谁认识XXX请出来一下。”转发如果喊过之后那个人回了话回应帧他就会把回话的人和门洞绑定放进柜子里。以后你再找他他直接去对应门洞敲门递信。环路如果楼里有两个门卫互相用喇叭喊话还互相给对方递话那整个楼全是他们的广播声正常住户根本无法交谈。STP的作用就是规定另一个门卫闭嘴只听不问。VLAN如果这栋楼分成了两个单元你住1单元找2单元的人需要先上一层层长路由器或三层交换机报备让他帮你转交不能直接在本单元门卫室大喊就指望人家听见。把这个模型在脑子里过一遍交换机的转发决策、环路的形成、VLAN隔离的必要性就都串起来了。在实际工作中我还经常遇到一些爱“压缩排障时间”的同事一感觉网络卡就重启核心交换机。这种做法非常危险极大概率会导致更长的业务中断。如果你能掌握交换机的这套工作原理你就会明白大多数二层的“卡”不是靠重启能解决的而是要通过show命令和数据包分析来定位。比如通过抓包软件分析你会看到在故障节点上ARP请求是不是没有得到应答STP BPDU是否异常VLAN标签是否匹配。这些操作没有原理支撑根本无从下手。所以这篇学习日志的核心价值不在于让你会敲几个查询命令而在于帮你建立对二层网络行为的直觉。有了这种直觉你排障时就不会“病急乱投医”而是能按图索骥从根本上解决问题。下次你再听到某人说“交换机一插上就能用”你就可以告诉他这只是因为交换机学习的动作隐藏在了建立连接和第一次通信的过程中。真正把它“掰开揉碎”看里面就是今天我记录的这些原理和细节。