分类: 网络与安全
2019-09-08 21:33:26
原文地址:用经验诠释二层以太网端口和链路类型 作者:茶乡浪子
在华为交换机中主要包括:Access(访问)、Trunk(干道)和Hybrid(混合)、QinQ这四种二层以太网端口。在本节介绍的基于端口VLAN划分方式中可以把前三种二层交换机以太网端口加入到特定的VLAN中,但是其它所有VLAN划分方式都只能添加Hybrid类型端口。QinQ端口仅用于支持QinQ协议,不能用于VLAN划分。
下面具体介绍华为交换机的Access、Trunk、Hybrid和QinQ这四种二层以太网端口的基本特性和数据帧发、发规则。
l Access端口
Access端口主要是用来连接用户主机的二层以太网端口。它有一种最主要的特性就是:仅允许一个VLAN的帧通过,反过来也就是Access端口仅可以加入到一个VLAN中,且Access端口发送的以太网帧永远是Untagged(不带标签)的。
l Trunk端口
Trunk端口是用来连接与其他交换机的二层以太网端口。它的最主要特性就是允许多个VLAN的帧通过,并且所发送的以太网帧都是带标签的,除了发送VLAN ID与PVID(Port Default VLAN ID,端口缺省VLAN ID)一致的VLAN帧。
l Hybrid端口
Hybrid端口可以说是以上Access端口和Trunk端口的混合体,具有它们共同的特等性,是一种特殊的二层以太网端口。正因如此,Hybrid端口既可以连接用户主机,又可以连接其他交换机、路由器设备。同时Hybrid端口又允许一个,或多个VLAN的帧通过,并可选择以带标签,或者不带标签的方式发送数据帧。
l QinQ端口
QinQ端口是专用于QinQ协议的二层以太网端口。它可以给数据帧加上双层VLAN标签,即在原来标签的基础上,给帧加上一个新的标签,从而可以支持多达4094×4094个VLAN,满足企业用户网络对VLAN数量更高的需求。S1700和S2700SI不支持QinQ类型端口。
【经验之谈】虽然理论上来讲交换机与交换机、交换机与路由器连接之间的链路也可以是Access类型的,但在实际的组网应用通常是带标签类型的,可以是Trunk类型,也可以是带标签的Hybird类型。一方面是因为不同网络设备间的通信通常是包含多个VLAN间的通信,而Access类型端口仅允许一个VLAN的数据通过,肯定不行;另一方面,Access类型和不带标签的Hybrid类型在发送数据时是不带标签的,这样一来,对端设备接口接收到来自本端设备任何VLAN的数据后都将打上该接口的PVID所对应的VLAN标签,并且被错误地转发到该VLAN中,这显然不符合实际需求,最终造成无法正常通信。
另外,对于连接用户PC机、服务器主机或者傻瓜式二层交换机设备的端口仅可以是Access类型或者不带标签的Hybrid类型,因为这些设备不能识别带有VLAN标签的数据帧,而这两种类型端口在发送数据时正好是不带VLAN标签的。傻瓜式二层交换机设备所连接的所有设备都将加入到对端交换机端口所加入的一个VLAN中。
以上Access、Trunk和Hybrid三种类型二层以太网端口都可以配置一个缺省VLAN,对应的VLAN ID为PVID。但端口类型不同,其缺省VLAN的含义也有所不同。Aceess端口的缺省VLAN就是Access端口所加入的VLAN,因为Aceess端口只能加入一个VLAN。但Trunk和Hybrid端口的缺省VLAN需要通过命令配置指定,因为它们都相当于加入了多个VLAN,缺省都是VLAN1。有关缺省VLAN的具体配置方法将在本章后面介绍Trunk和Hybrid端口配置时会有所体现。
以上Access、Trunk和Hybrid三种类型二层以太网端口在接收和发送数据帧时对帧的处理规则也是不同的,而这些规则直接影响着数据通信的成败,一定要记住。具体如表6-2所示。
【经验之谈】这里所说的数据帧“收”是指交换机端口接收从对端设备发来的数据帧,而不是接收从交换机内部的另一个端口发来的数据帧,因为在交换机内部中传输的数据帧都是带有VLAN标签的,无论是从哪种交换机端口发来的数据帧。同理,这里所说的数据帧“发”是指从交换机端口向对端设备发送数据帧,而不是指本地交换机中一个端口向另一个交换机端口发送数据帧。这一点要特别注意,否则很难理解这些端口的数据接收、发送规则。
表6-2 二层以太网端口数据帧处理规则
端口类型 |
收到不带VLAN标签的帧的处理规则 |
收到带VLAN标签的帧的处理规则 |
发送帧时的处理规则 |
用途 |
Access端口 |
接收该帧,并打上该端口所加入VLAN的VLAN标签 |
当帧中的VLAN ID与端口加入的VLAN的VLAN ID相同时接收该帧,否则丢弃该帧 |
当帧中的VLAN标签与该端口的PVID相同时,则去掉帧中的标签,然后发送该帧,否则丢弃该数据帧。Access端口所发送的帧总是不带VLAN标签的 |
端口只能属于1个VLAN,用于设备与计算机直接连接 |
Trunk端口 |
在帧中打上该端口的缺省的VLAN标签,当此缺省VLAN ID在该端口允许通过的VLAN ID列表里时,接收该帧,否则丢弃该帧 |
当帧中的VLAN ID在该端口允许通过的VLAN ID列表里时,接收该帧,否则丢弃该帧 |
当帧中的VLAN ID与该端口的缺省VLAN ID相同,且是该端口允许通过的VLAN ID时,则去掉帧中的VLAN标签后再发送该帧 当帧中的VLAN ID与该端口的缺省VLAN ID不同,但仍是该端口允许通过的VLAN ID时,保留帧中原有VLAN标签并发送该帧 当帧中的VLAN ID不是该端口允许通过的VLAN ID时,不允许发送 |
端口允许多个VLAN通过,可以接收和发送多个VLAN的帧,一般用于网络设备之间的连接 |
Hybrid端口 |
当帧中的VLAN ID是该端口允许通过的VLAN ID时,则发送该帧(不管帧中的VLAN ID与该端口的缺省VLAN ID是否相同),但可以通过命令配置发送时是否携带原有的VLAN标签(通常只有在与主机连接的链路不需要带VLAN标签) 当帧中的VLAN ID不是该端口允许通过的VLAN ID时,丢弃该帧 |
端口允许多个VLAN通过,可以接收和发送多个VLAN的帧,且既可以用于网络设备之间的连接,也可以用于网络设备与用户设备之间的连接 |
【经验之谈】这里有一个大家争论得比较多的一个问题,那就是帧到达Access端口时交换机是否会为帧打上VLAN标签。因为许多认为既然Access端口所发送的帧都是不打VLAN标签的,所以有人认为Access端口在帧中打上标签是没有任何意义的,也就认为Access端口不会在帧中打上标签。其实这是错误的。
虽然Access端口向对端设备发送数据时是不带VLAN标签的,但是数据到了交换机后还需要一个转发过程,在交换机内部传输中所有数据都是带有VLAN标签的(当然这要求交换机支持VLAN才行),而且也有许多时候数据不是直接转发到目的节点的,而是需要在交换机上进行一些处理(如基于VLAN的策略路由、基于VLAN的ACL等),或者进行端口镜像等管理工作,这些都需要识别这些数据是来自哪个VLAN的用户,毕竟在一个交换机的这么多端口上可能分属于不同的VLAN。
上节介绍的Access、Trunk和Hybrid这三种以太网端口所形成的链路又可归纳成两种以太网链路:接入链路(Access Link)和干道链路(Trunk Link)。它们是根据链路中需要允许通过的VLAN数据帧数量的不同来划分的。
l 接入链路(Access Link):这是交换机直接连接用户主机的链路。通常情况下,主机并不需要知道自己属于哪个VLAN,主机硬件通常也不能识别带有VLAN标签的帧,所以主机通过接入链路发送和接收的数据帧都是Untagged帧。但一定要注意,接入链路不一定只允许来自一个VLAN的数据帧通过,只是Access端口链路才仅允许一个VLAN数据帧通过,在连接用户主机的Hybrid端口链路上同样允许来自多个VLAN的数据帧(不带标签)通过。
l 干道链路(Trunk Link):这是用于交换机间的互连或交换机与路由器之间连接的链路。干道链路可以承载多个不同VLAN数据,数据帧在干道链路传输时,干道链路的两端设备需要能够识别数据帧属于哪个VLAN,所以在干道链路上传输的都是Tagged帧,除了该链路的PVID所属VLAN的帧(默认为VLAN1)。
图6-6显示了以上两种链路类型及所传输的帧类型(带有Tag的帧和Untagged帧),从中可以发现,在交换机设备之间的链路都属于干道链路,传输的是带有Tag的帧;而在交换机与主机设备之间的可以是接入链路,也可以是干道链路,具体要视主机所连接的交换机端口类型而定,但传输的都是Untagged的帧。
图6-6 两种链路类型及可传输的帧类型
【说明】交换机在接收到帧后,会根据对应端口类型采取相应的数据收、发处理。如果帧需要通过另一台交换机转发,则该帧必须通过干道链路透传到对端交换设备上。为了保证其它交换设备能够正确处理帧中的VLAN信息,在干道链路上传输的帧必须都打上了VLAN标签。
当交换机最终确定帧出端口后,在将帧发送给主机前需要将VLAN标签从帧中删除,这样主机接收到的帧都是不带VLAN标签的以太网帧,也只有这样主机才可能识别。所以一般情况下,干道链路上传输的都是带VLAN标签的帧,接入链路上传送到的都是不带VLAN标签帧。这样处理的好处是:网络中配置的VLAN信息可以被所有交换设备正确处理,而主机不需要了解VLAN信息。