1. 跨交换机VLAN通信的核心原理
想象一下你在一栋写字楼里工作,不同部门分布在不同的楼层。财务部在10楼,市场部在20楼,两个部门需要保持内部沟通但又不能互相干扰。这就是VLAN技术的现实映射——它像虚拟的楼层一样,在物理网络中划分出逻辑隔离的空间。
Trunk链路则是连接不同楼层(交换机)的电梯通道。普通Access端口就像办公室门牌号(比如1001代表10楼1号房间),而Trunk端口则是可以识别所有楼层标签的智能电梯。当财务部的数据包要从10楼到达另一栋楼的10楼时,Trunk链路会给数据包贴上"10楼专属"的标签(VLAN ID),确保它不会被送到20楼。
802.1Q封装协议是这个过程中的关键。它就像快递面单,在原始数据帧的源MAC地址后插入4字节的标签,其中包含:
- 12位VLAN ID(可表示4094个VLAN)
- 3位优先级(用于QoS服务质量)
- 1位标准标识(0表示802.1Q)
Switch(config-if)# switchport trunk encapsulation dot1q // 指定封装协议2. 实验环境搭建要点
在Packet Tracer中搭建环境时,我习惯先画拓扑图再拖设备。对于这个实验,你需要:
- 两台2960交换机(Switch0和Switch1)
- 四台PC机(PC1-PC4)
- 使用直通线(铜缆图标)连接:
- PC1 → Switch0 Fa0/2
- PC2 → Switch0 Fa0/3
- PC3 → Switch1 Fa0/2
- PC4 → Switch1 Fa0/3
- 用交叉线(闪电图标)连接Switch0 Fa0/1 ↔ Switch1 Fa0/1
IP规划表应该这样设计:
| 设备 | VLAN | IP地址 | 子网掩码 |
|---|---|---|---|
| PC1 | 10 | 192.168.10.1 | 255.255.255.0 |
| PC2 | 20 | 192.168.20.1 | 255.255.255.0 |
| PC3 | 20 | 192.168.20.2 | 255.255.255.0 |
| PC4 | 10 | 192.168.10.2 | 255.255.255.0 |
注意:Packet Tracer 6.0之后版本会自动识别线缆类型,但手动选择更稳妥。我曾经因为错选成串行线,排查了半小时连通性问题。
3. 详细配置步骤解析
3.1 创建VLAN并命名
先在两台交换机上执行相同操作:
Switch> enable Switch# configure terminal Switch(config)# vlan 10 Switch(config-vlan)# name Finance // 建议用部门名而非编号 Switch(config-vlan)# exit Switch(config)# vlan 20 Switch(config-vlan)# name Marketing Switch(config-vlan)# exit易错点:有些同学会漏掉exit命令,导致后续配置在vlan子模式下执行。我建议每完成一个配置块就执行end返回特权模式。
3.2 端口分配技巧
Access端口配置有两种方式:
逐端口配置(适合精确控制):
Switch0(config)# interface fa0/2 Switch0(config-if)# switchport mode access Switch0(config-if)# switchport access vlan 10批量配置(效率更高):
Switch0(config)# interface range fa0/2 - 3 Switch0(config-if-range)# switchport mode access Switch0(config-if-range)# switchport access vlan 10 Switch0(config-if-range)# exit Switch0(config)# interface fa0/3 Switch0(config-if)# switchport access vlan 20 // 单独修改fa0/3
3.3 Trunk配置的三种模式
在交换机互联端口上:
Switch0(config)# interface fa0/1 Switch0(config-if)# switchport mode trunk // 强制Trunk模式实际上Trunk有三种协商模式:
- on(强制):
switchport mode trunk - desirable(主动协商):
switchport mode dynamic desirable - auto(被动响应):
switchport mode dynamic auto
实验环境中建议用强制模式。有次我用auto模式,两台交换机死活不协商,后来发现是模拟器的bug。
4. 验证与排错指南
4.1 关键验证命令
Switch# show vlan brief // 查看VLAN划分 Switch# show interfaces trunk // 检查Trunk状态 Switch# show interfaces fa0/1 switchport // 查看端口详细模式理想输出示例:
Port Mode Encapsulation Status Native vlan Fa0/1 trunk 802.1q trunking 14.2 常见故障排查
现象1:PC1 ping不通PC4
- 检查项:
- 两台PC是否在同一VLAN
- Trunk两端端口是否都是trunk模式
- IP地址是否在同一子网
现象2:show interfaces trunk显示空
- 解决方案:
Switch(config-if)# switchport trunk allowed vlan all // 允许所有VLAN通过 Switch(config-if)# no shutdown
实测技巧:在Packet Tracer中,右键交换机选择"CLI"比从物理界面点console更快。用tab键可以自动补全命令,比如输入sh int后按tab会自动补全为show interfaces。
5. 企业级应用实例
某次我帮学校图书馆改造网络,需要实现:
- 电子阅览室(VLAN 30)在三层交换机A
- 图书管理系统(VLAN 40)在二层交换机B
- 门禁系统(VLAN 50)在二层交换机C
核心配置:
// 核心交换机配置 interface GigabitEthernet1/0/1 switchport trunk encapsulation dot1q switchport mode trunk switchport trunk allowed vlan 30,40,50 spanning-tree portfast trunk // 接入交换机配置 interface GigabitEthernet0/1 switchport mode trunk switchport trunk native vlan 999 // 设置非1的本征VLAN这个案例让我深刻理解:Trunk链路就像网络高速公路,而VLAN标签就是不同车道的导流标识。合理规划VLAN ID就像设计车道编号,要预留扩展空间(比如跳着编号,留出空档)。
6. 安全增强建议
在企业环境中,我通常会追加这些配置:
// 关闭未使用端口 interface range fa0/4-24 shutdown // 设置Trunk端口安全 interface fa0/1 switchport nonegotiate // 禁止自动协商 switchport trunk allowed vlan 10,20 // 白名单 storm-control broadcast level 50 // 抑制广播风暴曾经有次网络攻击就是通过伪造大量带VLAN标签的数据包进行的。配置switchport trunk allowed vlan后,非法VLAN的数据会被自动丢弃。
7. 扩展实验建议
掌握基础配置后,可以尝试:
Native VLAN修改实验:
interface fa0/1 switchport trunk native vlan 100 // 修改本征VLAN记得两端要一致,否则会出现VLAN跳跃攻击风险。
VLAN修剪实验:
vtp pruning // 自动修剪不必要的VLAN流量QoS标记实验:
mls qos trust cos // 基于802.1Q优先级字段进行流量分类
这些实验能帮你理解Trunk链路在真实网络中的完整应用场景。我建议每完成一个实验就用write命令保存配置,Packet Tracer重启后配置会丢失这个坑我踩过好几次。