接下来就让我们来依次学习交换机三种不同端口的特征。首先说几个重要过的概念:


3.1 VLAN的几个重要概念介绍

1)PVID:Port VLAN ID,指端口的却省VLAN ID。Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。缺省情况下,Hybrid端口和Trunk端口的缺省VLAN为VLAN 1。PVID主要有两个作用:第一对于接收到的Untag包则添加本端口的PVID再进行转发;第二是接收过滤作用,比如只接收等于PVID的VLAN TAG包。

2)VLAN ID:VLAN TAG包的VLAN ID号,有效范围是1-4094,0和4095都为协议保留值,VLAN ID 0 表示不属于任何VLAN,但携带802.1Q的优先级标签,所以一般被称为Priority-only frame,其一般作为系统使用,用户不可使用和删除。1为系统默认VLAN,即Native VLAN,2-1001是普通的vlan,1006-1024保留仅系统使用,用户不能查看和使用,1002-1005是支持fddi和令牌环的vlan,1025-4095是扩展的vlan。Cisco的专有协议isl,相比之下它仅支持的vlan数目比较少,仅为1-1005。

3)Vlan表:配置VLAN的信息表,表示交换机的各个端口所属于的VLAN ID,当交换机进行交换数据时则查看该表进行业务转发。VLAN表的容量一般支持1-32个VLAN ID。其VLAN表格如下:

VLAN ID
端口号
1
1
1
2
2
3
2
4

★ UNTAG包:指不携带802.1Q信息的普通以太网包。

★ TAG包: 指携带4字节802.1Q信息的VLAN以太网包。

★ Priority-only 包:指VLAN ID为0,优先级为0-7的以太网包。用途:一般用于要求高优先级的重要报文使用,当端口发生拥塞时使其能够优先转发。

★ VLAN间路由:指VLAN间能够互相通信,一般是由路由器和三层交换机实现VLAN间互通,通过IP网段来实现VLAN间的互通。当使能VLAN间路由后,则ARP广播包,多播包以及单播包都能够在VLAN间互相通信。


对于UNTAG包、TAG包以及Priority-only 包的处理过程在下面将一一介绍。


交换机的端口类型:


交换机的端口,可以分为以下三种:

● 访问链接(Access Link)

● 汇聚链接(Trunk Link)

● 混合链接(Hybrid Link)

端口模式主要是指在输入输出端口对VLAN数据包的处理。即在输入端口是Admit All Frames还是Admit Only VLAN Tagged Frames,是 Only frames that share a VID assigned to this bridge port are admitted还是All frames are forwarded;在输出端口输出数据包类型是tagged frames 还是untagged frames。不同的端口模式对数据包的处理不同,下面就介绍一下各个端口模式吧。



3.2 Access端口


Access即用户接入端口,该类型端口只能属于1个VLAN,一般用于连接计算机的端口。


收端口:收到untagged frame,加上端口的PVID和default priority再进行交换转发;对于tagged frame不论VID=PVID还是VID\=PVID则有的厂家是直接丢弃,而有的厂家是能够接收VID=PVID的TAG包。一般Access端口只接收untagged frame,部分产品可能接收tagged frame,我们的REOP、ES011、E4114等都接收VID=PVID的TAG端口包。
发报文:对于VID=PVID的tagged frame去除标签并进行转发。对于VID\=PVID的数据包丢弃不进行转发,untagged frame则无此情况。而我们的REOP、ES011、E4114则对于VID=PVID或VID\=PVID的tagged frame都进行转发处理。
注:所说的删除标签是指删除4字节的VLAN标签,并且CRC经过重新计算。


3.3 Trunk端口

当需要设置跨越多台交换机的VLAN时则需要设置TRUNK功能。
在规划企业级网络时,很有可能会遇到隶属于同一部门的用户分散在同一座建筑物中的不同楼层的情况,这时可能就需要考虑到如何跨越多台交换机设置VLAN的问题了。假设有如下
图所示的网络,且需要将不同楼层的A、C和B、D设置为同一个VLAN。

这时最关键的就是“交换机1和交换机2该如何连接才好呢?” 最简单的方法,自然是在交换机1和交换机2上各设一个红、蓝VLAN专用的接口并互联了。

但是,这个办法从扩展性和管理效率来看都不好。例如,在现有网络基础上再新建VLAN时,为了让这个VLAN能够互通,就需要在交换机间连接新的网线。建筑物楼层间的纵向布线是比较麻烦的,一般不能由基层管理人员随意进行。并且,VLAN越多,楼层间(严格地说是交换机间)互联所需的端口也越来越多,交换机端口的利用效率低是对资源的一种浪费、也限制了网络的扩展。 为了避免这种低效率的连接方式,人们想办法让交换机间互联的网线集中到一根上,这时使用的就是汇聚链接(Trunk Link)。


何谓汇聚链接?

技术领域中把TRUNK翻译为中文是“主干、干线、中继线、长途线” ,不过一般不翻译,直接用原文。而且这个词在不同场合也有不同的解释:

