局域网交换 : 802.1Q

交换机间链路和IEEE 802.1Q帧格式

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

本文档提供有关交换机间链路 (ISL) 和 IEEE 802.1Q 封装的帧字段的基本信息和概要。

先决条件

要求

Cisco 建议您首先了解有关 VLAN 和中继的知识。

使用的组件

本文档不限于特定的软件和硬件版本。中继功能与所使用的硬件有关。有关在 Cisco Catalyst 系列交换机上实施中继的详细信息,请参阅实施中继的系统要求

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

背景理论

中继用于承载属于多个 VLAN、在同一条链路的多台设备间传输的流量。设备可根据数据流的 VLAN 标识符确定数据流所属的 VLAN。VLAN 标识符是与数据封装在一起的标记。ISL 和 802.1Q 是两种封装类型,用于通过中继链路传输来自多个 VLAN 的数据。

ISL 是 Cisco 专有协议,用于互联多个交换机并在交换机之间传输数据流时维护 VLAN 信息。ISL 在全双工或半双工模式下维护以太网链路全线速性能的同时,提供 VLAN 中继功能。ISL 运行于点对点环境中,最多支持 1000 个 VLAN。在 ISL 中,原始帧将经过封装,另外添加一个报头,然后通过中继链接进行传输。接收端将删除报头并将帧转发到指定 VLAN。ISL 使用每 VLAN 生成树 (PVST),即每个 VLAN 运行一个生成树协议 (STP) 实例。PVST 允许为每个 VLAN 优化根交换机的位置,并支持多条中继链路上 VLAN 的负载平衡。

802.1Q 是 IEEE 标准,用于标记中继上的帧,最多支持 4096 个 VLAN。在 802.1Q 中,中继设备会在原始帧中插入一个 4 字节的标记,重新计算帧校验序列 (FCS),然后通过中继链路发送帧。接收端将删除标记并将帧转发到指定 VLAN。802.1Q 不标记本地 VLAN 上的帧。它将标记在中继上传输及接收的所有其他帧。配置 802.1Q 中继时,必须确认在中继两端配置了相同的本地 VLAN。IEEE 802.1Q 定义了一个在本地 VLAN 上运行的生成树实例,用于网络上的所有 VLAN。这称为单生成树 (MST)。它缺乏灵活性以及 ISL 所提供的 PVST 负载平衡功能。但 PVST+ 能够通过 802.1Q 中继保留多生成树拓扑结构。

有关 802.1Q 封装的详细信息,请参阅在使用 802.1Q 封装且运行 Cisco CatOS 系统软件的 Catalyst 4500/4000、5500/5000 及 6500/6000 系列交换机间中继中的 802.1Q 中继的基本特性部分。

有关 Cisco 交换机上 ISL/802.1Q 封装配置的详细信息,请参阅 VLAN 中继协议配置示例和 TechNotes

ISL 帧

ISL 帧由三个主要字段组成:封装帧(原始帧),头部和尾部分别由 ISL 报头和 FCS 封装。

ISL 报头 封装帧 FCS

以下示例是对 ISL 报头的进一步扩展说明。其中包括每个字段的字段缩写和位数:

位数 40 4 4 48 16 24 24
帧字段 DA 类型 用户 SA LEN AAAA03(SNAP) HAS

位数 15 1 16 16 8 到 196,600 位(1 到 24,575 字节) 32
帧字段 VLAN BPDU 索引 RES ENCAP FRAME FCS

字段说明

此部分提供对 ISL 帧字段的详细说明。

DA —目的地址

ISL 数据包的 DA 字段是一个 40 位的目标地址。此地址为多播地址,设置为“0x01-00-0C-00-00”或“0x03-00-0c-00-00”。DA 字段的前 40 位告诉接收方,此数据包采用 ISL 格式。

类型 -帧类型

TYPE 字段由一个 4 位代码组成。TYPE 字段表示被封装的帧的类型,将来可用于表示其他封装帧类型。下表提供了不同 TYPE 代码的定义:

类型代码 含义
0000 以太网
0001 令牌环
0010 FDDI
0011 ATM

用户—用户定义的比特(类型分机)

USER 字段由一个 4 位代码组成。USER 位用于扩展 TYPE 字段的含义。USER 字段的默认值为“0000”。对于以太网帧而言,USER 字段位“0”和“1”表示通过交换机时数据包的优先级。如果数据流的处理方式允许将其更快地转发,则设置为此位的数据包应该利用快速路径。此类路径不是必须要提供的。

