交换机的工作原理是什么?交换环境为什么要使用生成树协议?

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当发送一个广播数据的时候, SW 2 关于主机A的MAC地址表会怎么学习呢?

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

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

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

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

泛洪会造成MAC 地址表翻摆

因为我只要学习到这个表项, 就认为这个设备连接到了我这个接口,。而当交换机之间拥有多根冗余链路的时候, 交换机是可以通过多根链路收到相同的数据的,而如果让这多根链路同时工作, 这个设备会出现什么问题呢?这个设备就会一会儿认为通过上边路径可以访问A, 一会儿认为可以通过下边路径访问A,这个接收设备会不停的做路径切换,这就是MAC地址表翻摆,MAC 地址表的翻摆会导致流量转发的不稳定。

比如主机A发送一个广播帧, 发送给SW 1 , SW 1 通过上边的链路泛洪发送给SW2 , SW 2 会把这个数据帧拷贝多份,从除了接收接口以外的其他接口泛洪发送出去, 会发送给主机B, 也会从下边的链路泛洪发送给SW1 , 而SW1 通过下边的链路泛洪发送的广播流量会通过SW2 从上边的链路再泛洪回来, 这就形成了两个环路,泛洪会产生广播风暴,而SW 1和SW2 收到这些流量还会继续泛洪, 因为目的MAC地址是全F, 交换机在收到目的MAC地址全F的数据帧一定会泛洪发送,可以发现, 这个泛洪是永无止境的,只要设备之间拥有冗余路径, 就会出现环路, 只要链路上出现广播或者未知单播帧, 就会出现广播风暴。

那么如何解决这个问题呢?把这些设备之间的冗余路径去掉一根就可以了, 只要设备之间没有冗余路径, 就不会产生环路,虽然这个地方还会产生泛洪, 但是这个收到的泛洪流量还能不能再泛洪回去呢?肯定是不能泛洪回去的,意思是不能通过接收接口再回送回去的, 所以, 只连接一根路径是不会出现刚才的问题的,但是单根链路会出现另外一个问题, 就是单点故障,没有冗余的网络,是没有健壮性的,为了让网络保持健壮性,设备之间还是要连接多根链路。

二层设备没有类似动态路由选择协议的一个机制来让设备知道整个网络是怎么连接的,为了解决二层设备产生的环路问题, 就引入了生成树技术。

生成树技术的好处:

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

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

3,当设备或链路不可用, 可以立即发现拓扑变更, 立即开始拓扑变更计算, 不需要手工干预, 自动完成。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容