以太网交换机对二层帧的转发处理比较复杂,很多学员都不能很好理解。本实验将对相关概念进行总结,并通过实验进行验证。 一、交换机基本概念
在了解交换机转发规则之前,我们先理解交换机的一些概念,如access、trunk、hybrid和PVID等,这些概念将会经常用到。
1. access
以太网交换机的端口有三种链路类型:access、trunk和hybrid。
access是“接近、进入”的意思。access类型的端口只能属于1个VLAN,从access口出来的数据帧不带VLAN标签,一般用于连接计算机。
2. trunk
“trunk”是“干线、树干”的意思。trunk类型的端口可以属于多个VLAN,可以接收和发送多个VLAN的数据帧,一般用于交换机之间的连接。
trunk端口用来在不同的交换机之间进行互联,以保证在跨越多个交换机上建立的同一个VLAN的成员能够相互通信。与一般的交换机的级联不同,trunk是基于OSI第二层的。
假如没有trunk技术,我们在两个交换机上分别划分了多个VLAN,那么交换机上相同VLAN的成员如果要互通,就需要在每个VLAN上各取1个端口作级联连接。如果交换机上划了10个VLAN,就需要10条级连线,端口效率太低了。
当交换机支持trunk技术时,就比较简单了,只需要在两个交换机之间有一条级联线,并将对应的端口设置为trunk,这条线路就可以承载交换机上所有VLAN的信息。
这样的话,就算交换机上设置了4094个VLAN,也仅需要1个端口就足够了。 3. hybrid
“hybrid”是“混合的”的意思。hybrid口同时兼有access口和trunk口的特点。hybrid类型的端口可以属于多个VLAN,可以接收和发送多个VLAN帧,可以用于交换机之间连接,也可以用于连接用户的计算机。
hybrid端口可以根据需要,设置某些VLAN帧从hybrid口出去时带VLAN标签,某些VLAN帧不带VLAN标签。
4. PVID
在VLAN技术中,PVID是端口的一个重要概念。我们先来理解PVID的含义。
“PVID”是“Port VLAN ID”的缩写,是“端口缺省VLAN ID”的意思,即一个端口缺省属于的VLAN。
PVID的作用是:当一个数据帧进入交换机端口时,如果没有带VLAN标签,且该端口上配置了PVID,那么,该数据帧就会被打上端口的PVID。如果进入的帧已经带有VLAN标签,那么交换机不会再增加VLAN标签,即使端口已经配置了PVID。
二、交换机端口接收数据帧的处理规则
首先,我们要明白交换机的一点原理:
为了快速高效处理,交换机内部的数据帧一律都带有VLAN标签,以统一方式处理,如缺省交换机端口都属VLAN 1,即在交换机内部的数据帧一律都带有VLAN 1的标签。
当交换机从端口收到二层数据帧时: 1. Access端口
(1)收到一个二层帧
(2)判断是否有VLAN标签:没有则转到第3步,有则转到第4步 (3)打上端口的PVID,并进行交换转发
(4)若VLAN标签和PVID一致,转发VLAN帧;否则丢弃
2. trunk端口
(1)收到一个二层帧
(2)判断是否有VLAN标签:没有则转到第3步,有则转到第4步 (3)打上端口的PVID,并进行交换转发
(4)判断该trunk端口是否允许该VLAN帧进入:允许则转发,否则丢弃 (注意:trunk口允许或不允许VLAN帧,是对进入的帧而言的,对出去的帧没有限制。) 3. hybrid端口
(1)收到一个二层帧
(2)判断是否有VLAN标签:没有则转到第3步,有则转到第4步 (3)打上端口的PVID,并进行交换转发
(4)判断该hybrid端口是否允许该VLAN帧进入:允许则转发,否则丢弃 可以看到,trunk口和hybrid口对接收到的数据帧的处理规则是一样的。 四、交换机端口转发数据帧的处理规则 当交换机把数据帧转发出端口时: 1. Access端口
(1)将二层帧的VLAN标签剥离,直接发送出去 2. trunk端口
(1)比较端口的PVID和将要发送二层帧的VLAN标签 (2)如果两者相等则转到第3步,否则转到第4步 (3)剥离VLAN标签,再发送 (4)直接发送 3. hybrid端口
(1)判断VLAN在本端口的属性。用“dis interface”可看到该端口对哪些VLAN是untag,哪些VLAN是tag
(2)如果是untag则转到第3步,如果是tag则转到第4步 (3)剥离VLAN标签,再发送 (4)直接发送 说明:
(1)Hybrid口中允许的VLAN分为untag和tag两类,untag和tag是对出去的帧而言的,对进入的帧没有限制
(2)例如:“Untagged VLAN ID : 2,3”表示VLAN 2和VLAN 3的帧,从本hybrid口发送出去时,将被剥离VLAN标签
(3)例如:“tagged VLAN ID : 4,5”表示VLAN 4和VLAN 5的帧,从本hybrid口发送出去时,不剥离VLAN标签,直接发送
3 实验组网描述及结果验证与解释
(实验1)实验条件:如下图所示,交换机的port 1(e0/2口)和port 2(e0/8口)分别与主机A和B相连,port 1是trunk口,permit vlan id配置为3,PVID配置为3;port 2是access口,vlan id是3,两台主机在同一网段,分别为1.1.1.1和1.1.1.2。
实验结果:主机A ping 主机B,可通。
E 0/2 E 0/8 PCA(1.1.1.1) PCB(1.1.1.2) 交换机配置如下:
[Switch A]vlan 3
[Switch A-vlan3]port ethernet0/8 (access口,属于VLAN 3) [Switch A]interface ethernet 0/2 [Switch A-e0/2]port link-type trunk [Switch A-e0/2]port trunk pvid vlan 3 [Switch A-e0/2]port trunk permit vlan 3
实验解释:
当主机A开始ping主机B时,主机A发送ARP广播帧,询问1.1.1.2的MAC地址。这个广播帧是一个标准的以太网帧,当它进入port 1时,由于port 1是trunk口,PVID是3,根据转发规则,这个ARP帧被打上了VLAN 3的标签,然后在VLAN 3里广播。同时交换机学到了主机A的MAC地址和port 1的对应关系,添加进MAC表里。
由于port 2是access口,属于VLAN 3,所以ARP帧被剥去VLAN 3标签后,从port 2口出来送给了主机B。主机B识别后给予响应。
当主机B发出的响应帧到达port 2时,根据转发规则,被打上了VLAN 3的标签。同时根据MAC表,交换机已经知道主机A和port 1的对应关系,所以这个响应帧被直接送到了port 1。同时交换机学到了主机B的MAC地址和port 2的对应关系,添加进MAC表里。
port 1允许VLAN 3的帧通过,而且PVID是3,所以这个ARP响应帧被剥去了VLAN 3标签,然后送给主机A,可以被主机A识别。
这样通过ARP,相互学到了对方的MAC地址,所以主机A和主机B相互通信的二层帧,就可以像ARP帧一样,根据转发规则到达对方。所以主机A ping 主机B可通。
(实验2)实验条件:同上图所示,将交换机的port 1(e0/2口)和port 2(e0/8口)分别与主机A和B相连,port 1是hybrid口,vlan id配置为3,tagged模式,PVID默认为1。port 2是access口,vlan id是3,两台主机在同一网段,IP地址不变。
交换机配置如下: [Switch A]vlan 3
[Switch A-vlan3]port ethernet0/8 (access口,属于VLAN 3) [Switch A]interface ethernet 0/2 [Switch A-e0/2]port link-type hybrid [Switch A-e0/2]port hybrid pvid vlan 1 (配置PVID,可以不配置,因为缺省是1) [Switch A-e0/2]port hybrid vlan 3 tagged (配置vlanID 为3 untagged模式) 实验结果:主机B ping 主机A,不通。
实验解释: 当主机B没有主机A的ARP表项时,主机B发送ARP广播帧,询问10.1.1.2的MAC地址。同样,这个标准的ARP帧被打上VLAN 3的标签,送到了port 1。
port 1是hybrid口,它把二层帧转发出去的规则如下:
(1)判断该VLAN在本端口的属性。用“dis interface”可看到该端口对哪些VLAN是untag,哪些VLAN是tag
(2)如果是untag则转到第3步,如果是tag则转到第4步 (3)剥离VLAN标签,再发送 (4)直接发送
因为port 1对VLAN 3是tagged,所以port 1直接把VLAN 3帧发送给了主机A。而主机A的网卡是识别不了带了VLAN标签的帧的,所以会认为无效并丢弃它。
(实验3)实验条件:同上图所示,将交换机的port 1(e0/2口)和port 2(e0/8口)分别与主机A和B相连,port 1是hybrid口,vlan id配置为3,untagged模式,PVID配置为3。port 2是access口,vlan id是3,两台主机在同一网段,IP地址不变。
交换机配置如下: [Switch A]vlan 3
[Switch A-vlan3]port ethernet0/8 (access口,属于VLAN 3) [Switch A]interface ethernet 0/2 [Switch A-e0/2]port link-type hybrid
[Switch A-e0/2]port hybrid pvid vlan 3 (配置PVID)
[Switch A-e0/2]port hybrid vlan 3 tagged (配置vlanID 为3 untagged模式)
实验结果: 主机B ping 主机A,可通。
实验解释:对这个测试结果的解释,与上一个实验的解释差不多,可以继承实验六的分析思路。
主机B的ARP查询帧可以到达主机A了, 主机A发出不带VLAN标签的响应帧到了port 1后,因为port 1的PVID已经改为了3,所以帧打上了VLAN 3的标签后,在VLAN 3里转发到了port 2。由于port 2是属于VLAN 3的access口,所以把帧剥掉VLAN 3标签后,可以被主机B的网卡识别。