在思科交换机上配置中继(Trunk)就是通过一条物理链路承载多个VLAN流量,标准命令是switchport mode trunk配合switchport trunk allowed vlan,配置过程不到五分钟,但必须提前统一封装协议和本征VLAN。
思科中继链路配置之前必须搞懂的三件事
很多朋友一上来就敲switchport trunk encapsulation dot1q,结果发现老型号交换机根本不识别这条命令,这里先讲清楚前置知识,避免你走弯路。
中继链路和接入链路的本质区别
接入链路(Access)只属于一个VLAN,端口下的设备完全感知不到VLAN标签的存在,中继链路则不同,它要同时承载多个VLAN的数据帧,每个帧都会被插入802.1Q标签(或ISL标签),这样才能让对端交换机识别它属于哪个VLAN。
行业共识认为,中继链路是园区网汇聚层和核心层之间的血管,没有正确配置中继,跨交换机相同VLAN的终端永远无法互通,PING不通的时候排查方向也容易被带偏。
思科交换机中继命令在不同IOS版本上的差异
- 2960、3560、3850等较新型号,默认支持802.1Q,不需要手动封装
- 2950、3550等老型号,需要先执行
switchport trunk encapsulation dot1q - Catalyst 6500系列如果跑ISL,还要额外处理封装格式匹配问题
配置思科交换机中继命令前,先用show interface gigabitEthernet 0/1 switchport看当前端口模式,输出里如果显示Administrative Mode: dynamic auto,说明端口的DTP(动态中继协议)还在自动协商,这种状态最容易出故障对端是dynamic desirable就能协商成trunk,对端是dynamic auto就会僵持在access。
配置思科交换机中继的具体操作步骤
以两台2960交换机互联为例,拓扑是SW1的Gi0/1接SW2的Gi0/1,VLAN 10和VLAN 20需要跨交换机通信,以下是完整实操流程。
第一步:物理接口和封装检查
SW1# configure terminal
SW1(config)# interface gigabitEthernet 0/1
SW1(config-if)# switchport
SW1(config-if)# switchport trunk encapsulation dot1q
老设备必须手动指定封装,新设备这条命令会提示Command rejected,直接跳过即可,然后确认接口不是路由口,某些三层交换机默认接口是no switchport状态,必须先敲

switchport把它变成二层口。
第二步:设置端口模式为中继
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport trunk native vlan 99
SW1(config-if)# switchport trunk allowed vlan 10,20
switchport mode trunk强制端口成为trunk,不再参与DTP协商switchport trunk native vlan 99把本征VLAN从默认的1改成99,这是安全基线配置switchport trunk allowed vlan只放行需要跨交换机通信的VLAN,不要用allowed vlan all
这里特别提醒:本征VLAN(Native VLAN)在两台交换机上必须一致,否则会报Native VLAN mismatch,这个报错在很多环境下不影响业务,但会造成VLAN 1的广播帧走错路径,建议统一改成99,同时把VLAN 1从中继链路上移除,能有效防止VLAN跳跃攻击。
第三步:在另一台交换机上执行镜像配置
SW2# configure terminal
SW2(config)# interface gigabitEthernet 0/1
SW2(config-if)# switchport
SW2(config-if)# switchport trunk encapsulation dot1q
SW2(config-if)# switchport mode trunk
SW2(config-if)# switchport trunk native vlan 99
SW2(config-if)# switchport trunk allowed vlan 10,20
两边配置完全对称以后,用show interfaces trunk验证,正常的输出会列出端口、模式、封装、本征VLAN和允许的VLAN列表,如果看到Trunking Mode: Dynamic Auto,说明端口的trunk模式没生效,检查是否漏了switchport mode trunk。
第四步:常见问题定位命令
show interfaces trunk
show interfaces switchport
show spanning-tree vlan 10
debug trunk interface gigabitEthernet 0/1
show interfaces trunk能告诉你端口当前是否处于trunking状态,也能看到对端邻居,如果链路一端是trunk另一端是access,这里会显示Status: not-trunking,Spanning-tree检查是因为中继端口参与所有放行VLAN的生成树计算,某些情况下Blocking状态会导致特定VLAN不通。
思科中继链路配置中的五个典型坑
配置命令很简单,真正容易翻车的是下面这些隐藏问题。
DTP协商引发的思科中继端口安全隐患
同一个VLAN的中继链路设计不当,可能让攻击者通过伪装DTP报文把连接交换机的端口强行变成trunk,从而嗅探所有VLAN的流量,防御办法是全局关闭DTP,在接口下执行

