Access、Hybrid和Trunk三种模式的理解(续)
【经验之谈】虽然理论上来讲交换机与交换机、交换机与路由器连接之间的链路也可以是Access类型的,但在实际的组网应用通常是带标签类型的,可以是Trunk类型,也可以是带标签的Hybird类型。一方面是因为不同网络设备间的通信通常是包含多个VLAN间的通信,而Access类型端口仅允许一个VLAN的数据通过,肯定不行;另一方面,Access类型和不带标签的Hybrid类型在发送数据时是不带标签的,这样一来,对端设备接口接收到来自本端设备任何VLAN的数据后都将打上该接口的PVID所对应的VLAN标签,并且被错误地转发到该VLAN中,这显然不符合实际需求,最终造成无法正常通信。
另外,对于连接用户PC机、服务器主机或者傻瓜式二层交换机设备的端口仅可以是Access类型或者不带标签的Hybrid类型,因为这些设备不能识别带有VLAN标签的数据帧,而这两种类型端口在发送数据时正好是不带VLAN标签的。傻瓜式二层交换机设备所连接的所有设备都将加入到对端交换机端口所加入的一个VLAN中。
【经验之谈】这里所说的数据帧“收”是指交换机端口接收从对端设备发来的数据帧,而不是接收从交换机内部的另一个端口发来的数据帧,因为在交换机内部中传输的数据帧都是带有VLAN标签的,无论是从哪种交换机端口发来的数据帧。同理,这里所说的数据帧“发”是指从交换机端口向对端设备发送数据帧,而不是指本地交换机中一个端口向另一个交换机端口发送数据帧。这一点要特别注意,否则很难理解这些端口的数据接收、发送规则。
二层以太网端口数据帧处理规则
两种链路类型及可传输的帧类型
【经验之谈】交换机在接收到帧后,会根据对应端口类型采取相应的数据收、发处理。如果帧需要通过另一台交换机转发,则该帧必须通过干道链路透传到对端交换设备上。为了保证其它交换设备能够正确处理帧中的VLAN信息,在干道链路上传输的帧必须都打上了VLAN标签。
当交换机最终确定帧出端口后,在将帧发送给主机前需要将VLAN标签从帧中删除,这样主机接收到的帧都是不带VLAN标签的以太网帧,也只有这样主机才可能识别。所以一般情况下,干道链路上传输的都是带VLAN标签的帧,接入链路上传送到的都是不带VLAN标签帧。这样处理的好处是:网络中配置的VLAN信息可以被所有交换设备正确处理,而主机不需要了解VLAN信息。
本文内容摘自:王达博客 —— 用经验诠释Access、Trunk和Hybird端口数据收发规则
补充知识:
标签是tag的意思,是交换机数据交换时候的一个对数据帧的一个处理而已,tag和untag的帧会有不同的交换通路,下面是详细说明:
a)access端口
发送(从交换机内部往外发送):
带有vlan tag:删除tag后,发送
不带vlan tag:不可能出现
接收:
带有vlan tag:若该tag等于该access端口的pvid,则可以接收,进入交换机内部
不带vlan tag:添加该access端口的pvid,进入交换机内部
b)trunk端口(允许发送native VLAN数据的时候,可以不加tag)
发送(从交换机内部往外发送):
带有vlan tag:若tag等于该trunk端口的pvid,则删除tag后发送;否则保留tag直接发送
不带vlan tag:不可能出现
接收:
带有vlan tag:保留该tag,进入交换机内部
不带vlan tag:添加该trunk端口的pvid,进入交换机内部
c)hybrid端口(允许发送多个VLAN数据的时候,可以不加tag)
发送(从交换机内部往外发送):
带有vlan tag:
是否带tag进行发送,取决于用户配置(用户可以配置tagged list,untagged list)
不带vlan tag:不可能出现
接收:
带有vlan tag:保留该tag,进入交换机内部
不带vlan tag:添加该hybrid端口的pvid,进入交换机内部
您阅读这篇文章共花了: