华为交换机三种端口模式

VLAN数据帧格式

要使交换机能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段。IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag),用于标识数据帧所属的VLAN。



在一个VLAN交换网络中,以太网帧主要有以下两种形式:

  • 有标记帧(Tagged帧):加入了4字节VLAN标签的帧。

  • 无标记帧(Untagged帧):原始的、未加入4字节VLAN标签的帧。

以太网链路包括接入链路(Access Link)和干道链路(Trunk Link)。接入链路用于连接交换机和用户终端(如用户主机、服务器、傻瓜交换机等),只可以承载1个VLAN的数据帧。干道链路用于交换机间互连或连接交换机与路由器,可以承载多个不同VLAN的数据帧。在接入链路上传输的帧都是Untagged帧,在干道链路上传输的数据帧都是Tagged帧。

交换机内部处理的数据帧一律都是Tagged帧。从用户终端接收无标记帧后,交换机会为无标记帧添加VLAN标签,重新计算帧校验序列(FCS),然后通过干道链路发送帧;向用户终端发送帧前,交换机会去除VLAN标签,并通过接入链路向终端发送无标记帧。

 

字段   长度   含义   取值
TPID 2Byte

Tag Protocol Identifier(标签协议标识符),表示数据帧类型。

 

取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。

各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时, 为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致。

PRI 3bit

Priority,表示数据帧的802.1p优先级。

取值范围为0~7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧。

CFI 1bit

Canonical Format Indicator(标准格式指示位),表示MAC地址在不同的传输介质中是否以标准格式进行封装,用于兼容以太网和令牌环网。

CFI取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装。在以太网中,CFI的值为0。

VID  12bit 

VLAN ID,表示该数据帧所属VLAN的编号。

VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094。 
 

 

QinQ报文封装格式

因为IEEE 802.1Q中定义的VLAN Tag域只有12个比特,仅能表示4096个VLAN,无法满足城域以太网中标识大量用户的需求,于是产生了QinQ技术,拓展VLAN的数量空间。QinQ在原有的802.1Q报文的基础上增加一层802.1Q标签,使得VLAN数量增加到4094×4094。

 

 

 

链路类型:

 

 

用户主机和交换机之间的链路为接入链路,交换机与交换机之间的链路为干道链路。

 

PVID

PVID即Port VLAN ID,代表端口的缺省VLAN。交换机从对端设备收到的帧有可能是Untagged的数据帧,但所有以太网帧在交换机中都是以Tagged的形式来被处理和转发的,因此交换机必须给端口收到的Untagged数据帧添加上Tag。 为了实现此目的,必须为交换机配置端口的缺省VLAN。当该端口收到Untagged数据帧时,交换机将给它加上该缺省VLAN的VLAN Tag。

 

Access端口:

➢Access 端口是交换机上用来连接用户主机的端口,它只能连接接入链路,并且只能允许唯一的 VLAN ID 通过本端口。 
➢Access 端口收发数据帧的规则如下: 


➢1.如果该端口从链路上收到的帧是untagged (不带VLAN标签), 交换机将强制加上该端口的PVID。如果该端口从链路上收到的帧是tagged (带 VLAN标签),交换机会检查该标签内的VLANID。当VLAN ID与该端口的PVID相同时,接收该报文。当VLAN ID与该端口的PVID不同时,丢弃该报文。


➢2.当一个Tagged帧从本交换机其他端口到达Access端口后,交换机检查该Tagged帧的VID与PVID是否相同,如相同则先剥离帧的Tag,然后再发送。如不同则丢弃。


➢Access 端口发往对端设备的以太网帧永远是不带标签的帧。

总结:

Access端口在转发数据前会移除VLAN Tag。

Access端口在收到数据后会添加VLAN Tag,VL AN ID和端口的PVID相同。

 

实验:

在都是access端口上配置vlan,从pc16 ping pc17 仍然可以通信,实验证明access在转发的时候会剥夺vlan tag,并且受到数据会添加此端口的PVID

 

相关命令:

# 创建vlan
[Huawei]vlan 2
# 进入接口
[Huawei-vlan2]int e0/0/1
# 设置端口类型
[Huawei-Ethernet0/0/1]port link-type access
# 设置PVID 
[Huawei-Ethernet0/0/1]port default vlan 2 

 

Trunk端口:

描述:

PC 18 能ping PC20

PC 19 能ping PC21

