网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校

    上一次,咱们经过宿舍联网打魔兽的需求,认识了如何经过物理层和链路层组建一个宿舍局域网。今天,让咱们切换到稍微复杂点的场景,办公室。程序员

    在这个场景里,就不像在宿舍那样,搞几根网线,拉一拉,扯一扯就能够了。一个办公室少到数十人,大至上百人,每一个人都有一个网口,若是再算上整个楼层楼层、甚至整栋楼,这个网口就更多了。算法

    相似办公室这样,这些复杂场景的网络布线就牵扯出一个专业名词-拓扑结构安全

什么是拓扑结构?

    在解释拓扑结构前,咱们要先明白什么是拓扑。拓扑是 Topology 的音译,直译是地志学,最先指研究地形、地貌相相似的有关学科。如今是研究几何图形或空间在连续改变形状后还能保持不变的一些性质的一个学科。网络

    计算机网络的拓扑结构是引用拓扑学中研究与大小、形状无关的点、线关系的方法,把网络中的计算机和通讯设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构数据结构

办公室拓扑结构的造成

    上面说过,每一个办公室会有几十个甚至上百个网口。这个时候,一个交换机确定不够用,须要多台交换机链接,而多台交换机链接就造成了一个稍微复杂的拓扑结构。性能

    咱们先来看两台交换机的情形。两台交换机链接着三个局域网,每一个局域网上都有多台机器。若是机器 1 只知道机器 4 的 IP 地址,当它想要访问机器 4 时,把包发出去的时候,它必须知道机器 4 的 MAC 地址。咱们来看看这个过程:学习

  • 机器 1 发起广播,机器 2 和交换机 A 都收到广播。机器 2 收到广播后,知道不是找它的,因此没它什么事。
  • 交换机 A 一开始是不知道任何拓扑信息的,在它收到这个广播后,采起的策略是,除了广播包来的方向外,它还要转发给其余全部的网口。
  • 机器 3 和交换机 B 收到了广播信息了,一样的,机器 3 也知道和它没什么关系。
  • 交换机 B 收到广播信息后,这时候它也不知道任何拓扑信息,因此也进行广播,将包转发到局域网三,也就是机器 4 和机器 5。
  • 机器 4 收到广播是,它发现是找它的,就主动响应说,这是找个人,个人 MAC 地址是 XXX。

    在机器 1 收到机器 4 的 MAC 地址后,一个 ARP 请求就成功完成了。加密

    在上面过程当中,交换机 A 和交换机 B 都是可以学习到这样的信息:计算机网络

  • 机器 1 是在左边这个网口。

    当了解这样的信息后,若是机器 2 访问 机器 1,机器 2 发起一个 ARP 请求获取机器 1 的 MAC 地址,这个广播消息会发给机器 1 和交换机 A。这个时候交换机 A 已经知道机器 1 是在左边的网卡,因此它就不会将请求广播到局域网二和局域网三。设计

    就这样,当交换机学习完全部的拓扑信息后,两台交换机工做得会愈来愈好。

    可是随着办公室愈来愈大,交换机数量确定会愈来愈多,当整个拓扑结构复杂,这么多网线绕来绕去,不可避免的就会出现一些意料以外的状况,其中最多见的问题就是环路问题

环路与广播风暴

    以下图。当两个交换机环路链接两个局域网时,你知道会出现什么结果吗?

    咱们来想象下机器 1 访问机器 2 的过程。

  • 机器 1 发起 ARP 广播
  • 机器 2 收到广播,把 MAC 地址返回。

    咦,整个过程很顺利,没什么问题。

    可是咱们忽略了,两个交换机也是能收到广播包的。咱们来看看两个交换机的广播过程:

  1. 交换机 A 开始不知道拓扑信息,因而将广播信息放到局域网二
  2. 消息在局域网二广播,交换机 B 右网卡收到广播消息,因而将信息放到局域网一
  3. 消息在局域网一广播,交换机 A 左网口收到消息,又将广播信息放到局域网二
  4. ......

    看出来了吗?这样一直广播,就会造成一个环路,最终成为广播风暴,直到网络瘫痪。