switchport nonegotiate,这句话配合switchport mode trunk,端口就不会主动发送DTP帧,中继链路仍然正常工作。
本征VLAN不匹配引发的二层环路风险
两台思科交换机中继连接时,如果A的native vlan是99,B的native vlan是1,CDP会记录错误并持续报错,流量在正常情况下能通,但STP的BPDU会在native vlan里传输,不匹配会让生成树计算错乱,严重时引起广播风暴,配置思科中继链路时,把双方本征VLAN改成同一个非业务VLAN,成本最低且收益最大。
允许VLAN列表过于宽松导致的性能下降
很多人图省事用switchport trunk allowed vlan all,这种做法的坏处是:每个VLAN的广播帧都会经过中继链路,当VLAN数量超过50个时,广播流量会明显占用链路带宽,靠谱的做法是只放行实际需要的VLAN,例如switchport trunk allowed vlan 10,20,30-40。
中继链路配置完成后终端仍然无法访问的排查路径
先看物理端口状态是否为up/up,再看端口模式是否为trunk,然后检查native vlan是否匹配,最后确认终端所在VLAN是否在allowed列表里,四个条件全部满足但还不通,十有八九是VLAN接口(SVI)没启用或IP地址配置错误。
思科中继链路配置多少钱才能搞定
这个问题没有一个标准答案,因为费用取决于场景,如果是自己测试环境,交换机加线缆成本大概几百元到两千元;如果是企业级网络改造,找集成商报价通常包含交换机配置、链路冗余设计和验收测试,单次服务费用常见区间是1500元到5000元,很多朋友问我思科中继链路配置多少钱,我的建议是先把配置能力和排错逻辑搞清楚,毕竟防火墙和路由器的调试费用更高,而且中继链路配置故障引发的业务中断损失远大于这点服务费。
高可用场景下的思科中继配置进阶做法
生产环境中,两条物理链路做中继时通常捆绑成以太通道。
配置以太通道中继
SW1(config)# interface port-channel 1 SW1(config-if)# switchport trunk encapsulation dot1q SW1(config-if)# switchport mode trunk SW1(config-if)# switchport trunk allowed vlan 10,20 SW1(config-if)# switchport trunk native vlan 99 SW1(config-if)# exit SW1(config)# interface range gigabitEthernet 0/1-2 SW1(config-if-range)# channel-group 1 mode active
这里使用LACP主动模式,对端也用active,两边协商成功后show etherchannel summary会显示SU状态,如果看到SD,说明协议协商失败,检查两端channel-group模式是否匹配。
中继链路上的QoS标记
语音VLAN流量需要优先转发,在trunk接口上配置以下命令:
SW1(config-if)# mls qos trust cos
SW1(config-if)# priority-queue out
默认情况下中继端口不信任入向帧的CoS值,mls qos trust cos让交换机直接采用帧自带的优先级标签,对于视频会议和VoIP这种延迟敏感业务,这条配置比改生成树优先级更直接。
思科中继配置常见问题解答
思科交换机中继命令在2950和2960上通用吗?
不通用,2950必须执行switchport trunk encapsulation dot1q,2960默认只支持802.1Q,敲这条命令会报错,以Cisco IOS 12.2为分界线,之后的交换机不需要也不允许手动封装,配置前用show version确认IOS版本。
中继链路和VLAN间路由有什么区别?
中继链路是二层概念,解决的是同一VLAN跨多台交换机通信的问题,VLAN间路由是三层概念,通过SVI或路由器子接口实现不同VLAN互通,一个最简单的理解方式:终端PING不通网关,问题出在三层路由;跨交换机同VLAN终端PING不通,优先检查中继链路,许多线上故障的根源在于两者混淆,把中继当路由排查,白白浪费半小时。
配置思科中继链路后需要重启交换机吗?
不需要,所有trunk相关命令都是热生效,switchport mode trunk执行后端口立即切换模式,但注意执行顺序,部分IOS版本要求先封装后模式,否则报Incorrect config,命令全部敲完后,用copy running-config startup-config保存配置,防止设备断电丢失。
最后给一句总结:思科配置中继的核心只有三步设置封装、切换trunk模式、限定VLAN范围,再用show interfaces trunk验证。 抓住这条主线,不管网络规模多大,配置思路都不会乱。

