当前位置:首页>Linux>【Linux 】网络知识点——802.1Q 协议详解(VLAN 标签协议)

【Linux 】网络知识点——802.1Q 协议详解(VLAN 标签协议)

  • 2026-09-09 00:37:48
【Linux 】网络知识点——802.1Q 协议详解(VLAN 标签协议)

802.1Q 是 IEEE 定义的 虚拟局域网(VLAN)标准协议,作用是给以太网帧打标签,让一条物理链路可以同时传输多个逻辑隔离的网段。在车载以太网、企业网、Linux 网桥、交换机中是必用协议。

可以先看看什么是VLAN

肥钦实验室,公众号:404技术实验室【Linux】网络知识点——什么是vlan

一、802.1Q 是干嘛的?

  • 给以太网帧增加 4 字节 VLAN 标签
  • 实现 一条物理线 → 多个逻辑隔离网络
  • 不同 VLAN 之间默认 二层隔离,不能直接互通
  • 车载场景常用:动力域 VLAN、座舱域 VLAN、驾驶域 VLAN 物理共用一条车载以太网,逻辑完全隔离

二、802.1Q 帧格式(最重要)

在 源 MAC 地址 和 类型字段之间 插入 4 字节标签:

普通以太网帧:目的MAC(6) + 源MAC(6) + 类型(2) + 数据

带 802.1Q 标签的帧:目的MAC(6) + 源MAC(6) + **TPID(2) + TCI(2)** + 类型(2) + 数据

4 字节 VLAN 标签结构

  1. TPID(2 字节)固定值:0x8100表示:这是一个 802.1Q VLAN 帧

  2. TCI(2 字节) 包含:

    • 范围:1 ~ 4094
    • 0 和 4095 保留
    • 默认 VLAN 是 VLAN 1
    • PRI(3bit)
      :优先级(QoS,车载非常重要)
    • CFI(1bit)
      :0 表示以太网
    • VID(12bit)
      :VLAN ID

三、关键概念(Linux + 车载必懂)

1. Access 口

  • 只属于 一个 VLAN
  • 发出的帧 不带标签
  • 接入普通设备:ECU、相机、主机

2. Trunk 口(干道口)

  • 同时传输 多个 VLAN
  • 帧 带 802.1Q 标签
  • 用于:交换机↔交换机、交换机↔车载网关
  • 车载以太网核心口类型

3. Native VLAN(缺省 VLAN)

  • Trunk 上不打标签的 VLAN
  • 一般是 VLAN 1
  • 兼容不支持 VLAN 的设备

4. PVID

  • 端口收到 无标签帧 时,给它打的默认 VLAN ID

四、802.1Q 在 Linux 中怎么工作?

Linux 内核支持 802.1Q,通过 子接口(VLAN 接口) 实现。

格式:eth0.10 → 物理网卡 eth0 + VLAN 10

工作流程

  1. 网卡收到带标签的帧 → 内核识别 0x8100
  2. 根据 VID 交给 eth0.VID 子接口
  3. 从子接口发出的帧 → 自动打上对应 VLAN 标签

五、Linux 配置 802.1Q 命令(实战)

1. 加载 802.1Q 模块

modprobe 8021q

2. 创建 VLAN 接口(eth0.10 = VLAN 10)

ip linkaddlink eth0 name eth0.10 type vlan id10

3. 配置 IP 并启动

ip addr add192.168.10.100/24 dev eth0.10ip link set up eth0.10

4. 查看 VLAN 配置

ip -d link show eth0.10cat /proc/net/vlan/config

5. 删除 VLAN

ip link del eth0.10

六、车载以太网 802.1Q 典型用法

  1. 多域隔离
    • VLAN 10:动力域
    • VLAN 20:自动驾驶域
    • VLAN 30:座舱娱乐域
  2. 一条车载以太网(1000BASE-T1)跑所有域
  3. 配合交换机 Trunk 口
  4. PRI 优先级保证自动驾驶流量最高优先

七、常见面试 / 调试要点

1. 802.1Q 标签占多少字节?

4 字节

2. 最大支持多少 VLAN?

4094 个(1~4094)

3. Trunk 和 Access 区别?

  • Trunk:多 VLAN、带标签
  • Access:单 VLAN、不带标签

4. Linux 上抓带 VLAN 标签的包

tcpdump  -i eth0 -e vlan

八、极简总结

802.1Q 是给以太网帧加 4 字节 VLAN 标签 的协议,实现一条物理线多逻辑隔离网络。Linux 用 eth0.vid 子接口支持,车载以太网里是域隔离、QoS、多网段复用的基础协议。

最新文章

随机文章