USER 代码 含义
XX00 一般优先级
XX01 Priority1
XX10 优先级 2
XX11 最高优先级

SA —源地址

SA 字段是 ISL 数据包的源地址字段。该字段应设置为传输帧的交换机端口的“802.3”MAC 地址。它是一个 48 位值。接收设备可能忽略帧的 SA 字段。

LEN —长度

LEN 字段存储原始数据包的实际包大小,为 16 位值。LEN 字段以字节表示数据包的长度,不包括 DA、TYPE、USER、SA、LEN 和 FCS 字段。不包括的字段总长 18 个字节,因此 LEN 字段表示总长度减去 18 个字节。

AAAA03 (SNAP) — 子网接入协议 (SNAP) 和逻辑链路控制 (LLC)

AAAA03 SNAP 字段为一个 24 位的常量值“0xAAAA03”。

HAS —源地址的海伊比特

HSA 字段是一个 24 位值。此字段表示 SA 字段的前 3 个字节(制造商 ID 部分)。其中必须包含值“0x00-00-0C”。

VLAN —目的地虚拟LAN ID

VLAN 字段是数据包的 VLAN ID。它是一个15位值,用于区分不同VLAN上的帧。此字段通常称为帧的“颜色”。

BPDU —网桥协议数据单元(BPDU)和思科设备发现协议(CDP)指示器

可为 ISL 帧所封装的所有 BPDU 数据包设置 BPDU 字段中的位。生成树算法使用 BPDU 来确定关于网络拓扑结构的信息。还可为所封装的 CDP 和 VLAN 中继协议 (VTP) 帧设置此位。

INDX —索引

INDX 字段显示数据包送出交换机时的源端口索引。该字段只用于诊断目的,可由其他设备设置为任何值。它是一个 16 位值,将在接收数据包中忽略。

RES —保留为令牌环和FDDI

RES 字段是一个 16 位值。该字段用于令牌环或 FDDI 数据包与 ISL 帧封装在一起的情况。如果是令牌环帧,则此处为访问控制 (AC) 和帧控制 (FC) 字段。如果是 FDDI,则 FC 字段置于此字段中最低有效字节 (LSB) 处。例如,FC“0x12”对应的 RES 字段为“0x0012”。对于以太网数据包,RES 字段应全部设置为零。

ENCAP FRAME — 封装的帧

ENCAP FRAME 字段是封装的数据包,包括其自身的循环冗余校验 (CRC) 值,且完全未经修改。内部帧必须包含一个 CRC 值,该值将在删除 ISL 封装字段之后生效。此字段的长度可以是 1 到 24,575 个字节,以满足以太网、令牌环和 FDDI 帧的需要。接收交换机可删除 ISL 封装字段,并在接收到帧时使用该 ENCAP FRAME 字段(按指示用于交换目的,将正确的 VLAN 及其他值与接收到的帧相关联)。

FCS —帧校验序列

FCS 字段包含 4 个字节。此序列包含一个 32 位 CRC 值,该值由发送 MAC 创建,然后由接收 MAC 重新计算,以检查帧是否损坏。FCS 基于 DA、SA、Length/Type 以及 Data 字段生成。附加 ISL 报头后,会基于整个 ISL 数据包计算一个新的 FCS,然后将其添加到帧尾。

注意: 添加新的 FCS 不会改变已封装帧内所包含的原始 FCS。

帧大小

ISL 帧封装为 30 个字节,最小的 FDDI 数据包为 17 个字节。因此,FDDI 的最小 ISL 封装数据包为 47 个字节。最大令牌环数据包为 18,000 个字节。因此,最大 ISL 数据包为 18,000 加上 ISL 报头的 30 个字节,共 18,030 个字节。如果只封装以太网数据包,则 ISL 帧的大小范围为 94 到 1548 个字节。

对于使用 ISL 封装的系统,最大封装长度为 30 个字节,并且不需要分段。因此,如果封装的数据包长度为 1518 个字节,则以太网 ISL 数据包长度为 1548 个字节。另外,如果封装的数据包不是以太网数据包,则最大长度可能会显著增加。评估拓扑是否支持 ISL 数据包大小时,必须考虑这种长度变化。

对于系统,另一种情况是,ISL 数据包包含两个 FCS。第一个 FCS 是为原始数据计算的。数据包封装在 ISL 中后,计算第二个 FCS。如果原始数据包含的 CRC 无效,则在删除 ISL 报头且终端设备检查原始数据 FCS 之前,无法检测到无效 CRC。通常,这对于交换硬件不是问题,但是对于路由器和网络接口卡 (NIC) 可能是个问题。

