交换机的acess/trunk/hybrid三种链路类型+tag与untag

 Tag untag

untag 就是普通的 Ethernet 报文,普通 PC 机的网卡是可以识别这样的报文进行通讯;

tag 报文结构的变化是在源 mac 地址和目的 mac 地址之后,加上了 4bytes vlan 信息,也就是 vlan tag 头;一般来说这样的报文普通 PC 机的网卡是不能识别的。

802.1Q 的帧是在标准以太网帧上插入了 4 个字节的标识。其中包含:

2 个字节的协议标识符( TPID) ,当前置 0x8100 的固定值,表明该帧带有 802.1Q 的标记信息。

2 个字节的标记控制信息( TCI ),包含了三个域。

Priority 域,占 3bits ,表示报文的优先级,取值 0 7 7 为最高优先级, 0 为最低优先级。该域被 802.1p 采用。

规范格式指示符( CFI) 域,占 1bit 0 表示规范格式,应用于以太网; 1 表示非规范格式,应用于 Token Ring

VLAN ID 域,占 12bit ,用于标示 VLAN 的归属。

 

以太网端口有三种链路类型: Access Hybrid Trunk

Access 类型的端口只能属于 1 VLAN ,一般用于连接计算机的端口;

Trunk 类型的端口可以允许多个 VLAN 通过,可以接收和发送多个 VLAN 的报文,一般用于交换机之间连接的端口;

Hybrid 类型的端口可以允许多个 VLAN 通过,可以接收和发送多个 VLAN 的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。

Hybrid 端口和 Trunk 端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时: Hybrid 端口可以允许多个 VLAN 的报文发送时不打标签,而 Trunk 端口只允许缺省 VLAN 的报文发送时不打标签。

 

在这里先要向大家阐明端口的缺省 VLAN 这个概念

 

Access 端口只属于 1 VLAN ,所以它的缺省 VLAN 就是它所在的 VLAN ,不用设置;

Hybrid 端口和 Trunk 端口属于多个 VLAN ,所以需要设置缺省 VLAN ID 。缺省情况下, Hybrid 端口和 Trunk 端口的缺省 VLAN VLAN 1

如果设置了端口的缺省 VLAN ID ,当端口接收到不带 VLAN Tag 的报文后,则将报文转发到属于缺省 VLAN 的端口;当端口发送带有 VLAN Tag 的报文时,如果该报文的 VLAN ID 与端口缺省的 VLAN ID 相同,则系统将去掉报文的 VLAN Tag ,然后再发送该报文。

注: 对于华为交换机缺省 VLAN 被称为“ Pvid Vlan ”,对于思科交换机缺省 VLAN 被称为“ Native Vlan

 

 

交换机接口出入数据处理过程如下:

Acess 端口收报文 :

收到一个报文 , 判断是否有 VLAN 信息:如果没有则打上端口的 PVID ,并进行交换转发 , 如果有则直接丢弃(缺省)

 

Acess 端口发报文:

将报文的 VLAN 信息剥离,直接发送出去   

trunk 端口收报文:

收到一个报文,判断是否有 VLAN 信息:如果没有则打上端口的 PVID ,并进行交换转发,如果有判断该 trunk 端口是否允许该 VLAN 的数据进入:如果可以则直接转发,否则丢弃(因为不是该端口 permit vlan

trunk 端口发报文:

比较端口的 PVID 和将要发送报文的 VLAN 信息,如果两者相等则剥离 VLAN 信息,再发送,如果不相等则直接发送

hybrid 端口收报文:

收到一个报文 , 判断是否有 VLAN 信息:如果没有则打上端口的 PVID ,并进行交换转发,如果有则判断该 hybrid 端口是否允许该 VLAN 的数据进入:如果可以则转发,否则丢弃 ( 此时端口上的 untag 配置是不用考虑的, untag 配置只对发送报文时起作用 )

hybrid 端口发报文:

1 、判断该 VLAN 在本端口的属性( disp interface 即可看到该端口对哪些 VLAN untag ,哪些 VLAN tag

2 、如果是 untag 则剥离 VLAN 信息,再发送,如果是 tag 则直接发送

以下案例可以帮助大家深入理解华为交换机的 hybrid 端口模式

  [Switch-Ethernet0/1]int e0/1

[Switch-Ethernet0/1]port link-type hybrid

[Switch-Ethernet0/1]port hybrid pvid vlan 10

[Switch-Ethernet0/1]port hybrid vlan 10 20 untagged

 

[Switch-Ethernet0/1] int e0/2

[Switch-Ethernet0/2]port link-type hybrid

[Switch-Ethernet0/2]port hybrid pvid vlan 20

[Switch-Ethernet0/2]port hybrid vlan 10 20 untagged

 

此时 inter e0/1 inter e0/2 下的所接的 PC 是可以互通的,但互通时数据所走的往返 vlan 是不同的。

以下以 inter e0/1 下的所接的 pc1 访问 inter e0/2 下的所接的 pc2 为例进行说明

pc1 所发出的数据,由 inter0/1 所在的 pvid vlan10 封装 vlan10 的标记后送入交换机,交换机发现 inter e0/2 允许 vlan 10 的数据通过,于是数据被转发到 inter e0/2 上,由于 inter e0/2 vlan 10 untagged 的,于是交换机此时去除数据包上 vlan10 的标记,以普通包的形式发给 pc2

---------------------------------------------------------------------------------------------------------------------

对于划分了 vlan 的交换机而言,

当交换机的端口工作在 access 模式时:

接受数据包:当 access 端口接收到数据包时,检查数据包是否打有 vlan 标签,如果没有就打上段都的 pvid ,如果有的话就直接丢弃。

发送数据包:当 access 端口发送数据包时,将数据包的标记直接剥离然后转发。

 

当交换机的端口工作在 trunk 模式时:

接受数据包:当 trunk 端口接收到数据包时,检查数据包是否打有 vlan 标签,如果没有就打上端口的 pvid ,如果有标签,检查标签是否允许通过,如果允许就转发,否则丢弃。

发送数据包:当 trunk 端口发送数据包时,首先检查数据包的标签,如果数据包的标签和端口标签一样则去掉标签然后发送,如果不一样则直接发送。

你可能感兴趣的:(IP网)