QinQ帧格式
QinQ是对802.1Q(VLAN)的扩展,其核心思想是将用户私网VLAN tag封装到公网VLAN tag中,报文带着两层tag穿越服务商的骨干网络,从而为用户提供一种较为简单的二层VPN隧道。QinQ报文有固定的格式,就是在802.1Q的标签之上再打一层802.1Q标签,QinQ报文比802.1Q(VLAN)报文多4字节。
QinQ帧格式
+-----------+-----------+-----------+-----------+-------------+------------------+----------+
| DMAC | SMAC | ETPE | TAG | LEN/ETYPE | Data | FCS |
| 6 Bytes | 6 Bytes | 2 Bytes | 2 Bytes | 2 Bytes | Variable length | 4 Bytes |
+-----------+-----------+-----------+-----------+-------------+------------------+----------+
| |
| | |
| | |
| | |
| | |
+-----------+-----------+-----------+-----------+-----------+-----------+-------------+------------------+----------+
| DMAC | SMAC | ETPE | TAG | ETPE | TAG | LEN/ETYPE | Data | FCS |
| 6 Bytes | 6 Bytes | 2 Bytes | 2 Bytes | 2 Bytes | 2 Bytes | 2 Bytes | Variable length | 4 Bytes |
+-----------+-----------+-----------+-----------+-----------+-----------+-------------+------------------+----------+
| | |
| | |
| | |
| | |
+-----------+--------------+---------+--------------+
| 0x8100 | Priority | CFI | VLAN ID |
+-----------+--------------+---------+--------------+
| 字段 |
长度 |
含义 |
| DMAC |
6字节 |
目的MAC地址,该字段标识帧的接收者。 |
| SMAC |
6字节 |
源MAC地址,该字段标识帧的发送者。 |
| TPID |
2字节 |
TPID(Tag Protocol Identifier,标签协议标识)表示帧类型。取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。对于内层的802.1Q Tag,该值设置为0x8100;对于外层的802.1Q Tag,不同厂商所使用的值可能不相同:0x8100:Huawei路由器使用0x88A8:802.1ad规定外层802.1Q Tag中的TPID为0x88a80x9100:Juniper路由器使用0x9200:Several路由器使用在使用VRP®(Versatile Routing Platform)软件的华为设备上,外层802.1Q Tag缺省情况下值为0x8100,可以通过命令行调整该值。 |
| PRI |
3比特 |
Priority,长度为3比特,表示帧的优先级,取值范围为0~7,值越大优先级越高。当网络拥塞时,优先级高的数据包优先发送。 |
| CFI/DEI |
1比特 |
CFI (Canonical Format Indicator,标准格式指示),长度为1比特,表示MAC地址是否是标准格式。CFI为0说明是标准格式(以太网帧的MAC地址采用低字节在前),CFI为1表示为非标准格式(以太网帧的MAC地址采用高字节在前)。CFI可用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。DEI(Drop Eligible Indicator,丢弃优先级指示),配合PRI字段使用,共同指示帧的丢弃优先级,也就是系统发生了拥塞时,这些报文会被优先丢弃。说明:IEEE 802.1Q定义了CFI字段,而IEEE 802.1ad标准重新定义了CFI字段,规定S-Tag里面的是DEI,C-Tag里面的是CFI。实际应用中,可以根据需要将此比特位用作CFI或者用作DEI。 |
| VID |
12比特 |
VID(LAN ID),长度为12比特,表示该帧所属的VLAN。在使用VRP®(Versatile Routing Platform)软件的华为设备上,可配置的VLAN ID取值范围为1~4094。协议规定0和4095为保留的VLAN ID。 |
| Length/Type |
2字节 |
该字段有两种含义:Length:如果该字段值小于或等于二进制1500(或十六进制0x05DC)时,该字段指后续数据的字节长度,但不包括FCS字段。Type:如果该字段值大于或等于二进制1536(或十六进制0x0600)时,该字段指链路直接封装的上层协议类型。 |
| Data |
42~1500字节 |
QinQ帧的负载(可能包含填充位)。QinQ帧的长度必须为整数字节,因此帧的负载长度不足整数字节,需插入填充字段以保证数据帧的长度为整数字节。说明:IEEE 802.1Q和IEEE 802.1ad标准中并没有定义QinQ帧的最小长度和最大长度。 |
| CRC |
4字节 |
帧校验序列FCS(Frame Check Sequence)是为接收网卡提供判断是否传输错误的一种方法,如果发现错误,丢弃此帧。FCS只是通用叫法,具体的FCS还可以细分多种校验方法。在以太帧中,FCS通常采用循环冗余码校验CRC(Cyclical Redundancy Check)。 |
参考标准
| 标准 |
描述 |
| RFC 3069 |
VLAN Aggregation for Efficient IP Address Allocation |
| IEEE 802.1Q |
IEEE Standards for Local and Metropolitan Area Networks : Virtual Bridged Local Area Networks |
| IEEE 802.1ad |
IEEE Standards for Local and Metropolitan Area Networks: Virtual Bridged Local Area Networks- Amendment 4 |
No comments to display
No comments to display