二层三层网络协议-交换机与VLAN

时间:2024-05-18 20:21:32


一个办公室内部,可能由多个交换机组成,共同组成了一个大的局域网

假设一个局域网分布关系如下

二层三层网络协议-交换机与VLAN

当机器1 要发送数据给机器4的时候,就会发送广播寻找机器4的mac地址
交换机A 收到 机器1的广播包之后,会转发给所有端口
机器2也收到了,发现不是自己就丢弃这个数据包
交换机B也收到了这个广播包,再广播给所有的端口
于是机器4收到了并回应,这时候交换机A,交换机B就知道机器1,机器4在哪个端口上了


出现环路的情况

二层三层网络协议-交换机与VLAN

机器1想访问机器2,于是发送了一个广播
交换机A 收到广播后,转给 右边的LAN2,于是交换机B也收到了
同样交换机B会将这个广播继续转发,也就是转发给LAN1,最后转了一圈又到交换A这里了
此时交换机A是不知道机器2在哪里,于是再次转发,最后形成网络风暴,变成环路了



当机器1发送广播包丢掉时候,交换机A,交换机B都知道机器1是在左边这个端口上
之后交换机A将数据广播出去,交换机B右边端口收到了,他以为机器1的位置变了,于是更新映射表
交换机B再转发广播,交换机A右边端口也收到了,于是也更新映射表
于是一会左边,一会右边,就在不停的更新映射关系


使用生成树算法解决上述问题

STP spanning Tree Protocol

二层三层网络协议-交换机与VLAN






STP协议中的一些概念解释
1.Root Bridge,也就是根交换机
2.Designated Bridges,对一个根交换机来说,会有一些交换指定他做上级
3.Bridge Protocol Data Units BPUD,当两个交换机相连的时候就需要比较各自权重,只有根交换机才可以比较,其他附属的交换机只负责传达命令
4.Priority Vector优先级向量,两个交换机比较权重,[Root Bridge Id,Root Path Cost,Bridge ID and Port ID],就是先比跟交换机,再比到达跟交换机的时间权重,最后比较自己的权重


有些交换机比较贵,一开始就被管理员分配了很高的权限

下面是一个例子

二层三层网络协议-交换机与VLAN





经过一轮的BPDU比较,有些交换机就变成根了,有些就变成从属了
下面这个图中,就形成了几个小的分支
3-4,5-6,1-7,2-8

二层三层网络协议-交换机与VLAN



合并过程有下面四种情况

1.根和根比较,1交换机大于5交换机,于是5归属到1下面,并将5下面所有的交换机都归顺到1下面

二层三层网络协议-交换机与VLAN


2.同组内的比较,6原来的上级是5,现在1和6经过比较发现,应该变成1->6->5这种模式,因为1->5的路径花费很高,5还不如经过6再到1更划算

二层三层网络协议-交换机与VLAN


3.根和从属比较,本来2是根的,7是从属,但是7的上级比2大,于是2带着下面所有的交换机都归属到1下面

也就变成了1->7->2这种模式了

二层三层网络协议-交换机与VLAN


4.从属交换机之间比较,4本来比5大的,但是4的3 小于 5的上级1,于是4和2归顺到5下面

最终就形成了一个统一的树模型了

二层三层网络协议-交换机与VLAN








一个局域网内,可能有不同的部门,财务,HR,技术
为了保证效率(不那么频繁的发广播),也为了保证安全性,需要给机器分组

于是就出现了VLAN技术,将一个交换机下面的机器划分成若干个虚拟局域网

实现方式是在MAC数据包做了改动,在目标mac,源mac,之后加入了一个tag标签,用来标识VLAN的id

二层三层网络协议-交换机与VLAN

VLAN的id一共是12bit也就是4096个,在云计算的环境中就显得不够用了


经过划分之后,不同VLAN的机器就独立了,VLAN10的机器就不能给VLAN20的机器通讯

而VLAN10下面某个机器原本是A的,现在A走了变成B,B是另外一个部门,只要将其连接端口改成VLAN20就可以换组了

二层三层网络协议-交换机与VLAN



参考

STP生成树协议理解

算法导论-最小生成树

VLAN原理详解