上面过程,可能会有人说,两台交换机逐渐学习到拓扑结构后 ,是否是就能够了?那就让咱们来看下它们的学习过程:

  1. 在局域网一,交换机 A、B 收到机器 1 的广播包后,知道机器 1 都是在左网口
  2. 当广播放到局域网二后,交换机 B 右网口又收到了来自机器 1 的广播包,因而就误会机器 1 换位置了,就记住了机器 1 是在右网口,把以前学习到的信息清理掉
  3. 同理,交换机 A 右网口收到了机器 1 的广播包,一样误会了,因而也学会了,机器 1 在右网口,不是在左网口

    就这样,两个交换机会不断刷新“三观”,机器 1 是在左网口,过一会,发现不对,机器 1 是在右网口,过了一会,又发现不对,是在左网口。因而,又造成了一个“广播风暴”。

    那么,有什么方法能够解决环路问题呢?这就到了 STP 协议出场的时候了。

STP 协议中那些难以理解的概念

    在数据结构中,有一个方法叫做最小生成树。有环的咱们常称为。将图中的环破了,就生成了。而在计算机网络中,生成树的算法叫做 STP(Spanning Tree Protocol)

    STP 协议比较复杂,一开始很难看懂,让咱们来经过华山论剑,决出五岳盟主的方式看看生成树的过程。

    在 STP 协议里面有不少概念,译名就很是拗口,让咱们以门派中的职位来帮助你们理解。

  • Root Bridge,也就是根交换机。能够比喻为“掌门”交换机,是某棵树的老大。
  • Designated Bridge,也就是指定交换机。这个比较难理解,能够想象成一个“小弟”,对于树来讲,就是一棵树的树枝。所谓“指定”的意思是,我拜谁作大哥,其余交换机经过这个交换机到达根交换机,也就至关于拜他作了大哥。这里注意是树枝,不是叶子,由于叶子每每是主机。
  • Bridge Protocol Data Units(BPDU),网桥协议数据单元。能够比喻为“相互比较实力“的协议。行走江湖,比的就是武功,拼的就是实力。当两个交换机遇见的时候,也就是相连的时候,就须要互相比比内力。BPDU 只有掌门能发,隶属于某个掌门的交换机只能传达掌门的指示。
  • Priority Vector,优先级向量。能够比喻为实力(值越小越牛)。实力是啥?就是一组 ID,[Root Bridge ID, Root Path Cost, Bridge ID, and Port ID]。为何这样设计呢?这是由于要看怎么来比实力。先看 Root Bridge ID,也就是老大的 ID,发现掌门同样,那就是师兄弟;再比 Root Path Cost,也就是我距离我老大的距离,也就是拿和掌门的关系比,看同一个门派内谁和老大关系铁;最后比 Bridge ID,比我本身的 ID,拿本身的本事比。

    概念都准备好了,下面咱们看看 STP 是怎么工做的。

STP 的工做过程

    一开始,江湖纷争,异常混乱。你们都以为本身是掌门,谁也不服谁。因而,全部的交换机都认为本身是掌门,每一个网桥都分配了一个 ID。这个 ID 里有管理员分配的优先级,固然管理员指定哪些交换机性能好,就给它们分配高的优先级。这种交换机生下来武功就很高,起步就是乔峰。

    既然都是掌门,互相都连长网线,那就互相发送 BPDU 来比功夫呗。这一比就发现,有人是岳不群,有人是封不平。赢的人接着作掌门,输的就只好作小弟了。当掌门的还会继续发 BPDU,而输的人就没有机会了,它们就只有在收到掌门发的 BPDU 的时候,转发一下,表示服从命令。

    数字表示优先级。就像上面的图,5 和 6 遇见了,6 的优先级低(数字越小,优先级越高),因此乖乖作小弟。因而,一个小门派造成,5 是掌门,6 是小弟。其余诸如 1-七、2-八、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 搞定了。

参考:

  1. 百度百科-拓扑结构
  2. 刘超-趣谈网络协议系列课
相关文章
相关标签/搜索