思科交换机VLAN间通信实战:Trunk模式配置详解
1. 为什么需要Trunk模式刚接触网络配置的朋友可能会好奇为什么交换机之间连接要用Trunk模式简单来说Trunk就像一条高速公路允许不同VLAN的车辆数据包同时通行。我刚开始做网络运维时也犯过把交换机互联端口配置成普通访问模式的错误结果发现不同交换机的相同VLAN设备完全无法通信。举个例子假设公司财务部VLAN 2和人事部VLAN 3分布在两栋办公楼每栋楼都有自己的交换机。如果不启用Trunk财务部的电脑就无法访问另一栋楼财务部的共享打印机。Trunk模式的核心价值在于它能携带多个VLAN的流量穿越交换机之间的链路同时通过802.1Q协议给数据包打上VLAN标签来区分身份。2. 基础环境准备2.1 设备与拓扑规划实战前需要准备两台支持VLAN的思科交换机比如Catalyst 2960我用Packet Tracer模拟器给大家演示。典型拓扑结构是这样的交换机A端口F0/1接财务部PC1VLAN 2F0/2接人事部PC2VLAN 3交换机B端口F0/1接财务部PC3VLAN 2F0/2接人事部PC4VLAN 3交换机互联用交叉线连接两台交换机的F0/24端口建议使用千兆端口注意实际环境中建议使用光纤端口做Trunk链路特别是当VLAN间流量较大时。我在某次项目中就因为用了百兆电口做Trunk导致视频会议卡顿。2.2 VLAN规划表先规划好VLAN ID和名称避免后期混乱VLAN ID名称用途IP网段1默认管理VLAN192.168.1.0/242caiwu财务部192.168.2.0/243renshi人事部192.168.3.0/243. 详细配置步骤3.1 创建VLAN并命名登录交换机A进入特权模式Switch enable Switch# configure terminal创建VLAN并设置描述名称比原始文章更详细的注释Switch(config)# vlan 2 Switch(config-vlan)# name caiwu Switch(config-vlan)# exit Switch(config)# vlan 3 Switch(config-vlan)# name renshi Switch(config-vlan)# exit这里有个小技巧可以用vlan database命令批量创建但新版本IOS推荐用vlan命令。我曾经遇到过2950交换机必须用vlan database的情况这点要注意版本兼容性。3.2 端口分配与模式设置将端口划入对应VLANSwitch(config)# interface fastEthernet 0/1 Switch(config-if)# switchport mode access # 设置为访问模式 Switch(config-if)# switchport access vlan 2 Switch(config-if)# exit Switch(config)# interface fastEthernet 0/2 Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 3 Switch(config-if)# exit3.3 配置Trunk端口关键步骤来了配置交换机互联端口Switch(config)# interface fastEthernet 0/24 Switch(config-if)# switchport mode trunk # 设置为Trunk模式 Switch(config-if)# switchport trunk allowed vlan all # 允许所有VLAN通过 Switch(config-if)# end实际项目中我建议用switchport trunk allowed vlan 2,3明确指定允许的VLAN避免不必要的广播流量。曾经有次安全事件就是因为Trunk端口默认放行了所有VLAN。4. 验证与排错4.1 查看VLAN信息检查配置是否生效Switch# show vlan brief VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active Fa0/3, Fa0/4, Fa0/5, Fa0/6 2 caiwu active Fa0/1 3 renshi active Fa0/24.2 测试Trunk链路用show interface trunk查看Trunk状态Switch# show interfaces trunk Port Mode Encapsulation Status Native vlan Fa0/24 on 802.1q trunking 1如果Status不是trunking可能是两端配置不一致。我遇到过因为一端设了switchport nonegotiate导致链路不起来的坑。4.3 跨交换机Ping测试在PC1(192.168.2.10)上ping PC3(192.168.2.20)C:\ ping 192.168.2.20如果不通按这个顺序排查检查两端PC的防火墙设置确认两台交换机的Trunk端口灯状态用show running-config核对VLAN配置测试直连链路是否物理连通5. 高级配置技巧5.1 Native VLAN修改默认Native VLAN是1出于安全考虑建议修改Switch(config)# interface fastEthernet 0/24 Switch(config-if)# switchport trunk native vlan 999 # 使用不存在的VLAN有次渗透测试发现攻击者正是利用Native VLAN的漏洞获取了管理权限。5.2 Trunk链路聚合对于高流量环境可以绑定多个物理端口Switch(config)# interface port-channel 1 Switch(config-if)# switchport mode trunk Switch(config-if)# exit Switch(config)# interface range fastEthernet 0/23 - 24 Switch(config-if-range)# channel-group 1 mode desirable5.3 VTP协议注意事项如果使用VTP同步VLAN信息要确保域名和模式一致Switch(config)# vtp domain COMPANY Switch(config)# vtp mode server # 或client/transparent但新手我建议先用transparent模式避免误操作影响整个网络。曾经有工程师在Server交换机上误删VLAN导致全网VLAN消失的事故。6. 常见问题解决问题1Trunk链路起来了但VLAN不通检查switchport trunk allowed vlan是否包含目标VLAN确认两端Native VLAN一致问题2能ping通同VLAN但速度慢用show interface counters查看是否有错误包考虑升级Trunk链路为千兆或配置链路聚合问题3配置保存后重启失效记得用copy running-config startup-config检查交换机存储空间是否充足我在处理某客户案例时发现他们的交换机配置丢失是因为闪存坏了。现在养成了定期备份配置的习惯建议你也这样做。可以用TFTP服务器或者直接保存到本地Switch# copy running-config tftp: Address or name of remote host []? 192.168.1.100 Destination filename []? switch1-backup.cfg