与VLAN相关的硬件卸载
● NETIF_F_HW_VLAN_CTAG_RX:支持接收 VLAN C-Tag(Customer Tag)
● NETIF_F_HW_VLAN_STAG_RX:支持接收 VLAN S-Tag(Service Tag)
● NETIF_F_HW_VLAN_CTAG_FILTER:支持 VLAN C-Tag 过滤
● NETIF_F_HW_VLAN_STAG_FILTER:支持 VLAN S-Tag 过滤
● NETIF_F_HW_VLAN_CTAG_TX:支持发送 VLAN C-Tag
● NETIF_F_HW_VLAN_STAG_TX:支持发送 VLAN S-Tag
其中:C-Tag 通常用于客户网络,而 S-Tag 用于服务提供商网络
CTag与STag
客户网络和服务提供商网络在 VLAN 标签(VLAN Tag)方面有一些关键差异,主要体现在标签的使用和管理上:
-
客户网络(Customer Network)
- 定义:客户网络是指最终用户或企业内部的网络。它通常由用户自己管理,用于连接用户的各种设备,如计算机、服务器和打印机。
- VLAN Tag:在客户网络中使用的 VLAN 标签通常称为 C-Tag(Customer Tag)。这些标签用于在客户网络内部区分不同的 VLAN。
- 用途:C-Tag 用于将客户网络中的设备划分到不同的 VLAN 中,以实现网络隔离和流量管理。例如,不同部门的设备可以被分配到不同的 VLAN 中,以确保安全性和性能。
-
服务提供商网络(Service Provider Network)
- 定义:服务提供商网络是指由互联网服务提供商(ISP)或其他网络服务提供商管理的网络。它用于连接多个客户网络,并提供广域网(WAN)连接。
- VLAN Tag:在服务提供商网络中使用的 VLAN 标签通常称为 S-Tag(Service Tag)。这些标签用于在服务提供商网络中区分不同的客户流量。
- 用途:S-Tag 用于将不同客户的流量在服务提供商网络中进行隔离和管理。例如,服务提供商可以使用 S-Tag 来确保不同客户的流量不会混淆,从而提供安全和可靠的服务。
如何区分
区分 VLAN 标签是 C-Tag(Customer Tag)还是 S-Tag(Service Tag)主要通过检查 VLAN 标签中的 TPID(Tag Protocol Identifier)字段来实现。
差异 | C-Tag | S-Tag |
---|---|---|
TPID | 0x8100 | 0x88A8 |
标签类型 | 用于客户网络内部,标识客户网络中的 VLAN | 用于服务提供商网络,标识不同客户的流量 |
应用场景 | 主要用于企业或家庭网络内部的流量管理和隔离 | 主要用于企业或家庭网络内部的流量管理和隔离 |
标签处理 | 由客户网络设备(如交换机和路由器)处理 | 由服务提供商网络设备处理,通常在进入服务提供商网络时添加,在离开时移除 |
示例: 在使用 QinQ(双重 VLAN 标签)技术时,客户网络中的数据包会带有 C-Tag,当数据包进入服务提供商网络时,服务提供商会在数据包上添加一个 S-Tag,从而形成双重标签结构。这种方式允许服务提供商在其网络中传输多个客户的流量,而无需为每个客户分配独立的 VLAN ID。
当一个以太网帧携带 VLAN 标签时,可以通过检查 TPID 字段来确定它是 C-Tag 还是 S-Tag。例如:
| DMAC (6 bytes) | SMAC (6 bytes) | TPID (2 bytes) | TCI (2 bytes) | Payload |
● 如果 TPID 字段的值是 0x8100,则该 VLAN 标签是 C-Tag。
● 如果 TPID 字段的值是 0x88A8,则该 VLAN 标签是 S-Tag。