我们之前说了一种很简单的情景,就是只有一台交换机.,如果机器很多,有上百成千个,那么怎么办呢?一个交换机肯定不够用的,这就需要多台交换机,交换机连接起来,形成了复杂的拓扑结构,假设有两台交换机,两台交换机连着三个局域网,每个局域网都有多台机器,如果机器1知道机器4的IP地址,那么想要发送包给IP4,就需要知道IP4的MAC地址

图片

于是设备1发起了广播,机器2收到了广播,但是并不是找他的,于是不接受,然后到了交换机A,A并不知道拓扑信息,于是他将包转发了出去,除了来的方向,于是机器3也拿到了广播信息,但是也不是找他的,于是Pass,然后到了交换机B,然后到了交换机B也不知道这个MAC地址,进行了广播的转发,到了局域网三,于是机器4 5都收到了广播信息,机器4说明是找我的,于是找到了,这就是一个ARP请求

如果机器三发送一个请求请求机器一的话,需要一个广播请求,这个时候交换机A和B都能收到这个广播请求,于是A是知道机器1在左边这个网口的,所以会将广播消息转发到局域网1,同时,交换机B收到这个消息后,由于知道机器1反正不在右边的网口,所以不会讲消息广播到局域网三

那么现在来说看起来不错,但是一旦更加复杂了,拓扑更加不方便捋清楚了,那么会出现环路的问题,如果两个交换机同时连着两个局域网,那么会出现什么情况呢?

图片

如果有机器1访问机器2,那么机器1会发送一个广播,机器2接收到广播后可以直接返回这个信息,但是同时交换机也可以拿到这个广播,交换机并不知道2在哪里,于是A发送一个广播到局域网2,局域网2内就存在这个广播了,那么B可以将这个广播信息传给局域网1,局域网1又拿到这个广播信息了之后,交换机A又发给局域网2了,于是广播包来回转圈

那么不会形成拓扑吗?

其实并不会,因为机器1的广播包到达交换机A和交换机B的时候,本来两个交换机都学会了机器1在左边,但是A将包广播到了局域网2之后,交换机B接受到了局域网2的广播包,发现问题不对,于是进行重新登记,机器1在局域网2,于是在转发的时候,交换机A也是这样了,发现后重新登记,说机器1在局域网2,这样来回刷新登录,导致广播包越来越多,以至于环路的出现

那么必须要有环路的问题,如何破坏环路呢?

这就是STP协议

在数据结构中,有一个方法是最小生成树,有环的称为图,将环破坏了就是树,在计算机网络中,生成树的算法叫做STP算法,全程是Spanning Tree Protocol

STP在生成过程中,可以认为就是决出五岳盟主的过程

图片

在STP协议汇总有很多的概念,译名非常的拗口,但是很容易比喻

Root Bridge根交换机可以认为就是一个门派的掌门人,是大哥

Designated Bridges 指定交换机,认为是小弟,这个指定的意思就是,其他的交换机通过这个交换机到达了根交换机,拜他做了大哥

Bridge Protocol Data Units 网络协议数据单元,互相比较实力的协议,行走江湖,比拼的内力,谁大谁是老大

Priority Vector优先级向量,这就是关系,就是谁和老大近,同门师兄比较,就是谁和老大近,近的自然辈分高,而这个其实还是一组ID, Root Bridge Id, Root Path Cost,Bridge ID, Port ID,先看Root Bridge ID,在看Root Path Cost,最后看Bridge ID

我们看一下STP的生成过程,下面是一个没有形成树结构的交换机网络

图片

在一开始,所有人都认为自己是掌门,谁都不服谁,于是,所有的交换机都认为自己是掌门人,但是每个人的出生起点不同,对应着,就是优先级别不用,优先级高的,武功就高

然后我们互相交互,也就是见到了,就需要比拼功夫,这时候就发现有人武功比自己厉害,赢的人继续当掌门,输的人做小弟,掌门继续发送BPDU,输的人就没有机会了,只有接受到了掌门的时候,转发并表示服从,1和7遇到了,1比7大,1做老大

图片

那么,第一轮的交锋过去后,我们就有了好多小门派,然后我们会继续合并

合并的过程中会遇到以下的情景

1.掌门遇到了掌门

那么1-7门派和5-6门派遇到了1和5比拼,发现1大,于是1胜出,称为大掌门,5带着6归顺

图片

2.同门相遇

如果是掌门和自己的小弟相遇,可能出现环的问题了,说明这个小弟是别人带着归顺的,这就要PK下,然后看情况是否需要升职

比如 1 6相遇, 6原本在5手下,后来1发现,从5到6需要走5格,从6直接到我才2格,而且比从5过来 (4+1)快多了,那么不如6直接发消息给我吧

图片

这时候6就升职了,而且一旦5遇到了6,会发现直接到5直接拜倒在6手下了,因为整体更近

3.掌门和其他的帮派小弟相遇

小弟遇到了其他的掌门,会拿自己的掌门和这个掌门比较,赢了这个掌门进来,输了,拜进去,并且拉拢自己的小弟进去

图片

比如,2和7相遇,虽然7是小弟,2是掌门,但是7的掌门是1,1比2大,于是2拜入1

并带着自己的小弟

不同门派的小弟相遇

会拿着自己的掌门和对方的掌门比较,然后输的拜入赢得,并拉着自己的兄弟弃暗投明

图片

最后合成了一个树,这就是天下一统

那么解决了环的问题,还是怎么解决广播的问题呢?

