交换机对大数据帧地处理规则.docx
- 文档编号:12002767
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:18
- 大小:315.16KB
交换机对大数据帧地处理规则.docx
《交换机对大数据帧地处理规则.docx》由会员分享,可在线阅读,更多相关《交换机对大数据帧地处理规则.docx(18页珍藏版)》请在冰豆网上搜索。
交换机对大数据帧地处理规则
交换机对数据帧的处理规则
(仅供内部使用)
华为技术有限公司
版权所有XX
Catalog目录
FigureList图目录
交换机对数据帧的处理规则
Keywords关键词:
交换机LANswitchVLANPVID
Abstract摘要:
以太网交换机对数据帧的转发处理比较复杂,很多同事都不是很清楚。
本文将对此问题进行总结,并通过实验进行验证。
Listofabbreviations缩略语清单:
Abbreviations缩略语
Fullspelling英文全名
Chineseexplanation中文解释
LANswitch
LocalAreaNetworkswitch
局域网交换机
ARP
AddressResolutionProtocol
地址解析协议
MAC
MediumAccessControl
介质访问控制
IP
InternetProtocol
因特网协议
VLAN
VirtualLocalAreaNetwork
虚拟局域网
PVID
PortVLANID
端口缺省VLANID
ICMP
InternetControlMessageProtocol
因特网控制消息协议
一、概述
以太网交换机对二层帧的转发处理比较复杂,很多同事都不是很清楚。
本文将对此问题进行总结,并通过实验进行验证。
二、交换机基本概念
在了解交换机转发规则之前,我们先理解交换机的一些概念,如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”是“PortVLANID”的缩写,是“端口缺省VLANID”的意思,即一个端口缺省属于的VLAN。
PVID的作用是:
当一个数据帧进入交换机端口时,如果没有带VLAN标签,且该端口上配置了PVID,那么,该数据帧就会被打上端口的PVID。
如果进入的帧已经带有VLAN标签,那么交换机不会再增加VLAN标签,即使端口已经配置了PVID。
三、交换机端口接收数据帧的处理规则
首先,我们要明白交换机的一点原理:
为了快速高效处理,交换机内部的数据帧一律都带有VLAN标签,以统一方式处理。
当交换机从端口收到二层数据帧时:
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在本端口的属性。
用“disinterface”可看到该端口对哪些VLAN是untag,哪些VLAN是tag
(2)如果是untag则转到第3步,如果是tag则转到第4步
(3)剥离VLAN标签,再发送
(4)直接发送
说明:
(1)Hybrid口中允许的VLAN分为untag和tag两类,untag和tag是对出去的帧而言的,对进入的帧没有限制
(2)例如:
“UntaggedVLANID:
2,3”表示VLAN2和VLAN3的帧,从本hybrid口发送出去时,将被剥离VLAN标签
(3)例如:
“taggedVLANID:
4,5”表示VLAN4和VLAN5的帧,从本hybrid口发送出去时,不剥离VLAN标签,直接发送
五、交换机转发数据帧的一个浅显比喻
以上介绍的交换机对数据帧的处理原则,比较枯燥,也不容易理解。
我们用一个浅显的例子来比喻一下,以形象地理解。
1.旅客进入候机室
我们把交换机比作机场的候机室,所有不同航班的旅客(相当于不同VLAN的数据帧)都通过候机室进行“转发”。
旅客可能会从四面八方、从不同的“入口”进入候机室,“入口”会有所不同(相当于端口有access、trunk和hybrid类型)。
不同航班的旅客,手里拿的机票会不一样(相当于打了不同VLAN标签的数据帧)。
候机室的有些入口,如access入口,是有检票功能的。
当旅客拿有机票进入时,会检查机票和本access入口通往的航班(相当于缺省PVID)是否一致。
一致则让旅客进入;不一致,则拒绝旅客进入(直接丢弃)。
就像到海南的机票,却在北京入口处检票一样,当然不让旅客进入了。
如果旅客没有机票,则access入口会让他买本航班的机票(打上本端口的PVID)。
如果候机室的入口是trunk入口,也就是说这个入口是公共的入口,那么,持不同航班机票(相当于不同VLAN标签)的旅客可以带着机票进入。
当然,如果trunk入口不允许某些航班不在此入口进入,则会把这些航班的旅客拦住的(直接丢弃)。
如果允许,则让这些允许的航班的旅客带着机票,从trunk入口进入。
当然,如果旅客没有机票,入口处会让你买票的(打上端口的PVID)。
如果候机室的入口是hybrid类型的,其情形和trunk类型时是一样的。
2.旅客走出候机室
现在,我们已经知道,在候机室(交换机)内部,所有旅客都是带有机票的了(交换机内部的所有数据帧都带有VLAN标签,以方便统一处理)。
在候机室内部,旅客们怎么知道各自该往哪里走呢?
旅客们抬头一看,发现了一块巨大的电子公告牌,上面显示着某某航班从哪个出口登机,登机时间是什么,等等(这个电子公告牌对应的是交换机内部的MAC表。
MAC表指明了目的MAC地址和到达此目的MAC地址的出口的对应关系。
登机时间可理解为MAC表项的老化时间)。
所以,旅客们就知道各自要怎么找到出口了。
如果出口是access出口,那么,出口通往的就是飞机了(对应地,access口一般接的是计算机)。
access出口会把旅客的机票收下来(剥掉VLAN标签),把旅客送到飞机上(对应地,是access出口剥去VLAN标签,把VLAN帧变成标准的以太网帧,发送给计算机)。
如果出口是trunk出口,那么,这个trunk出口连接的是另外一个候机室。
如果旅客的机票与trunk出口的默认航班(端口缺省PVID)一致,他就知道:
我的航班的出口是这个trunk出口,所以,trunk出口会把旅客的机票没收下来(剥掉VLAN标签),旅客也就可以放心地出去了。
如果机票与trunk出口的默认航班(缺省PVID)不一致,他就知道,我的航班不在本trunk出口,是在后面出口检票,所以trunk出口会让旅客带着机票出去(相当于把VLAN帧透传出去)。
如果出口是hybrid口,它兼有access出口和trunk出口的特点,即某些航班的旅客可以在hybrid出口处检票后登机,某些航班的旅客可以带着机票走向另外的入口。
当hybrid出口设置了对某些航班进行检票(untagged)时,它就相当于access出口的功能,收下旅客的机票(剥离VLAN标签),再把旅客送出去。
当hybrid出口设置了对某些航班不进行检票(tagged)时,旅客可以带着机票走出去,这时候hybrid出口又相当trunk出口。
六、交换机转发规则的实验验证
在对交换机的转发规则比较了解了之后,我们开始用具体的实验对规则进行验证。
需要说明的是:
以下实验所用到的交换机,LS1为:
QuidwayS3026C,LS2为:
QuidwayS3526C。
在只有1个交换机的组网中,采用的交换机是LS2,即QuidwayS3526C。
主机A和主机B是普通的计算机,它们的网卡都不能识别VLAN帧。
1.实验一
实验组网:
图1实验一端口设置图
实验条件:
如图1,交换机的port1和port2分别与主机A和B相连,主机A和主机B在同一网段。
LS1的port1、LS2的port1和port2都是access口,属于VLAN3。
LS1的port2是trunk口,permitvlanid配置为3,PVID为默认值1。
实验结果:
主机Aping主机B,不通。
实验解释:
当主机A开始ping主机B时,主机A发送ARP广播帧,询问10.1.1.3的MAC地址。
这个广播帧是一个标准的以太网帧,当它进入LS1的port1时,被打上了VLAN3的标签,然后在VLAN3里广播。
由于LS1的port2是trunk口,PVID是1,配置为允许VLAN3帧通过,所以,根据转发规则,LS1的port2将把这个VLAN3帧发送(透传)给LS2的port1。
当access口收到一个VLAN帧时,根据规则,它会把VLAN标签和access口的PVID进行比较,如果相等则接收并转发;如果不相等则丢弃。
本实验中刚好相等,所以LS2的port1接收并转发了这个带VLAN3的ARP帧。
ARP帧被LS2的port2收到后,剥离VLAN3标签,发给了主机B。
主机B可以识别不带VLAN的帧,并开始对ARP帧进行响应。
同理,主机B的ARP响应帧进入LS2的port2,打上了VLAN3标签,从LS2的port1出来时,剥去VLAN3标签。
当这个不带标签的普通帧到达了LS1的port2时,根据规则,被打上了PVID为1的标签,即打上VLAN1标签,在VLAN1中转发。
由于主机A所连接的access口属于VLAN3,所以不能收到ARP响应帧。
测试过程中,在主机B上抓包结果如下:
可见,主机B已经收到主机A的ARP帧了,也发出了应答帧。
但这个应答帧不能到达主机A。
主机A因为没有收到响应帧,还在不停地发出ARP广播帧。
所以在这种情况下,主机Aping主机B不通。
2.实验二
实验组网:
图2实验二端口设置图
实验条件:
如图2,交换机的port1和port2分别与主机A和B相连,主机A和主机B在同一网段。
LS1的port1、LS2的port1和port2都是access口,属于VLAN3。
LS1的port2是trunk口,permitvlanid配置为3,PVID配置为3。
实验结果:
主机Aping主机B,可通。
实验解释:
本实验和实验一很相似,只是把PVID从1改为3。
我们继承一下实验一的分析思路。
当不带标签的ARP响应帧到达了LS1的port2时,因为这时候PVID是3,根据规则,打上VLAN3的标签,然后在VLAN3里广播。
由于主机A所连接的access口属于VLAN3,所以能够收到ARP响应帧。
测试过程中,主机B抓包结果如下:
可见,主机A发过来的ARP帧已经被主机A收到,而主机A发出的应答帧也被主机A收到了,后面的ICMP数据帧也和ARP帧一样,可以互相到达对方。
所以在这种情况下,主机Aping主机B可通。
3.实验三
实验组网:
图3实验三端口设置图
实验条件:
如图3,交换机的port1和port2分别与主机A和B相连,port1是trunk口,permitvlanid配置为3,PVID为默认值1;port2是access口,vlanid是3,两台主机在同一网段。
实验结果:
主机Bping主机A不通。
实验解释:
当主机B开始ping主机A时,主机B发送ARP广播帧,询问10.1.1.2的MAC地址。
这个广播帧是一个标准的以太网帧,当它进入port2时,被打上了VLAN3的标签,然后在VLAN3里广播。
由于port1是trunk口,也配置为允许VLAN3帧通过,最重要的一点:
PVID是1,所以,根据转发规则,port1将把这个VLAN3帧透传给主机A,而主机A因为不识别带VLAN3标签的帧,所以无法对ARP帧进行响应。
所以在这种情况下,主Bping主机A不通。
4.实验四
实验组网:
图4实验四端口设置图
实验条件:
如图4,交换机的port1和port2分别与主机A和B相连,port1是trunk口,permitvlanid配置为3,PVID配置为3;port2是access口,vlanid是3,两台主机在同一网段。
实验结果:
主机Aping主机B,可通。
实验解释:
在主机B处抓包,抓包结果如下:
当主机A开始ping主机B时,主机A发送ARP广播帧,询问10.1.1.3的MAC地址。
这个广播帧是一个标准的以太网帧,当它进入port1时,由于port1是trunk口,PVID是3,根据转发规则,这个ARP帧被打上了VLAN3的标签,然后在VLAN3里广播。
同时交换机学到了主机A的MAC地址和port1的对应关系,添加进MAC表里。
由于port2是access口,属于VLAN3,所以ARP帧被剥去VLAN3标签后,从port2口出来送给了主机B。
主机B识别后给予响应。
当主机B发出的响应帧到达port2时,根据转发规则,被打上了VLAN3的标签。
同时根据MAC表,交换机已经知道主机A和port1的对应关系,所以这个响应帧被直接送到了port1。
同时交换机学到了主机B的MAC地址和port2的对应关系,添加进MAC表里。
port1允许VLAN3的帧通过,而且PVID是3,所以这个ARP响应帧被剥去了VLAN3标签,然后送给主机A,可以被主机A识别。
这样通过ARP,相互学到了对方的MAC地址,所以主机A和主机B相互通信的二层帧,就可以像ARP帧一样,根据转发规则到达对方。
所以主机Aping主机B可通。
5.实验五
实验组网:
图5实验五端口设置图
实验条件:
如图5,交换机的port1和port2分别与主机A和B相连,port1是hybrid口,vlanid配置为3,tagged模式,PVID默认为1。
port2是access口,vlanid是3,两台主机在同一网段。
实验结果:
主机Bping主机A,不通。
实验解释:
当主机B没有主机A的ARP表项时,主机B发送ARP广播帧,询问10.1.1.2的MAC地址。
同样,这个标准的ARP帧被打上VLAN3的标签,送到了port1。
port1是hybrid口,它把二层帧转发出去的规则如下:
(1)判断该VLAN在本端口的属性。
用“disinterface”可看到该端口对哪些VLAN是untag,哪些VLAN是tag
(2)如果是untag则转到第3步,如果是tag则转到第4步
(3)剥离VLAN标签,再发送
(4)直接发送
因为port1对VLAN3是tagged,所以port1直接把VLAN3帧发送给了主机A。
而主机A的网卡是识别不了带了VLAN标签的帧的,所以会认为无效并丢弃它。
所以主机Bping主机A不通。
6.实验六
实验组网:
图6实验六端口设置图
实验条件:
如图6,交换机的port1和port2分别与主机A和B相连,port1是hybrid口,vlanid配置为3,untagged模式,PVID默认为1。
port2是access口,vlanid是3,两台主机在同一网段。
实验结果:
主机Bping主机A,不通。
实验解释:
本实验与实验五很相似,只是设置hybrid口对VLAN3是untagged。
根据实验三的描述,以及hybrid口的帧转发规则,现在ARP广播帧是可以到达主机A了,而主机A也开始对这个ARP帧进行回复响应。
但当这个标准的ARP响应帧进入hybrid口,会有什么情况呢?
根据hybrid口收到帧的转发规则:
(1)收到一个二层帧
(2)判断是否有VLAN标签:
没有则转到第3步,有则转到第4步
(3)打上端口的PVID,并进行交换转发
(4)判断该hybrid端口是否允许该VLAN帧进入:
允许则转发,不允许则丢弃
hybrid口的PVID是1,所以port1会给ARP响应帧打上VLAN1的标签,在VLAN1里进行转发。
而port2是属于VLAN3,是收不到这个ARP响应帧的。
所以主机Bping主机A不通。
7.实验七
实验组网:
图7实验七端口设置图
实验条件:
如图7,交换机的port1和port2分别与主机A和B相连,port1是hybrid口,vlanid配置为3,untagged模式,PVID配置为3。
port2是access口,vlanid是3,两台主机在同一网段。
实验结果:
主机Bping主机A,可通。
实验解释:
对这个测试结果的解释,与上一个实验的解释差不多,可以继承实验六的分析思路。
主机B的ARP查询帧可以到达主机A了,主机A发出不带VLAN标签的响应帧到了port1后,因为port1的PVID已经改为了3,所以帧打上了VLAN3的标签后,在VLAN3里转发到了port2。
由于port2是属于VLAN3的access口,所以把帧剥掉VLAN3标签后,可以被主机B的网卡识别。
这里讨论的是ARP帧,如果是ICMP数据帧,因为都是二层的数据帧,所以也能相互到达对方。
所以主机Bping主机A,可通。
8.实验八
实验组网:
图8实验八端口设置图
实验条件:
如图8,交换机的port1和port2分别与主机A和B相连,port1是hybrid口,vlanid配置为3,tagged模式,PVID配置为3。
port2是access口,vlanid是3,两台主机在同一网段。
实验结果:
主机Bping主机A,不通。
实验解释:
这个实验和实验五很相似,只是把port1的PVID从1改为3。
我们可以这样来简单分析:
主机A发出的帧可以被主机B收到,但主机B发出的帧到了port1后,因为hybrid模式的port1对VLAN3是tagged,根据转发规则,port1将把带了VLAN3的帧直接发送(透传)给了主机A,而主机A的网卡因为不能识别而丢弃。
所以主机Bping主机A不通。
七、总结
在学习二层交换机或者VLAN技术的时候,相信很多初学者对PVID、trunk等概念模糊不清,对二层数据帧的转发,包括普通帧和VLAN帧的转发规则不是很清楚。
本文试着总结交换机端口对二层数据帧的处理规则,然后用一个浅显的比喻作为说明,最后通过实验进行实际的验证,希望对学习二层交换技术的同事有一定的帮助。
我们可以看到,在3G分组域IP承载网络中,路由器、交换机和三层交换机之间的关系错综复杂,启用了很多不同的协议,也划分了很多不同的VLAN。
但无论网络层或以上层次多么复杂,最终应用层数据会封装成IP报文,而IP报文又封装成二层的数据帧进行转发。
所以,理解交换机对二层帧的转发规则,对于我们分析和优化网络性能、进行IP网络设计都具有相当实用和重要的意义。
由于水平有限,不足和错误之处,恳请批评指正,谢谢!
八、附录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交换机 数据 处理 规则