爱收集资源网

交换机工作原理及学习方法

网络整理 2023-09-18 19:07

STP的定位

在三层环境中,一组路由器彼此互联,要实现选路,可以运行动态路由选择合同,也可以使用静态路由,可以指定从源抵达目的地通过哪条路径,通过更改路由的属性,例如更改测度值,更改管理距离,而在BGP中还可以更改路径矢量,也叫路径属性,通过操纵那些参数,做一个三层的路径切换,在二层环境中,因为交换机的智能性没有路由器这么强,所以在二层环境中,交换机之间互联,但是当设备之间联接了冗余路径以后,源到目的地走哪条路径,怎么保证源到目的地之间没有支路,但是路径是最优的这个就要借助一个控制层面合同,这个合同叫STP,在讲STP之前,我们先回顾一下交换机的工作原理。

交换机的工作原理

任何设备都有控制层面和数据层面,交换机的控制层面包含的一张表,叫MAC地址表,也叫CAM表,叫内容可轮询储存器。这张表作为交换机的转发表,拿来帮助交换机做网路内的数据转发,这个表上面的三元素,PC的MAC地址,PC所联接的交换机的插口,以及该插口所属的VLAN,通过这个表,交换机就可以晓得通过那个插口收到流量以后再通过那个插口发送出去,这么交换机是怎样学习到这个表呢?交换机有没有类似的动态路由选择合同来学习这种东西呢?应当说是动态交换合同。

答案是没有的,这么能不能手工的写静态表项呢?其实可以写静态MAC地址表项,只是这个形式书写,工作量比较大,不灵活,当PC要常常修改一些联接,做一些迁移,使用静态的表项是没有扩充性的,这么,我们怎么让交换机动态学习这种表项呢?通常使用手动学习,这个手动学习是非常不靠谱的,并且没有其他的更优的学习方法了,只能使用这个方法。

交换机MAC地址表的学习方法

刚开机,交换机的MAC地址表是空的,手动学习的时侯,不管这个帧是谁发的,就会携带一个源MAC地址,这个MAC地址就是设备自身的标示符,当交换机通过一个插口收到一个数据帧然后,才能基于这个数据帧的源MAC地址,接收插口以及这个插口所属的VLAN交换机是干嘛用的,我把这三样地址做一个绑定,就产生了一个MAC地址表项,交换机的学习指的是,只要我收到一个帧然后,我就觉得这个帧的发送者就联接在我这个插口上。

你们想,这些学习方式靠谱吗?虽然是不靠谱的,由于我们不能保证这个发送者就直接联接在这个交换机的插口上,由于在我们的园区网中,在一个交换区块内,交换机之间也会互联,交换机之间还是中继链路,中继链路是可以允许多个VLAN通行的,这个时侯假如在交换机之间联接了多根中继链路,大家认为会发生哪些样的事情呢?

在这个图中,假定SW1身旁联接了主机A,SW2身旁联接了主机B,两个交换机之间联接了两根中继链路,这个主机A当发送一个广播数据的时侯,SW2关于主机A的MAC地址表会如何学习呢?

我们说交换机发送的广播帧,目的MAC地址全F,交换机所能学习到的表项只能是时隙表项,收到广播帧是找不到转发条目的,所以只能泛洪,把这个帧复制成多份,通过其他插口发送出去,交换机做的泛洪叫VLAN内的泛洪,我通过vlan内的一个插口收到广播流量,可以通过什么插口发送出去呢?属于这个VLAN的其他接入插口,以及容许VLAN通行的中继插口以及Hybrid插口,交换机之间互联的都是中继链路。

所以主机A发送的流量会被SW1通过这两条中继链路都发送出去,假定通过上面的链路被先收到,SW2都会把PCA的MAC地址绑定到上面这个插口上,当SW2通过下面这个插口也收到一个一摸一样的数据,这么这个交换机SW2会做如何的处理呢?

虽然这个问题就是在问你们,当交换机通过一个插口收到一个数据帧,接出来通过另外一个插口收到一模一样的帧,这个源MAC地址都一样,,这个地址学习该如何处理,是后学习到的MAC地址表项会覆盖先学习到的,还是先学习到的维持不变,对后来的不做更新呢?还是他俩同时保持呢?答案是后学习到的会覆盖先学习到的。

当交换机通过一条路径学习到一个转发表项的时侯,假如通过另外一条路径又学习到了相同的转发表项,这么后学习到的转发表项都会覆盖先学习到的转发表项,这个就是交换机控制层面学习不可靠的根因。

泛洪会导致MAC地址表翻摆

由于我只要学习到这个表项,就觉得这个设备联接到了我这个插口,。而当交换机之间拥有多根冗余链路的时侯,交换机是可以通过多根链路收到相同的数据的,而假如让这多根链路同时工作,这个设备会出现哪些问题呢?这个设备都会一会儿觉得通过上面路径可以访问A,一会儿觉得可以通过下面路径访问A,这个接收设备会不停的做路径切换,这就是MAC地址表翻摆,MAC地址表的翻摆会造成流量转发的不稳定。

例如主机A发送一个广播帧,发送给SW1,SW1通过上面的链路泛洪发送给SW2,SW2会把这个数据帧拷贝多份,从不仅接收插口以外的其他插口泛洪发送出去,会发送给主机B,也会从下面的链路泛洪发送给SW1,而SW1通过下面的链路泛洪发送的广播流量会通过SW2从上面的链路再泛洪回去,这就产生了两个支路,泛洪会形成广播风暴,而SW1和SW2收到这种流量都会继续泛洪,由于目的MAC地址是全F,交换机在收到目的MAC地址全F的数据帧一定会泛洪发送,可以发觉,这个泛洪是永无止境的,只要设备之间拥有冗余路径,还会出现支路,只要链路上出现广播或则未知时隙帧交换机是干嘛用的,还会出现广播风暴。

这么怎么解决这个问题呢?把这种设备之间的冗余路径除去一根就可以了,只要设备之间没有冗余路径,就不会形成支路,尽管这个地方就会形成泛洪,并且这个收到的泛洪流量能够不能再泛洪回家呢?肯定是不能泛洪回家的,意思是不能通过接收插口再回送回家的,所以,只联接一根路径是不会出现刚刚的问题的,并且单根链路会出现另外一个问题,就是单点故障,没有冗余的网路,是没有强壮性的,为了让网路保持强健性,设备之间还是要联接多根链路。

二层设备没有类似动态路由选择合同的一个机制来让设备晓得整个网路是如何联接的,为了解决二层设备形成的支路问题,就引入了生成树技术。

生成树技术的益处:

1、可以动态检测链路和设备的运行状态,周期性发送链路侦测报文,假如限制的时间内没有收到对方的侦测报文,则觉得链路发生故障。

2、生成树可以手动估算最优路径,确保网路内的数据转发路径就是最优路径。

3,当设备或链路不可用,可以立刻发觉拓扑变更,立刻开始拓扑变更估算,不须要手工干预,手动完成。

交换机是干嘛用的
相关文章