写在前面 :
其实这一章节主要是围绕VLAN来讲解,在前面的文章《局域网基本原理》中就有讲到过VLAN,若有同学还不清楚VLAN的作用可以去前面看看这篇文章再回顾一下。
端口类型
交换机的端口类型包括Access端口、Trunk端口和Hybrid端口。这些端口类型与交换机的报文转发原理密切相关。当数据帧进入交换机时,会添加一些字段,其中一个重要的字段是Tag标签,用于标记接口所属的VLAN。Tag标签在全网中是唯一的,通过打上Tag标签,数据包就可以在对应的VLAN中进行传输。
如果一个接口没有配置VLAN会怎样呢?现在交换机中,所有接口都具有VLAN属性,即使没有进行额外的配置,它们默认属于VLAN 1。即使是简单的交换机,它的所有接口也都是默认属于VLAN 1,并且交换机只会处理带有Tag标签的数据包,因此在交换机传输中的数据包字段中必须有VLAN属性。
传统的网络中是只有前面两口端口类型的,后面Hybrid端口是华为提出来的端口类型,他是综合了前面两个接口的功能而诞生的新的接口。接下来展开讲讲每个接口的特性。
Access 端口
这是一个最常见的端口,一般这个端口是作用于电脑这种用户终端。
它必须配置一个vlan属性。
它的工作原理是进来一个没有Tag标签的数据包,会打上一个端口对应vlan的Tag标签,然后转发出去,对于有Tag标签的数据包,会比对是否和端口上配置的vlan是同一个Tag标签。
若是同一个vlan标签就会拆掉这个报文里面的Tag标签然后转发出去。
若是不同的vlan标签就会丢弃这个报文。
这个端口主要就是做一个拆标签打标签的工作,因电脑端的网卡是不识别携带Tag标签的数据包,基于这个原理也可以利用该接口特性配置不同的vlan来对业务进行区分,所以都是靠近终端用户配置该端口。
Trunk 端口
Trunk端口主要用于连接交换机之间的链路,解决多个VLAN需要通过同一接口的情况。
当一个带有Tag标签的数据包到达Trunk端口时,交换机会检查该Tag标签是否在Trunk端口允许通过的VLAN列表中。
如果允许通过,交换机会将该数据包传递给相应的VLAN,而不会拆除Tag标记。
如果Tag标签所属的VLAN不在允许通过的列表中,交换机将丢弃该数据包。
对于没有Tag标签的数据包,到达Trunk端口时,交换机会为其添加Trunk端口配置的PVID(默认为VLAN 1)的Tag标签,以确保正确传递到相应的VLAN。
在配置Trunk端口时,通常需要根据业务需求明确允许通过的VLAN,而不是简单地允许所有VLAN通过(allow-pass all)。
这是因为实际部署中,接入交换机的设备不仅限于计算机终端,还可能包括监控设备、无线接入点等其他设备。许多设备的默认管理IP地址与交换机默认管理VLAN 1的地址在同一网段。为了避免IP冲突,需要精确配置Trunk端口,只允许所需的VLAN通过。
因此,在配置Trunk端口时,建议使用类似"undo port trunk allow-pass vlan 1"的命令明确指定允许通过的VLAN,以避免潜在的IP冲突和安全问题。
Hybrid 端口
该端口其实是就是结合前面两个端口的特性,既可以对多个不同vlan属性的数据包进行拆标记打标记,也可以允许多个vlan通过该端口,所以这个接口既可以是接用户终端,也可以接交换机相连的端口配置。
他的接口属性配置多了一个可自定义 untag(拆标签) 和 tag (打标签)的动作。
当收到一个没有Tag标签的数据包时,会和Trunk的端口的动作是一样的,会打上一个默认的Pvid标签然后发出去。
当有一个带有Tag标签的数据包过来,首先的动作是查看是数据包的Tag标签是端口内允许的tag标签,如果是不匹配的话就会直接丢弃。
匹配就进行下一步,下一步继续检查是否匹配untag列表中vlan标签,若是匹配就会撕掉数据包的Tag标签,若不匹配就正常转发。
整个工作流程下来,其实就是整个数据包处理流程中只是比Trunk多加了一个检查自定义untag和tag的比对。
总结:
其实vlan的核心就是,tag标签,举个简单的例子:就好比如有进入私人Party一样,门口有保安检查来访客户的信息,只有验证完成了身份信息才能进入,不然就会被拒之门外。(主要核对的就是tag标签是否和端口上配置的tag是否一致)
其实有很多时候发现直连链路不通(排除物理层面故障后),或者某些链路异常的时候,端口vlan这些属性通常是需要我们一逐一核对排除,最终发现问题恰恰就是极其简单的,要么是没有放通对应的vlan,要么是放通了 vlan 实际设备上没创建vlan。
充分理解三种端口特性,以后遇见ping不通的时候,可以快速排除vlan因素的干扰。