交换机的报文转发机制0113C.docx
《交换机的报文转发机制0113C.docx》由会员分享,可在线阅读,更多相关《交换机的报文转发机制0113C.docx(15页珍藏版)》请在冰点文库上搜索。
交换机的报文转发机制0113C
资料编码
产品名称
中低端Lanswitch
使用对象
普通用户
产品版本
编写部门
数通技术支持部
资料版本
交换机的报文转发机制
拟制:
方科星33215
日期:
2003/01/13
审核:
日期:
审核:
日期:
批准:
日期:
华为技术有限公司
版权所有XX
修订记录
日期
修订版本
描述
作者
2003-01-08
完稿
方科星
关键词:
IVLSVL
摘要:
由一个奇怪的故障现象说起,通过这个现象介绍了交换机的转发机制,解释了这种现象的产生的原因并提供了解决方案
缩略语清单:
参考资料清单:
第1章一个奇怪的故障现象
第2章
2.1一个奇怪的故障现象
2.2
组网情况
2.2.1
e0/4
e0/3
S3026
2403H
服务器
PC1
PC2
e0/1
e0/2
e0/3
e0/1
e0/2
S6506
S3526
S3526
S3526
S3526
S3526
S3026
S3526
S3526
S3526
S3026
S3026
S3026
S3026
S3026
S3026
S3026
S3026
S3026
S3026
S3026
S3026
S3026
S3026
S3026
2.2.2
组网说明:
1.S3026上配置PVLAN,primaryvlan是vlan100,包含端口e0/3;secondvlan是vlan101和vlan102,分别包含e0/1和e0/2端口;服务器接在e0/3端口下。
2.
3.S2403H上,端口e0/1和e0/3属于vlan101,端口e0/2和e0/4属于vlan102;PC1接在e0/3下,PC2接在e0/4下。
4.
5.PC1、PC2和服务器在同一网段。
6.
该组网的要求是:
PC1和PC2能正常访问服务器,同时PC1和PC2之间的访问隔离。
7.
8.
故障现象
2.2.3
理论上上面的组网及配置就可以满足需求。
因为在S3026上做的PVLAN可以保证e0/3下的服务器和e0/1和e0/2下的机器互访,同时e0/1和e0/2下的机器被相互隔离,而S2403H上PC1和PC2接的端口由于属于不同的VLAN,所以无法互访。
但是实际的问题是:
当PC1能PING通服务器的时候,PC2无法PING通服务器,这时如果把左边的这根网线拔掉,则PC2能PING通服务器。
同样,当PC2能PING通服务器的时候,PC1却又无法PING通服务器,将右边的网线拔掉则PC1能PING通服务器了。
换句话说,同一时刻只能有一台PC可以PING通服务器。
用S2403F取代S2403H,则PC1和PC2都能同时PING通服务器。
在解释这个奇怪的故障现象之前,先要介绍一个重要的概念:
交换机的报文转发机制。
P设备
NE05
R1602
S6506_2
S6506_1
1.
2.
3.
4.
交换机的报文转发机制
第3章
概述
3.1
交换机的报文转发机制分两种:
SVL和IVL。
SVL:
Sharedvlanlearning,共享式vlan学习。
在这种方式下,MAC地址在整张表中是唯一的,一个MAC地址在地址表中只能有一条记录,一个MAC只能被学习到一个端口上。
IVL:
Independentvlanlearning,独立式vlan学习。
在这种方式下,MAC地址表在逻辑上可以被看成根据VLAN信息分成了很多张表,一个MAC地址可学习到不同VLAN对应的“地址表”上。
MAC地址在不同方式的地址表中的存在可以形象的表示为:
在IVL方式下,MAC2可以学习在VLAN1的“地址表”上,也可以学习在VLAN2的“地址表”上。
而在SVL方式下,MAC2只能有一条记录,只能对应某个VLAN和端口。
1.1.1.1
R1
R2
PC11.1.1.2
网关:
1.1.1.1
1.1.1.3
Iproute0/01.1.1.3
Internet出口
两种转发机制的转发报文的流程
对于SVL方式而言:
交换机先根据目的MAC地址查MAC地址表,找到端口之后,然后判断这个端口所属的VLAN是否和报文携带的VLAN信息对应的VLAN相等,如果相等就转发,否则就丢弃。
如果根据目的MAC没有找到对应的端口,则在报文所属的VLAN内进行广播。
而对于IVL而言:
交换机根据MAC地址和VLAN信息一起查MAC地址表,如果找到对应的端口则转发,否则在报文所属的VLAN内进行广播。
故障分析和解决
第4章
故障分析
4.1
4.2
4.3
S6506
S3526A
S3526B
Interfacevlan100:
10.10.10.1/24
Iproute1.1.1.0/2410.10.10.2
Iproute2.2.2.0/2410.10.10.3
Interfacevlan100:
10.10.10.2/24
Interfacevlan200:
1.1.1.1/24
Iproute2.2.2.0/2410.10.10.1
Interfacevlan100:
10.10.10.3/24
Interfacevlan200:
2.2.2.1/24
Iproute1.1.1.0/2410.10.10.1
4.4
4.5
4.6
4.7
4.8在进行故障分析前,先说明一点:
S2403H是基于SVL转发机制的,S2403F是基于IVL转发机制的。
4.9
假设服务器的MAC地址是MACA,PC1的MAC地址是MAC1,PC2的MAC地址是MAC2。
在使用S2403H的情况下
刚开始PC1的发ARP广播报文,进入到S2403H后,S2403H根据源地址学习规则学习到PC1的记录:
MAC
VLAN
端口
MAC1
101
3
然后该报文从VLAN101的端口广播出去。
服务器收到这个ARP报文后回一个单播报文,这个报文从S2403H的端口e0/1进来,于是S2403H又把服务器的MAC地址学习在端口e0/1上:
MAC
VLAN
端口
MAC1
101
3
MACA
101
1
这时PC1和服务器通信正常。
现在PC2开始PING服务器,ARP广播报文进入S2403H,S2403H先学习PC2的MAC地址,然后将报文从VLAN102广播出去。
服务器响应PC2的ARP请求,回应的报文从e0/2进来,由于S2403H只能把一个MAC地址学习到一个端口上,所以它会把原来学习到的MACA的记录清除,而把MACA学习到端口e0/2上:
MAC
VLAN
端口
MAC1
101
3
MAC2
102
4
MACA
102
2
这时PC2和服务器通信正常。
但是PC1的数据报进入到S2403H后,根据MAC找到对应的端口是e0/2,而端口e0/2对应的VLAN是102,与该报文所属的VLAN101不符,所以被丢弃,不转发。
这就是为什么PC2能PING通服务器而PC1却PING不通服务器的原因。
如果这时把对应的网线拔掉,交换机会把与这个端口相关的记录删除,即把
MACA
102
2
这条记录删除,那么PC1进来的数据报由于在MAC地址表里找不到对应的记录而进行广播,报文从e0/1出去,最后服务器回应的报文又从e0/1进来,对应的MAC地址表项也学习在e0/1上,所以PC1又能和服务器正常通信了。
在使用S2403F的情况下
再看一下为什么在使用S2403F的情况下通信正常。
由于S2403F是基于IVL的,我们可以抽象的认为MAC地址是学习到每个VLAN属于的地址表上的。
开始的时候PC1PING服务器,服务器的响应报文从1端口进来,这时在VLAN101的“地址表”上有两条记录:
MAC
VLAN
端口
MAC1
101
3
MACA
101
1
这两条记录保证了PC1和服务器之间的正常通信。
现在PC2开始PING服务器,服务器的响应报文从2端口进来,这时在VLAN102的“地址表”上也有两条记录:
MAC
VLAN
端口
MAC2
102
4
MACA
102
2
这两条记录也同样保证了PC2和服务器之间的正常通信。
而在实际的MAC地址表里一共是有四条记录:
MAC
VLAN
端口
MAC1
101
3
MACA
101
1
MAC2
102
4
MACA
102
2
P设备
S6506
R1602
故障解决
这种故障是由于交换机本身的转发机制导致的,所以无法从软件上加以改善进行规避,唯一可以做的就是进行设备的更换或是组网的重新规划。
如果采用更换设备的方法,那么可以采取更换为S2403F这样的基于IVL转发机制的设备。
如果是进行组网的改造,那么可以让S3026和S2403H只用一根网线互连,然后把互连的两个端口设成TRUNK端口,把VLAN101、102透传过去。
这样服务器的MAC就只会学习在这一个端口上,也可以保证组网的需求。
总结
表面上这只是一个普通的应用,只用到了交换机的最基本的功能,同时也规避了广播风暴的问题,理论上不会有任何问题。
结果却是交换机的转发机制这一个最最基本的东西给我们的组网造成了麻烦。
随着各种系列的交换机大规模的应用,各式各样的组网也越来越多,越来越复杂。
在实际组网的时候我们可能经常被许多表面现象所迷惑,只考虑到了交换机是否支持某种功能,可以采用什么样的方式规避某些问题,而忽略了交换机自身特别是底层的一些东西。
这也就要求我们不仅仅是了解交换机能实现哪些功能,哪些参数是多少,还要更深入的了解交换机本身的工作原理等东西,这样我们在进行组网规划的时候才会更少犯错误。