1、在网络的分层结构和宽带的合理分配方面,TRUNK被解释为“端口汇聚”,是带宽扩展和链路备份的一个重要途径。TRUNK把多个物理端口捆绑在一起当作一个逻辑端口使用,可以把多组端口的宽带叠加起来使用。TRUNK技术可以实现TRUNK内部多条链路互为备份的功能,即当一条链路出现故障时,不影响其他链路的工作,同时多链路之间还能实现流量均衡,就像我们熟悉的打印机池和MODEM池一样。

2、在电信网络的语音级的线路中,Trunk指“主干网络、电话干线”,即两个交换局或交换机之间的连接电路或信道,它能够在两端之间进行转接,并提供必要的信令和终端设备。 3、但是在最普遍的路由与交换领域,VLAN的端口聚合也有的叫TRUNK,不过大多数都叫TRUNKING。


所谓Trunking即汇聚端口,该类型端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,一般用于交换机之间或交换机与路由器之间连接的端口;


汇聚链路上流通的数据帧,都被附加了用于识别分属于哪个VLAN的特殊信息。
现在再让我们回过头来考虑一下刚才那个网络如果采用汇聚链路又会如何呢?用户只需要简单地将交换机间互联的端口设定为汇聚链接就可以了。这时使用的网线还是普通的UTP线,而不是什么其他的特殊布线。图例中是交换机间互联,因此需要用交叉线来连接。 接下来,让我们具体看看汇聚链接是如何实现跨越交换机间的VLAN的。 A发送的数据帧从交换机1经过汇聚链路到达交换机2时,在数据帧上附加了表示属于红色VLAN的标记。 交换机2收到数据帧后,经过检查VLAN标识发现这个数据帧是属于红色VLAN的,因此去除标记后根据需要将复原的数据帧只转发给其他属于红色VLAN的端口。这时的转送,是指经过确认目标MAC地址并与MAC地址列表比对后只转发给目标MAC地址所连的端口。只有当数据帧是一个广播帧、多播帧或是目标不明的帧时,它才会被转发到所有属于红色VLAN的端口。 蓝色VLAN发送数据帧时的情形也与此相同。

通过汇聚链路时附加的VLAN识别信息,有可能支持标准的“IEEE 802.1Q”协议,也可能是Cisco产品独有的“ISL(Inter Switch Link)”。如果交换机支持这些规格,那么用户就能够高效率地构筑横跨多台交换机的VLAN。
另外,汇聚链路上流通着多个VLAN的数据,自然负载较重。因此,在设定汇聚链接时,有一个前提就是必须支持100Mbps以上的传输速度。
默认条件下,汇聚链接会转发交换机上存在的所有VLAN的数据。换一个角度看,可以认为汇聚链接(端口)同时属于交换机上所有的VLAN。由于实际应用中很可能并不需要转发所有VLAN的数据,因此为了减轻交换机的负载、也为了减少对带宽的浪费,我们可以通过用户设定限制能够经由汇聚链路互联的VLAN。


另外由于Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID即PVID(port vlan ID)。缺省情况下,Trunk端口的PVID为VLAN 1。如果设置了端口的PVID,当端口接收到不带VLAN Tag的报文后,则加上端口的PVID并将报文转发到属于缺省VLAN的端口;当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。

下面就讲一下Trunk的输入输出端口对数据包的处理:


接收端口:同时都能够接收VID=PVID和VID\=PVID的tagged frame,不改变TAG;对于untaged frame则加上端口的PVID和default priority再进行交换转发,对于priority only tagged frame则添加PVID再进行转发。
发送端口:对于VID=PVID的TAG包则去掉VIDTAG再进行转发。对于VID\=PVID的TAG包则转发不修改TAG,对于UNTAG包则无此情况。


3.4 Hybrid端口


Hybrid即混合端口模式,该类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,交换机与路由器之间,也可以用于交换机与用户计算机的连接。


下面就讲一下 Hybrid的输入输出端口对数据包的处理:
接收端口:同时都能够接收VID=PVID和VID\=PVID的tagged frame,不改变TAG;对于untaged frame则加上端口的PVID和default priority再进行交换转发,对于priority only tagged frame则添加PVID再进行转发。
发送端口:1、判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag, 哪些VLAN是tag)。 2、如果输入为untag包则在输出端口剥离VLAN信息,再发送,如果是tag则直接发送。

Hybrid端口和Trunk端口的区别:

Hybrid端口和Trunk端口的不同之处在于Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置;Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。缺省情况下,Hybrid端口和Trunk端口的缺省VLAN为VLAN 1。如果设置了端口的缺省VLAN ID,当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口;当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。


3.5端口实际处理方式


Hybrid 00 不加标签不去标签

TAG 10 只加标签不去标签
ACCESS 01 只去标签不加标签同时入口过滤不等于PVID的包

PVID 设置范围 1-4094 ,默认值为1(0 为vlanid=NULL,4095保留)


我来解释一下:


收报文:
Acess端口1、收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)。

发报文:
Acess端口: 1、将报文的VLAN信息剥离,直接发送出去。


收报文:
trunk端口: 1、收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃。

发报文:
trunk端口: 1、比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,如果不相等则直接发送!。


收报文:
hybrid端口:1、收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃。

发报文:
hybrid端口:1、判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag, 哪些VLAN是tag)。

2、如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送。