因为比如一个部门还几百人,而且可能一个办公室里有好几个部门的人

这种时候怎么办呢?

常见的就是物理隔离,就是每个部门一个独立的办公室,对应的有单独的交换机,这样每个部门交互的时候都可以了,但是这样,小的部门会多出来网口,大的部门网口不够,肯定不行的,于是出现了虚拟隔离这种能力,或者说,就是我们说的VLAN,简称虚拟局域网,使用VLAN,一个交换机上会连着多个局域网的机器,那么这些交换机怎么知道哪些机器数据哪些局域网呢?

我们利用VLAN ID来表明哪个设备是哪个网段的

图片

在原来的二层头的基础上,我们加上了一个TAG,这样里面就有了VLAN ID,一共12位,就能有着4096个VLAN了,但是现在看来4096个可能不够,那么怎么办,接下来再说

如果我们买的交换机是支持VLAN的,这个交换机把二层的头取了下来,可以看到这个ID,只要有相同VLAN的包,才能互相转发,不同VLAN的包,是看不到的,这样广播问题和安全问题就能解决了

图片

我们也可以设置某一个交换机口所属的VLAN,如果某个口对应的开发部门,就是VLAN10 如果是财务部门,就是VLANE20,我们这样就能避免出现问题

如果交换机之间,该如何通信,交换机之间,有一个口Trunk口,可以转发属于任何VLAN的口,交换机之间通过这个口进行连接

那么本章小结:

当交换机的数量越来越多的时候,就会遭遇环路的问题,让网络包迷失,于是出现了STP协议

通过华山论剑的方式,让其变成一个树,解决环路的问题

当交换机数量到达一定程度的时候,可以通过VLAN形成虚拟局域网,解决广播问题和安全问题

课后思考

1.STP可以解决环路问题,但是有着其对应的缺点,举个例子呢?

2.一个比较大的网络汇总,如果两个机器不通,如何调试?

stp中如果掌门死掉了,就需要重选,这时候就会导致网络中断

当机器 2 要访问机器 1 的时候,机器 2 并不知道机器 1 的 MAC 地址,所以机器 2 会发起一个 ARP 请求。这个广播消息会到达机器 1,也同时会到达交换机 A。这个时候交换机 A 已经知道机器 1 是不可能在右边的网口的,所以这个广播信息就不会广播到局域网二和局域网三。

根据前一小节的内容,我有以下理解:

1. 交换机是二层设备,不会读取 IP 层的内容。

2. 交换机会缓存 MAC 地址跟转发端口的关系。

3. ARP 协议是广播的,目的地 MAC 地址是广播地址。

如果我的理解是正确的,那机器 2 发起的 ARP 请求中,是不含机器 1 的 MAC 地址的,只有广播地址。交换机 A 中缓存的信息是没法被利用起来的。那么交换机 A 是如何知道不需要把请求转发到其它局域网的呢?

机器1在发送消息给机器2的时候,会发送一个广播包,这时候交换A和机器2都能收到,A会会将广播包转发出去,而机器2收到会返回一个普通数据包,但不是广播的包,这个包只会在第一次交给交换机A的时候去广播出去,后来就学会了,不广播了,是这样吗

STP之间的连线,是带宽和其他参数的聚合,形成的权重比,带宽越大,数字越小

那么,每台交换机的武力值,或者说权重比是怎么得到的?

而且,如果有交换机脱离网络,是不是其他的相邻交换机要重新比武?

每当有一台交换机加入或者离开网络的时候,都会发生网络拓补的变化,根的网桥会检测到拓补发生的变化,并且通知跟网桥,跟网桥会通知所有的网桥拓补进行重新比武

网桥的ID是网桥的优先级和网桥MAC组成的,网桥ID最小的成为根网桥,默认配置下,网桥优先级都一样,于是MAC地址最小的,成为根网桥,如果想要设置手动的根网桥,设置优先级即可

优先级向量里面,Root Bridge ID就是根网桥的ID,Bridge ID是网桥的ID,Port ID就是网桥上有多个端口,端口的ID

root paht cost如何来的

是根据的出口带宽进行的绑定,具体的数据如下

图片

一个机器是如何同时链接两台交换机

图片

这里的LAN1 LAN2 LAN3的说法不准确,通过网桥或者交换机链接,但本质还是属于一个LAN,这是三个物理网络,通过网桥或者交换机连接起来,形成一个二层的LAN

对于一层,也就是物理层的设备,主要是集线器HUB

所以,实际的图如下

图片

图片

MAC层是会广播到没有IP的物理段吗?

机器2要访问机器1的时候,机器2并不知道机器1的MAC地址,所以所以机器2会发起一个ARP的请求.这个广播消息到达了机器1,会到达交换机A,这时候交换机A知道机器1不在右边的网口

交换机是二层设备,不会去读取IP层的内容,交换机会缓存MAC地址跟转发端口的关系,ARP是广播的,目的地MAC地址是广播地址

802.1Q VLAN和Port-based VLAN 有什么区别

对于Port-based VLAN,只会在一台交换机上起作用,比如一台交换机,10个口,1 3 4 7 9

属于VLAN 10.1发出包,3,5,7,9能收到,从这些口转发的包头中,并不带VLAN ID;

而且802.1Q的VLAN,出了交换机也能起作用,一旦打上了VLAN,出的包都带VLAN,需要链路上的交换机可以识别这个VLAN,进行转发

发表评论

邮箱地址不会被公开。 必填项已用*标注