PC 18 不能与PC19互ping 

PC 20 不能与PC21互ping 

 

●当Trunk端口收到帧时,如果该帧不包含Tag,将添加上端口的PVID;如果该帧包含Tag,则不改变。


●当Trunk端口发送帧时,该帧的VLANID在Trunk的允许发送列表中:若与端口的PVID相同时,则剥离Tag发送;若与端口的PVID不同时,则直接发送。

 

相关命令:

# 设置接口类型为Access
[Huawei-Ethernet0/0/2]port link-type access 
# 划分vlan
[Huawei-Ethernet0/0/2]port default vlan 20

# 设置接口类型为Trunk
[Huawei-GigabitEthernet0/0/1]port link-type trunk 
# 设置Trunk允许通过列表为all
[Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan all

 

 

◆Trunk端口是交换机上用来和其他交换机连接的端口,它只能连接干道链路。Trunk端口允许多个VLAN的帧(带Tag标记)通过。


◆在本示例中,在两台交换机连接主机的端口为Access端口,PVID 如图所示。SW10和SW11互连的端口为Trunk端口,PVID都为1,此Trunk链路允许所有VLAN的流量通过

  当SWA转发VLAN1的数据帧时会剥离VLAN标签(因为PVID是1 跟PVID一致就会剥夺tag ),然后发送到Trunk链路上。而在转发VLAN20的数据帧时,不剥离VLAN标签直接转发到Trunk链路上。

 

Hybrid端口:

描述:

PC 22 能ping server

PC 23 能ping server

PC 22 与 PC 23 不能互ping

 

●Hybrid端口既可以连接主机,又可以连接交换机。

●Hybrid端口可以以Tagged 或Untagged方式加入VLAN 。


●Hybrid端口除了要配置PVID外,还需要配置Untagged VL AN ID列表和TaggedVLAN ID列表,这两个列表中所有VLAN的帧都允许通过这个Hybrid端口 , 华为设备默认的端口类型是Hybrid。

 

相关命令:

 

# 快速创建vlan
[Huawei]vlan batch 2 3 100
# 设置接口vlan
# 需要注意的是华为设备默认是hybrid口,少了一部设置接口的步骤。
# 还有就是如果设置Access口并且设置了除了vlan 1的其他vlan需要先设回vlan 1 再转成hybrid口才能设置成功
[Huawei-Ethernet0/0/1]port hybrid pvid vlan 2
# 设置untag表 允许通过 vlan 2 和vlan 100 ,通过剥夺tag,没有tag发送出去
[Huawei-Ethernet0/0/1]port hybrid untagged vlan 2 100
# 设置交换机与交换机之间的tag表 允许通过vlan 2 3 100 ,通过不剥夺tag,照原tag发送出去,所以PC和交换机之间不能设置tag表,PC不能处理tag
[Huawei-GigabitEthernet0/0/1]port hybrid tagged vlan 2 3 100

 

Hybrid端口收发数据帧的规则如下:

1.当接收到对端设备发送的不带Tag的数据帧时,会添加该端口的PVID,如果PVID在允许通过的VLAN ID列表中,则接收该报文,否则丢弃该报文。

 当接收到对端设备发送的带Tag的数据帧时,检查VLAN ID 是否在允许通过的VLAN ID列表中。如果VLAN ID在接口允许通过的VLAN ID列表中,则接收该报文,否则丢弃该报文。


2. Hybrid 端口发送数据帧时,将检查该接口是否允许该VLAN数据帧通过。如果允许通过,则可以通过命令配置发送时是否携带Tag。

 

其实吧,也没那么复杂,在上面的拓扑图里面,PC22 发往 server的时候,PC是不带tag的,所以e0/0/1接口看他没有tag 就拿自己PVID的给了它,也就是VLAN 2,然后看自己的两个表里面untag跟tag表,发现untag有 vlan 2 和vlan 100 ,包含了,就允许通过,此时它是不会剥夺标签的(交换机内部处理的时候不会剥离标签)。然后再到g0/0/1口出去,发现vlan 2 在tag表里面,就允许通过,也不剥夺,在另一个交换机另一端g0/0/1口也是这种情况,接着到了e0/0/1口发现vlan 2 在untag表里面就剥夺了tag标签,发往server。

posted @ 2023-03-02 10:39  0x1e61  阅读(568)  评论(0编辑  收藏  举报