ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

交换机实验避坑指南:MAC地址表、VLAN与Trunk配置详解

交换机实验避坑指南:MAC地址表、VLAN与Trunk配置详解 第一次做交换机实验时很多人看到拓扑图后的第一反应是这不就是插几根网线的事吗可真坐到实验台前面对一排排指示灯和密密麻麻的端口又不知道该从哪下手。等好不容易找到console口、把线接上SecureCRT里却一片空白那时候才意识到交换机实验根本不是“插线通不通”的问题而是一整套关于数据链路层工作机制的实操检验。这篇文章想聊的就是我把交换机实验从头到尾做完之后沉淀下来的东西交换机和Hub的本质差异、MAC地址表到底怎么用、VLAN划分的内在逻辑、做实验时最容易翻车的几个地方以及最后怎么把这些内容转化成一份能拿得出手的实验报告。适用对象很明确正在上《计算机网络》课、需要完成交换机相关上机作业的同学以及在各种网络实训平台上刷交换机考核题、却总是“配置都对但测试不过”的人。内容以通用实验环境为基准思科和华为模拟器的命令差异我会尽量都点到。1. 交换机实验到底在训练什么先看透它和Hub的本质区别1.1 一个常见的实验误区把交换机当Hub用很多同学第一次进实验室拓扑图就画了两台电脑和一台交换机两头网线一插PC上的网络图标就亮了ping一下也通了。于是大家得出一个结论交换机就是个多了几个口的Hub无非是连接设备用的。这个结论在实验课的后续环节里会坑你很久。Hub工作在物理层所有端口处在同一个冲突域里。什么意思就是同一时刻只允许一台设备在线路上发送数据如果两台设备同时发信号就会碰撞大家都得停下来随机等一会儿再重发。四个人用一台Hub同时上网总带宽是共享的人越多越慢。交换机不一样它工作在数据链路层每个端口是一个独立的冲突域A口发数据给B口的同时C口完全可以往D口发数据互不干扰。实验课上为什么要反复强调这个区别因为交换机实验里90%的现象都跟“共享还是交换”有关。比如你在交换机上划分VLAN后“ping不通”很多人第一反应是网线坏了、IP配错了但实际上只是广播域被隔离了。如果一开始就把交换机的数据转发机制搞明白后面那些“诡异问题”基本都能自己解释清楚。1.2 一条MAC地址表如何决定交换机的三类行为交换机的核心数据结构是MAC地址表也叫转发表。实验里应该想尽一切办法去观察这张表因为它决定了交换机的所有行为。以一台刚开机、MAC地址表为空的交换机为例。PC A从0/1口发来一个数据帧交换机先干第一件事——学习源地址把帧头里的源MAC地址“00:E0:4C:00:00:01”记下来绑定到0/1口以后凡是发给这个MAC的帧就直接从0/1口转发不用再广播。然后干第二件事——处理目的地址查表后发现目的MAC“00:E0:4C:00:00:02”根本不在表里于是把帧从除了0/1口以外的所有端口复制一份发出去这叫泛洪。只要目标设备回了包交换机又会学到它的地址这样下一次转发就是精确投递了。这中间还有一个很容易被忽略的行为如果帧从0/1口进来目的MAC恰好也映射到0/1口交换机就直接丢弃这个帧因为源设备和目的设备在同一个端口上没有必要再把数据送回去。实验中偶尔会看到“丢包后再ping就通了”的现象往往就是第一次泛洪、第二次精确转发这个过程在起作用。理解这套“学源、查目的、泛洪、丢弃”的流程比背任何命令都重要。实训考核里那些“过不了”的题目本质都是在考你有没有看清MAC地址表的变化。1.3 实验课上真正要重点考核的核心能力如果把一节交换机实验课的目标拆开来看其实是四件事会看MAC地址表用show mac address-table或display mac-address查看交换机学到的表项能说清楚每个表项的含义。会改端口属性包括端口所属VLAN、Access或Trunk模式、速率和双工模式。会验证连通性通过ping、ARP缓存表、MAC表的变化来判断网络通不通、问题出在哪一层。会从现象反推原因看到不通能区分是物理层没起来、二层隔离、还是三层路由的问题。说实话配置命令那么长一串真正有区分度的反而是最后一项。考试可能会问你“同一台交换机下两个PC配置了相同网段却ping不通有哪些可能”如果你能从物理层、数据链路层、网络层一步步排查而不是死记“配置了VLAN所以不通”那实验课才算真正过关。2. 实验台上的物理细节console口、指示灯和网线那些坑2.1 用console线连交换机而不是网线——这里最容易卡住很多人第一次做交换机实验第一道坎不是配置命令而是根本连不上设备。交换机前面板密密麻麻的电口是用来接终端的而做命令行配置的入口是背板上的console口长得跟普通网口差不多但用途完全不同。正确接法是把console线一头插到交换机的console口另一头插到电脑。老式console线是RJ45转DB9串口现在基本都是USB转串口了。插好后去设备管理器里看端口号通常显示COM3、COM5之类记下这个号码然后打开终端软件SecureCRT、PuTTY、Xshell都可以新建一个Serial连接参数一般是波特率9600、数据位8、停止位1、无校验、无流控。这几项参数必须和模拟器一致否则屏幕上会输出乱码或者干脆没反应。很多人卡在这一步线都插好了软件也开了屏幕还是黑的。按一下回车试试如果还是没有提示符多半是串口驱动没装或者COM口号选错了。在设备管理器里确认端口是否存在、是否被占用再检查终端软件里选的是不是那个COM号。还有个小细节部分实验箱的console口默认参数不是9600可以试试115200两种都试过再下结论。2.2 看清接口命名和指示灯再动手搞清楚接口命名规则能少走很多弯路。思科模拟器里电口通常叫FastEthernet0/1、FastEthernet0/2千兆口叫GigabitEthernet0/1华为eNSP里叫GE0/0/1、GigabitEthernet0/0/1。命名里的数字含义都是“槽位号/端口号”写配置的时候最容易犯的错就是把0/1和1/0搞混。端口指示灯也很有信息量。多数交换机端口上灯亮表示链路已建立闪动表示正在收发数据。如果你把网线插进交换机端口PC网卡也显示已连接但交换机端口指示灯不亮要么是网线坏了要么是端口被管理员手动关闭了。实验课上遇到这种情况先别急着换线登录交换机敲一条show interfaces status或display interface brief看端口是up还是down、是normal还是disabled一查便知。2.3 直连线与交叉线现在Auto-MDIX帮你兜底但考试还是爱考理论上PC连交换机应该用直连线交换机连交换机或者交换机连路由器应该用交叉线。原因是早期设备发送和接收引脚是固定的必须靠交叉线把两端的一对收、发引脚对调。现在的以太网交换端口基本都支持Auto-MDIX功能可以自动识别对端设备类型并调整引脚方向所以实际实验中随便找根网线基本都能通。但这事在笔试和实训判断题里依然高频出现。题目问你“两台交换机直连应该用什么线”标准答案还是交叉线。这不是过时的知识而是为了考你是否理解以太网的引脚机制。做实验时可以不用纠结看题时得按照经典规则来。3. 第一次上CLI用show命令把交换机“看透”3.1 三种模式的切换是多少实验新手翻车的地方命令行界面看起来吓人其实只有三个模式。最初的是用户模式提示符是Switch只能看状态不能改配置。输入enable进入特权模式提示符变成Switch#这里可以执行各种show命令也能进一步进入配置模式。再输入configure terminal提示符变成Switch(config)#这才算真正进入全局配置模式可以敲命令了。华为设备的模式名略有不同是Huawei和[Huawei]的区别但逻辑一样尖括号只能看方括号能改。实验里最常见的问题就是“命令敲不进去”——多半是模式不对比如在用户模式下直接敲interface系统肯定报错。只要把模式对应关系记清楚命令语法反而好记。3.2 最有用的三个“看病”命令我在做交换机实验时基本只用三个命令就把问题查完了。第一个是看MAC地址表思科用show mac address-table华为用display mac-address。它能告诉你交换机学到了哪些MAC地址、分别从哪个端口学到的。两台PC连在交换机上互ping一次之后表里应该出现两个动态表项各对应一个端口。如果只有一条说明有一台设备的流量根本没到交换机。第二个是看VLAN表思科用show vlan brief华为用display vlan。它能列出交换机上有哪些VLAN、每个VLAN下有哪些端口。划分完VLAN以后检查端口到底在不在自己预期的VLAN里全靠这个命令。第三个是看端口状态思科用show interfaces status华为用display interface brief。它直接告诉你端口是up、down还是disabled。完整的排查顺序就是先确认端口up再确认VLAN归属正确再ping一次并刷新MAC表三步做完问题基本能定位到具体层面。3.3 一套最基础的安全配置改设备名、设特权密码虽然是实验环境我依然建议动手第一步先改设备名和配置密码因为实训平台很多会自动检查这些基础项。思科的命令是Switch(config)# hostname SW1 SW1(config)# enable secret class SW1(config)# interface vlan 1 SW1(config-if)# ip address 192.168.1.254 255.255.255.0 SW1(config-if)# no shutdown SW1(config-if)# exit SW1(config)# ip default-gateway 192.168.1.1华为对应的是Huawei system-view [Huawei] sysname SW1 [SW1] interface vlanif 1 [SW1-Vlanif1] ip address 192.168.1.254 24 [SW1-Vlanif1] quit [SW1] ip route-static 0.0.0.0 0.0.0.0 192.168.1.1改设备名的意义不只是好看。实训考核平台判分时经常读设备名实验指导书里要求叫什么就得叫什么。设置enable secret则能避免误操作时因为权限不足而卡住虽然模拟器里不设密码也能做实验但养成习惯总没错。4. VLAN划分实验一张表如何改变广播域的大小4.1 为什么“ping不通”不等于网线坏了VLAN隔离原理交换机实验最重要的一个章节就是VLAN划分。默认状态下交换机所有端口都在VLAN 1里整个交换机是一个广播域。PC A发一个ARP广播交换机会把它从所有端口转发出去所有连着这台交换机的设备都能收到。当你在交换机上创建了VLAN 10和VLAN 20并把端口分别划进去之后广播域就被这个逻辑上的一张表拆开了。VLAN 10的ARP广播只会发到VLAN 10的成员端口VLAN 20的设备根本收不到。而ping的第一步就是ARP请求ARP请求没人应答自然ping不通。所以实验里看到“同VLAN能通、跨VLAN不通”先不要怀疑线断了这正是VLAN隔离的本意。如果在实验要求里又需要跨VLAN互通那就得在二层隔离的基础上引入路由器做三层转发这是后面单臂路由实验的内容但原理上得先搞清楚。4.2 Access端口与Trunk端口的分工配置VLAN时端口模式是绕不开的。Access端口只能属于一个VLAN它接终端设备比如PC和打印机。数据帧从Access口进入交换机时交换机会给帧打上VLAN标签从Access口出去给PC时又会把标签去掉因为普通PC的网卡不认识802.1Q标签。Trunk端口不一样它用来连接交换机之间可以同时承载多个VLAN的流量。Trunk口上传输的帧都带着802.1Q标签这样对端交换机才知道这个帧属于哪个VLAN。可以这么理解Access口是单行道的门口Trunk口是连接两栋楼之间的主干道主干道上跑的每一辆车都贴着“去哪栋楼”的标签。实验里经常出现“两台交换机之间明明连着线但两边VLAN 10的主机就是不通”的问题。原因十有八九是中间那根线还是Access口或者Trunk口没放行VLAN 10。理解了Access和Trunk的分工排查方向就会非常明确。4.3 一套能直接抄的VLAN划分实验步骤假设有两台PC分别接到交换机0/1和0/2口目标是把它们划分到VLAN 10和VLAN 20里。思科命令如下SW1(config)# vlan 10 SW1(config-vlan)# name Sales SW1(config-vlan)# exit SW1(config)# vlan 20 SW1(config-vlan)# name Tech SW1(config-vlan)# exit SW1(config)# interface fastEthernet 0/1 SW1(config-if)# switchport mode access SW1(config-if)# switchport access vlan 10 SW1(config-if)# exit SW1(config)# interface fastEthernet 0/2 SW1(config-if)# switchport mode access SW1(config-if)# switchport access vlan 20华为版本[SW1] vlan batch 10 20 [SW1] interface gigabitethernet 0/0/1 [SW1-GigabitEthernet0/0/1] port link-type access [SW1-GigabitEthernet0/0/1] port default vlan 10 [SW1-GigabitEthernet0/0/1] quit [SW1] interface gigabitethernet 0/0/2 [SW1-GigabitEthernet0/0/2] port link-type access [SW1-GigabitEthernet0/0/2] port default vlan 20配置完先别急着ping用show vlan brief确认哪些端口在哪些VLAN下。然后把两台PC的IP设为相同网段比如192.168.1.1和192.168.1.2互ping你会发现怎么都ping不通。这个“不通”就印证了VLAN的隔离效果实验结果记录为“跨VLAN二层不可达”。4.4 跨交换机的Trunk配置与“测试不通”的完整检查很多实验把两台交换机连起来要求实现跨设备、同VLAN互通。核心就是Trunk链路。思科配置SW1(config)# interface gigabitethernet 0/1 SW1(config-if)# switchport mode trunk SW1(config-if)# switchport trunk allowed vlan 10,20华为配置[SW1] interface gigabitethernet 0/0/24 [SW1-GigabitEthernet0/0/24] port link-type trunk [SW1-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20两边都配好以后如果同VLAN还是不通按这个顺序检查检查项命令正常状态物理链路show interfaces status两端都upTrunk模式show interfaces trunk两端都是trunk放行VLANshow interfaces trunkallowed vlan包含10和20Native VLANshow interfaces trunk两端的native vlan一致端口归属show vlan brief终端所在端口正确划入VLAN这套表是我实际排查时最常用的。只要链路up、trunk放行、端口归属都对跨交换机同VLAN互通基本不会有问题。如果还不行多半是PC的IP填错或者防火墙开着这就属于网卡配置层面的问题了。5. 最常翻车的三个问题实测排查链路5.1 接口连了PC却起不来Status Down实验里最糟心的情况就是网线插好了但PC显示“网络电缆被拔出”交换机端口灯也不亮。这时候先区分是物理链路问题还是端口配置问题。直观的检查是看交换机的show interfaces status如果端口状态显示down大概率是物理层没起来需要换一根网线、换一个交换机端口或者确认PC网卡有没有被禁用。如果状态显示“err-disabled”或“disabled”则是端口被协议或人为关闭了。人为关闭的原因通常是之前敲过shutdown敲no shutdown就能解。err-disabled则常见于端口安全违规需要shutdown之后再no shutdown恢复。有一次我在实训平台上遇到过这种情况链路指示灯一直是灰色换了网络里的三根线都没用。后来发现是console终端软件串口参数里波特率填错了虽然命令能输进去但设备端根本没正常执行。所以遇到端口起不来先确认自己真的连上了设备再排查物理链路和配置问题顺序别反。5.2 同VLAN能通、跨VLAN不通正常但实验要求通怎么办如果你划分了VLAN同VLAN内能ping通、跨VLAN ping不通恭喜实验现象完全正确这就是二层隔离的结果。但有些实验要求跨VLAN也能通那就必须引入三层设备。经典的方案是单臂路由。把交换机上连路由器的接口配成Trunk然后在路由器上创建子接口每个子接口对应一个VLAN并指定802.1Q封装。思科路由器配置示例Router(config)# interface gi0/0.10 Router(config-subif)# encapsulation dot1Q 10 Router(config-subif)# ip address 192.168.10.254 255.255.255.0 Router(config-subif)# exit Router(config)# interface gi0/0.20 Router(config-subif)# encapsulation dot1Q 20 Router(config-subif)# ip address 192.168.20.254 255.255.255.0华为路由器是[Router] interface gi0/0/0.10 [Router-GigabitEthernet0/0/0.10] dot1q termination vid 10 [Router-GigabitEthernet0/0/0.10] ip address 192.168.10.254 24 [Router-GigabitEthernet0/0/0.10] arp broadcast enablePC的默认网关指向对应VLAN的子接口IP跨VLAN的流量就会从PC到交换机、再从交换机Trunk口交给路由器由路由器做三层转发后再回到另一个VLAN。配置完以后跨VLAN就能ping通了。这个实验做完你才算真正把“二层隔离、三层互通”这条网络设计主线打通。5.3 看到MAC地址漂移先想是不是成环了还有一种比较隐蔽的问题MAC地址表里同一个MAC地址同时出现在两个不同的端口而且来回跳。这种情况叫MAC地址漂移几乎都是物理环路导致的。实验里偶尔会发生这种情况两台交换机之间多插了一根线或者拓扑里存在冗余链路而没有启用生成树协议。交换机收到同一个源的帧一会儿从0/1口进来一会儿从0/2口进来它就不知道该把这个MAC地址绑到哪个口只能不断更新表项转发效率直线下降。排查命令还是show mac address-table。如果你看到同一个MAC在两个端口之间反复出现先检查拓扑里有没有不该存在的连线把环路物理断开再观察MAC表是否稳定。生产环境里解决这个问题靠STP生成树协议自动阻塞冗余端口实验环境里直接拔线最省事。5.4 实训平台上测试用例总过不了的“隐藏扣分点”在各种网络实训平台上做交换机实验经常遇到一种情况你在模拟器里明明验证通了提交后系统却判定不通过。根据我做过的考核经验这类问题通常是以下几个原因。第一设备名和实验要求不一致。很多题目要求设备名为SW1、SW2配置里写成了Switch系统直接判错。第二没有保存配置。模拟器一关配置全没了评测脚本重新加载设备时自然拿不到配置。解决办法是配置完成后输入write或copy running-config startup-config保存。第三拓扑连线后没有刷新端口状态。有些平台启动拓扑后端口需要几秒钟才变为up如果急着提交评测读取的端口状态可能就是down。真实设备上的一个教训是别忽略“保存配置”这一步。你没保存实验报告里写再多设备重新启动后全部归零这个细节虽然不起眼却是很多实训判分里最痛的扣分点。6. 把实验报告写出“可检验的逻辑链”而不是命令流水账6.1 高分报告与低分报告的差别实验报告是很多人的老大难。写得差的报告有一个共同特征把敲过的命令从头到尾抄一遍然后写一句“结果ping通了实验完成”。这种报告在老师眼里等于什么都没写。高分报告的逻辑链是先说明预期——划分VLAN后同VLAN应通、跨VLAN应不通再给出关键命令及注释然后用截图或表格展示验证结果最后结合MAC地址表和VLAN表解释结果背后的原理。比如记录“PC1 ping PC2”时不要只写“不通”要写到“PC1发出ARP广播由于VLAN隔离该广播没有到达PC2所在端口所以PC2不应答ping失败”。这个叙述就是在证明你真的理解了VLAN。写报告时用表格记录验证结果直接能看出你的观察是否完整。下面是我自己常用的记录模板实验项目操作预期结果实际结果原因分析默认VLAN互通PC1 ping PC3通通同VLAN广播可达VLAN隔离PC1 ping PC2不通不通跨VLANARP广播被隔离Trunk放行后互通跨交换机同VLAN通通Trunk带802.1Q标签传递每张表都要能对应到具体配置和现象让人看到数据就能复现你的实验过程。6.2 画一张表胜过十段话数据表与拓扑图的呈现实验报告里拓扑图是刚需但很多人画了拓扑却不标注关键信息。好的拓扑图应该把设备名、接口编号、IP地址、VLAN归属都标在图里。如果实验涉及两台交换机还要在连接线上标注Trunk或Access这样读者一眼就能看懂你的环境。数据表方面除了上面那个验证表MAC地址表快照也是加分项。把show mac address-table的输出粘贴到报告里并圈出关键条目说明为什么这个MAC对应那个端口。比如PC1的MAC应该存在于0/1口PC2的MAC应该存在于0/2口如果实验里有异常还能在表里看到证据。这种呈现方式直接体现你的观察能力而不是只会对着设备敲命令。6.3 交换机实验做完之后我最深的体会做完交换机实验对我个人影响最大的不是记住了多少命令而是形成了一种“从现象反推原因”的排查习惯。以前遇到网络不通我也只会重启网卡、换IP、换网线。现在会先问自己物理层通没通MAC地址表有没有学错端口VLAN隔离是不是把广播给拦了每一层都有对应的观察命令和证据。如果你正准备做交换机实验我最后的建议是遇到“不通”别急着拔线先把show mac address-table、show vlan brief、show interfaces status这三条命令的结果打开对照着看一遍。MAC地址表是证据VLAN表是依据端口状态是前提。三条信息凑齐了90%的问题都能靠推理解决剩下10%才需要去查线缆和电脑配置。把这几分钟观察养成习惯比做完十个实验都有用。
返回列表