IEEE 802.1Q 帧

IEEE 802.1Q 使用内部标记机制,该机制在原始以太网帧自身的源地址和 Type/Length 字段之间插入一个 4 字节的标记字段。由于帧发生了改变,因此中继设备会对修改后的帧重新计算帧校验序列。

/image/gif/paws/17056/741_4-1.gif

DA SA TAG TYPE/LEN 数据 FCS

以下示例是对 Tag 字段的进一步扩展说明。其中包括每个字段的字段缩写和位数。

位数 16 3 1 12
帧字段 TPID 优先级 CFI VID

字段说明

此部分提供对 802.1Q 帧字段的详细说明。

TPID —标记协议标识符

标记协议标识符是一个 16 位字段。其值设置为 0x8100,用于将帧标示为 IEEE 802.1Q 标记的帧。

优先级

又称为用户优先级,此 3 位字段指的是 IEEE 802.1p 的优先级。该字段表示帧的优先级别,可用于数据流优先排序。该字段可表示(0 至 7)8 个级别。

CFI —规范格式指示器

规范格式指示符为 1 位字段。如果此字段的值为 1,则 MAC 地址为非规范格式。如果值为 0,则 MAC 地址为规范格式。

VID — VLAN 标识符

VLAN 标识符是一个 12 位字段。它可唯一标识帧所属的 VLAN。该字段的值介于 0 到 4095 之间。

帧大小

802.1Q 标记为 4 个字节。所以,生成的以太网帧的大小可达 1522 个字节。带 802.1Q 标记的以太网帧最小为 68 个字节。

QinQ

QinQ Support 功能可为进入网络的 802.1Q 标记数据包添加另一层 IEEE 802.1Q 标记(称为“metro 标记”或“PE-VLAN”)。目的是通过对已标记的数据包进行标记,生成“双标记”帧,从而扩展 VLAN 空间。扩展的 VLAN 空间允许服务提供商提供特定服务,例如允许特定客户在特定 VLAN 上访问 Internet,同时仍然允许服务提供商为其他 VLAN 上的其他用户提供其他服务类型。

/image/gif/paws/17056/741_4-2.gif

帧大小

接口的默认最大传输单元 (MTU) 为 1500 个字节。为以太网帧附加一个外层 VLAN 标记后,数据包大小将增加 4 个字节。因此,您可以适当增加服务提供商网络上每个接口的 MTU。建议的最小 MTU 为 1504 个字节。

TPID

QinQ 帧包含 VLAN 标记已经修改的标记协议标识符 (TPID) 值。默认情况下,VLAN 标记使用 TPID 字段来标识标记的协议类型。根据 IEEE 802.1Q 中的定义,该字段的值为 0x8100。

通过检查对应的 TPID 值,设备可确定收到的帧承载的是服务提供商 VLAN 标记还是客户 VLAN 标记。接收到帧之后,设备将配置的 TPID 值与帧中 TPID 字段的值进行比较。如果二者匹配,则该帧承载的是对应的 VLAN 标记。例如,如果帧分别承载 TPID 值为 0x9100 和 0x8100 的 VLAN 标记,同时服务提供商 VLAN 标记的 TPID 值配置为 0x9100,客户网络 VLAN 标记的 TPID 值配置为 0x8200,设备将认为该帧仅承载了服务提供商 VLAN 标记,但没有客户 VLAN 标记。

另外,不同供应商的系统可能将 QinQ 帧外层 VLAN 标记的 TPID 设置为不同值。为实现与这些系统的兼容性,您可以修改 TPID 值,使 QinQ 帧发送到公共网络时,承载与特定供应商相同的 TPID 值,从而实现与该供应商设备之间的互操作性。以太网帧的 TPID 与不带 VLAN 标记的帧的协议类型字段位置相同。为避免在网络中转发和处理数据包时出现问题,可将 TPID 值设置为下表中的任意值:

协议类型
ARP 0x0806
PUP 0x0200
RARP 0x8035
IP 0x0800
IPv6 0x86DD
PPPoE 0x8863/0x8864
MPLS 0x8847/0x8848
IS-IS 0x8000
LACP 0x8809
802.1x 0x888E

通常情况下,只要支持 Cisco IOS 功能或协议就支持 QinQ Support 功能。例如,如果可以在子接口上运行 PPPoE,就可以为 PPPoE 配置一个双标记帧。通过转发带双标记 802.1Q 报头的 IP 数据流,IPoQinQ 可支持为终结 QinQ VLAN 标记而添加双标记的 IP 数据包。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 17056