4. VLAN 基础配置:VLAN 概念、Access 与 Trunk 端口、PVID 设置、VLAN 划分实战
各位工程师,今天我们聊 VLAN。说实话,VLAN 这个概念在车载以太网里太基础了,但也是很多人翻车的地方。我见过不少项目,VLAN 配错了,结果摄像头数据跑到娱乐屏上去了,那画面……嗯,你懂的。
4.1 VLAN 到底是什么?
VLAN,全称 Virtual Local Area Network,虚拟局域网。说白了,就是把一个物理交换机,切成几个逻辑上独立的交换机。
为什么要这么做?
- 隔离:ADAS 域的数据和车载娱乐系统的数据不能混在一起。安全第一。
- 减少广播:没有 VLAN,一个 ARP 广播全网都能收到,带宽浪费严重。
- 灵活组网:物理位置不重要,逻辑分组才重要。摄像头在车头,网关在车尾,但可以属于同一个 VLAN。
核心概念:VLAN ID 是 12 位的,范围 1-4094。0 和 4095 保留。车载场景常用 VLAN 1(默认)、VLAN 100(ADAS)、VLAN 200(信息娱乐)。
4.2 Access 端口 vs Trunk 端口
这两个端口类型,是 VLAN 配置的基石。我刚开始做车载项目时,就搞混过 Access 和 Trunk,结果摄像头死活不通。后来才明白,它们干的活完全不一样。
| 特性 | Access 端口 | Trunk 端口 |
|---|---|---|
| 用途 | 连接终端设备(ECU、摄像头、显示器) | 连接交换机之间,或交换机与路由器 |
| VLAN 数量 | 只属于 1 个 VLAN | 可以承载多个 VLAN |
| 帧格式 | 发送不带 Tag 的帧 | 发送带 802.1Q Tag 的帧 |
| PVID 作用 | 接收帧时打上 PVID 的 Tag | 接收 Untagged 帧时打上 PVID 的 Tag |
| 典型场景 | 摄像头接 Access 口,VLAN 100 | 交换机级联,Trunk 口放行 VLAN 100, 200 |
简单记忆法:Access 口是「单 VLAN 专用通道」,Trunk 口是「多 VLAN 高速公路」。
4.3 PVID 设置——最容易踩的坑
PVID,Port VLAN ID。每个端口都有一个 PVID,默认是 1。
它的作用是什么?
- 当端口收到一个不带 Tag 的帧时,交换机会给这个帧打上 PVID 对应的 VLAN Tag。
- 当端口收到一个带 Tag 的帧时,PVID 不生效,直接按 Tag 处理。
我曾经踩过的坑:有一次,我把摄像头的 Access 口 PVID 设成了 100,但 Trunk 口忘了放行 VLAN 100。结果摄像头的数据到了 Trunk 口就被丢弃了。排查了整整两个小时……后来我养成了一个习惯:配完 VLAN 后,一定检查 Trunk 口的 allowed VLAN 列表。
PVID 配置要点:
- Access 口的 PVID 必须等于它所属的 VLAN ID。
- Trunk 口的 PVID 通常保持默认 1,除非有特殊需求。
- Trunk 口收到 Untagged 帧时,会打上 PVID 的 Tag。所以如果 Trunk 口 PVID 是 1,那么 Untagged 帧就属于 VLAN 1。
4.4 VLAN 划分实战——车载场景
我们来看一个实际的车载网络拓扑。假设一辆智能汽车,有 4 个摄像头(前视、后视、左视、右视),1 个 ADAS 域控制器,1 个信息娱乐主机,1 个网关。
需求:
- 摄像头数据只给 ADAS 域控制器,不给娱乐主机。
- 娱乐主机可以访问互联网,但不能访问 ADAS 数据。
- 网关连接 T-Box,可以访问所有 VLAN。
VLAN 规划:
| VLAN ID | 名称 | 成员设备 |
|---|---|---|
| 10 | Camera_VLAN | 4 个摄像头、ADAS 域控制器 |
| 20 | Infotainment_VLAN | 信息娱乐主机、T-Box |
| 1 | Management_VLAN | 网关、所有交换机管理口 |
交换机端口配置:
! 配置摄像头端口(Access 口,VLAN 10)
interface GigabitEthernet0/1
switchport mode access
switchport access vlan 10
spanning-tree portfast
! 配置 ADAS 域控制器端口(Access 口,VLAN 10)
interface GigabitEthernet0/5
switchport mode access
switchport access vlan 10
! 配置娱乐主机端口(Access 口,VLAN 20)
interface GigabitEthernet0/6
switchport mode access
switchport access vlan 20
! 配置网关端口(Trunk 口,放行所有 VLAN)
interface GigabitEthernet0/24
switchport mode trunk
switchport trunk allowed vlan 1,10,20
switchport trunk native vlan 1
个人习惯:我一般把 Trunk 口的 native VLAN 设成 1,这样管理流量不用打 Tag,方便调试。但注意,native VLAN 必须在两端一致,否则会出现 VLAN 泄漏。
4.5 VLAN 划分知识体系
下面这张图,是我自己总结的 VLAN 配置决策流程。每次做新项目,我都会过一遍这个流程,确保不遗漏。
4.6 验证与排障
配置完了,怎么验证?我一般用三步法:
- show vlan brief:查看 VLAN 和端口对应关系。
- show interfaces trunk:查看 Trunk 口状态和 allowed VLAN。
- ping 测试:同 VLAN 内设备互 ping,不同 VLAN 设备不应互通。
避坑指南:我曾经遇到过一个问题,两个交换机 Trunk 口都配好了,但 VLAN 10 的设备就是不通。后来发现,一台交换机的 Trunk 口 native VLAN 是 1,另一台是 10。native VLAN 不一致,导致 Untagged 帧被错误地划分到了不同 VLAN。从那以后,我每次配 Trunk 口都会检查 native VLAN 是否一致。
好了,VLAN 基础配置就讲到这里。记住:Access 口连设备,Trunk 口连交换机,PVID 别搞错,allowed VLAN 别漏掉。做到这四点,VLAN 配置基本不会出大问题。