[SWA]vlan batch 22 33 //使用batch可批量创建VLAN
[SWA]int e0/0/1
[SWA-Ethernet0/0/1]port link-type access //将端口类型配置为Access
[SWA-Ethernet0/0/1]port default vlan 22 //将端口划分到VLAN22
[SWA-Ethernet0/0/1]int e0/0/2
[SWA-Ethernet0/0/2]port link-type access
[SWA-Ethernet0/0/2]port default vlan 22
[SWA-Ethernet0/0/2]quit
[SWA] port-group VLAN33 //也可以定义多个端口为一组的方式一次性将VLAN划入
[SWA-port-group-vlan33]group-member e0/0/3 to e0/0/4
[SWA-port-group-vlan33]port link-type access
[SWA-port-group-vlan33]port default vlan 33
同理配置SWB的VLAN划分,配置完成后,可使用“display vlan”查看VLAN的信息:
VLAN的工作原理其实是对交换机的MAC地址表进行划分,每一个VLAN都会对应一张MAC地址表。所以交换机上只有同一VLAN的PC才能进行通信,那么现在PC1要和另外一台交换机上的PC5通信,SWA收到PC1的数据帧后查询VLAN22的MAC地址表进行转发,由于目标主机PC5是连接在SWB上,SWA需要将数据帧转发给SWB,再由SWB转发给PC5。那么SWA和SWB级联的G0/0/1端口是不是也应该划分到VLAN22呢?这样才会出现在VLAN22的MAC地址表中,数据帧才会被转发到SWB。如果现在VLAN33内的主机也想互相通信怎么办呢?按这种逻辑我们还需要再拉一根级联线,把新的互联端口G0/0/2划入到VLAN33中。若要使两台交换机之间的多个VLAN可以相互通信需要在两台交换机间连多条线,这样既浪费线缆又浪费交换机端口,我们能不能把同一端口同时被划分到多个VLAN中呢?答案是肯定的,这种端口我们称为Trunk端口,而交换机之间的这条Trunk主干线链路上可以传输多种VLAN数据帧。
华为交换机trunk配置:
[SWA]int g0/0/1
[SWA-GigabitEthernet0/0/1]port link-type trunk //将端口类型配置为Trunk
[SWA-GigabitEthernet0/0/1]port trunk allow-pass vlan 22 33 //配置允许通过的VLAN,如果允许所有VLAN设为all
两台交换机配置完trunk后,同VLAN的主机就可以跨交换机进行通信了。我们对PC1 ping PC5时通过Wireshark工具对SWA的trunk端口G0/0/1接口进行抓包如下:
可以看到在二层数据帧多了一个叫802.1Q的标签,这就是IEEE组织定义的通用标准trunk干线传输协议,也被称为Dot1Q,802.1Q的帧是在原来的以太网帧头中的源MAC地址后增加了一个4个字节的802.1Q帧头,新增标签头中的4个字节信息如下:
- Type网络类型:2字节的标签协议标识,值为0x8100,如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
- PRI优先级:3比特,取值为0~7标识帧的优先级,值越大优先级越高。当交换机阻塞时,优先发送优先级高的数据帧。
- CFI令牌环标识:1比特,用于区分以太网帧、FDDI帧和令牌环网帧。在以太网中,CFI的值为0。
- VLAN ID:12比特,所以最大可以支持4096个VLAN,可配置的VLAN ID取值范围为0~4095,指明该数据帧属于哪个VLAN。
我们在来总结一下划分VLAN时配置的端口类型及其工作原理。
Access端口
Access端口是交换机上用于连接主机终端的端口类型,并且Access端口只能属于一个VLAN,如果当交换机access端口收到一个无标签的原始数据帧时,会打上端口PVID(Port VLAD ID)的VLAN标签,如果收到一个带标签tag的数据帧,则会检查该数据帧的VLAN ID和接口的PVID是否一致,如果一致则接收该数据帧,不一致则丢弃。当access端口发送带标签的数据帧时,会先剥离数据帧的VLAN标签,还原成原始数据帧后再进行发送。
Trunk端口
Trunk端口是交换机和交换机之间的互联端口类型,trunk端口可以属于多个VLAN,Trunk端口收发数据帧规则为如果Trunk端口收到一个无标签的数据帧时会打上端口PVID的VLAN标签,这个VLAN标签我们称为本地VLAN或缺省VLAN,默认的缺省VLAN为vlan 1。如果trunk端口收到一个带标签tag的数据帧,将标签的VLAN ID和Trunk端口允许通过的VLAN列表做对比,如果允许通过则接收该数据帧,否则进行丢弃。当Trunk端口转发一个带标签的数据帧时,将标签中的VLAN ID和Trunk端口允许通过的VLAN列表做对比,如果允许通过则转发该数据帧,否则丢弃,因为如果trunk端口不允许某一个VLAN通过,那么该端口也不会出现在这个VLAN的MAC地址表中,也就不能进行转发了。以下是划分VLAN后交换机的MAC地址表:
所以以上PC1和PC5通信过程为:
- SWA从Access端口收到PC1发来的原始数据帧会打上Access端口的PVID标签VLAN22。
- SWA查询对应VLAN22的MAC地址表,从Trunk端口G0/0/1转发出去。
- SWB从Trunk端口G0/0/1收到带标签VLAN22的数据帧后,将标签中的VLAN ID和Trunk端口允许通过的VLAN列表进行对比,VLAN22允许通过,SWB接收这个数据帧。
- SWB查询对应VLAN22的MAC地址表并从Access端口E0/0/1发送出去。
- Access端口E0/0/1剥离VLAN标签还原成原始数据帧发送给主机PC5。
- 这样就实现了不同交换机同一VLAN下主机间的通信。
我们可以使用“display port vlan active”查看端口类型、PVID和标签情况。
Hybrid端口
Hybird端口是华为交换机默认的端口类型,它是一种混合端口,同时具备Access和Trunk端口的特性,Hybrid端口既可以连接主机终端,又可以用于交换机互联。
我们将上述Access+Trunk方式转换为Hybrid模式,配置如下:
[SWA]vlan batch 22 33
[SWA]int e0/0/1
[SWA-Ethernet0/0/1] port hybrid untagged vlan 22 //配置端口Untagged VLAN22
[SWA-Ethernet0/0/1]port hybrid pvid vlan 22 //配置端口PVID为VLAN22
[SWA-Ethernet0/0/1]int g0/0/1
[SWB-GigabitEthernet0/0/1]port hybrid tagged vlan 22 33 //配置端口允许通过VLAN22和33
同理配置完其它信息,查看以下信息只是端口类型为hybrid,PVID和VLAN list情况与Access+Trunk模式相同,所以转发方式也是一样的道理,这样同VLAN主机就可以相互通信了。
但是这里这里还有一些区别,Hybrid端口可以配置允许多个VLAN的报文发送时不打标签,而Access端口只属于1个VLAN也就是它所在的VLAN不打标签,Trunk端口则只允许缺省VLAN的报文发送时不打标签。
以上就是交换机端口在vlan技术中应用时常见端口模式介绍了,关于更多的网络知识欢迎大家关注,谢谢!