上一次,我们通过宿舍联网打魔兽的需求,认识了如何通过物理层和链路层组建一个宿舍局域网。今天,让我们切换到稍微复杂点的场景,办公室。
在这个场景里,就不像在宿舍那样,搞几根网线,拉一拉,扯一扯就可以了。一个办公室少到数十人,大至上百人,每个人都有一个网口,如果再算上整个楼层楼层、甚至整栋楼,这个网口就更多了。
类似办公室这样,这些复杂场景的网络布线就牵扯出一个专业名词-拓扑结构。
在解释拓扑结构前,我们要先明白什么是拓扑。拓扑是 Topology 的音译,直译是地志学,最早指研究地形、地貌相类似的有关学科。现在是研究几何图形或空间在连续改变形状后还能保持不变的一些性质的一个学科。
计算机网络的拓扑结构是引用拓扑学中研究与大小、形状无关的点、线关系的方法,把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构。
上面说过,每个办公室会有几十个甚至上百个网口。这个时候,一个交换机肯定不够用,需要多台交换机连接,而多台交换机连接就形成了一个稍微复杂的拓扑结构。
我们先来看两台交换机的情形。两台交换机连接着三个局域网,每个局域网上都有多台机器。如果机器 1 只知道机器 4 的 IP 地址,当它想要访问机器 4 时,把包发出去的时候,它必须知道机器 4 的 MAC 地址。我们来看看这个过程:
在机器 1 收到机器 4 的 MAC 地址后,一个 ARP 请求就成功完成了。
在上面过程中,交换机 A 和交换机 B 都是能够学习到这样的信息:
当了解这样的信息后,如果机器 2 访问 机器 1,机器 2 发起一个 ARP 请求获取机器 1 的 MAC 地址,这个广播消息会发给机器 1 和交换机 A。这个时候交换机 A 已经知道机器 1 是在左边的网卡,所以它就不会将请求广播到局域网二和局域网三。
就这样,当交换机学习完所有的拓扑信息后,两台交换机工作得会越来越好。
但是随着办公室越来越大,交换机数量肯定会越来越多,当整个拓扑结构复杂,这么多网线绕来绕去,不可避免的就会出现一些意料之外的情况,其中最常见的问题就是环路问题。
如下图。当两个交换机环路连接两个局域网时,你知道会出现什么结果吗?
我们来想象下机器 1 访问机器 2 的过程。
咦,整个过程很顺利,没什么问题。
但是我们忽略了,两个交换机也是能收到广播包的。我们来看看两个交换机的广播过程:
看出来了吗?这样一直广播,就会形成一个环路,最终成为广播风暴,直到网络瘫痪。
上面过程,可能会有人说,两台交换机逐渐学习到拓扑结构后 ,是不是就可以了?那就让我们来看下它们的学习过程:
就这样,两个交换机会不断刷新“三观”,机器 1 是在左网口,过一会,发现不对,机器 1 是在右网口,过了一会,又发现不对,是在左网口。于是,又形成了一个“广播风暴”。
那么,有什么方法可以解决环路问题呢?这就到了 STP 协议出场的时候了。
在数据结构中,有一个方法叫作最小生成树。有环的我们常称为图。将图中的环破了,就生成了树。而在计算机网络中,生成树的算法叫作 STP(Spanning Tree Protocol)。
STP 协议比较复杂,一开始很难看懂,让我们来通过华山论剑,决出五岳盟主的方式看看生成树的过程。
在 STP 协议里面有很多概念,译名就非常拗口,让我们以门派中的职位来帮助大家理解。
概念都准备好了,下面我们看看 STP 是怎么工作的。
一开始,江湖纷争,异常混乱。大家都觉得自己是掌门,谁也不服谁。于是,所有的交换机都认为自己是掌门,每个网桥都分配了一个 ID。这个 ID 里有管理员分配的优先级,当然管理员指定哪些交换机性能好,就给它们分配高的优先级。这种交换机生下来武功就很高,起步就是乔峰。
既然都是掌门,互相都连长网线,那就互相发送 BPDU 来比功夫呗。这一比就发现,有人是岳不群,有人是封不平。赢的人接着做掌门,输的就只好做小弟了。当掌门的还会继续发 BPDU,而输的人就没有机会了,它们就只有在收到掌门发的 BPDU 的时候,转发一下,表示服从命令。
数字表示优先级。就像上面的图,5 和 6 碰见了,6 的优先级低(数字越小,优先级越高),所以乖乖做小弟。于是,一个小门派形成,5 是掌门,6 是小弟。其他诸如 1-7、2-8、3-4 这样的小门派也诞生了。接着,这些小的门派就好相互合并。
合并的过程会出现以下四种情形。
当 5 碰到了 1,掌门碰见掌门,1 觉得自己是掌门,5 也刚刚跟别人 PK 完,成为掌门。这俩掌门比功夫,最终 1 胜出,于是 5 就率领所有的小弟归顺。结果就是 1 成功大掌门。
同门相遇可以是掌门与自己的小弟相遇,这说明存在“环”了。这个小弟已经通过其他门路拜在你门下,结果你还不认识,还 PK 了一把。结果掌门发现这个小弟功夫不错,不应该级别这么低,就把它招到门下亲自带,那这个小弟就相当于升职了。
我们再来看,假如 1 和 6 相遇。6 原来就拜在 1 的门下,只不过 6 的上司是 5,5 的上司是 1。1 发现,6 距离我只有 2,比从 5 这里过来的 5(=4+1)近多了,那 6 就直接向我汇报吧。于是,5 和 6 分别汇报给 1。
同门相遇还可以是小弟相遇。这个时候就要比较谁和掌门的关系近。近的当大哥。刚才 5 和 6 同时向 1 汇报,后来 5 和 6 相遇比功夫的时候发现,5 你直接汇报给 1 距离是 4,如果 5 汇报给 6 再汇报给 1 ,距离只有 2+1=3,所以 5 干脆拜 6 为上司。
小弟拿本帮掌门和这个掌门比,赢了,这个掌门就拜入门下,输了,就拜入新掌门,并且会主键拉拢和自己连接的兄弟,一起“弃暗投明”。
例如,2 和 7 相遇,虽然 7 是小弟,2 是掌门,就个人武功而言,2 比 7 强,但是 7 的掌门是 1,比 2 牛,所以没办法,2 要拜入 7 的门派,并且连同自己的小弟都一起拜入。
各自拿掌门比较,输了的拜入赢的门派,并且逐渐将与自己连接的兄弟拉入新门派。
例如,5 和 4 相遇。虽然 4 的武功好于 5,但是 5 的掌门是 1,比 4 牛,于是 4 拜入 5 的门派。后来当 3 和 4 相遇的时候,3 发现 4 已经“叛变”了,4 说我现在老大是 1,比你牛,要不你也来吧,于是 3 也拜入 1。
最红,生成一棵树,武林一统,天下太平。但是天下统一久了,也会有相应问题。常见的有广播和安全问题。
机器多了,交换机也多了,就算交换机比 Hub 智能一些,但是还是难免有广播的问题。一大堆机器,相关的部门、不相关的部门,广播一大堆,性能就下来了。
就像一家公司,创业的时候,十来个人,坐在一个会议室,有事情大家讨论下,非常方便。当时如果变成了 50 个,全在一个会议室吵吵,就会乱的不得了。
另一方面,一个公司里,有的部门需要保密,比如人事部门,肯定要讨论升职加薪的事情。但是如果在一个广播域里,碰到一个会抓包的程序员,就能看的没有加密的敏感信息。
那咋办?能咋办,分部门,分会议室呗,让我们来看看怎么分。
有两种分的方法。一个是物理隔离。每个部门设一个单独的会议室,对应到网络方面,就是每个部门有单独的交换机,配置单独的子网。这样部门之间的沟通就需要路由器了。
这样的问题在于,有的部门人多,有的部门人少,而且部门的人数也会频繁发生变化,如果每个部门有单独的交换机,网口多了浪费,少了又不够用。
这时候,虚拟隔离就出来了。虚拟隔离,就是我们常说的 VLAN,或者叫做虚拟局域网。
使用 VLAN,一个交换机上会连属于多个局域网的机器,那交换机是怎么区分哪个机器属于哪个局域网呢?
我们只需要在原来的二层头上加一个 TAG,里面有个 VLAN ID,共 12 位,可以划分 4096 个 VLAN。对于普通办公室,这个数量应该是够用的。
如果我们买的交换机支持 VLAN,当这个交换机把二层的头取下来的时候,就能够识别这个 VLAN ID。这样只有相同的 VLAN 的包,才会互相转发,不同 VLAN 的包,是看不到的。
这样,广播和安全问题就能够解决了。
这样,复杂的办公室网络布线就被我们用交换机与 VALN 搞定了。
欢迎添加个人微信号:Like若所思。
欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!
原文:https://www.cnblogs.com/cool2feel/p/11418339.html