05 交换机与VLAN以及STP 协议

目录:

//www.greatytc.com/p/1961df2a1336

拓扑结构

多台交换机之间连接起来, 形成一个拓扑结构

两台交换机的情形

两台交换机连接着三个局域网, 每个局域网上都有多台机器。

两台交换机.png

机器1知道机器4的IP地址, 需要访问机器4(就需要知道MAC地址):

获取机器4 MAC地址步骤:

  • 机器1发起广播

    • 机器2收到这个广播, 不是找它的不处理
    • 交换机A一开始不知道任何拓扑信息, 收到这个广播后, 除了广播包来的方向外还要转发给其他所有的网口
      • 机器3也收到广播信息, 不是找它的不处理
      • 交换机B收到广播信息不知道任何拓扑信息, 转发到局域网三
        • 机器4收到广播信息, 主动响应, ARP请求完成
        • 机器5收到广播信息, 不是找它的不处理

这次请求的结果:
交换机A和交换机B学习到这样的信息: 机器1是在左边这个网口的.

机器2找机器1

  • 机器2发起广播(ARP请求)
    • 机器1,收到这个广播主动响应, ARP请求完成
    • 交换机A收到这个广播, 已经知道机器1是不可能在右边的网口的, 不转发

机器3访问机器1

  • 机器3发起广播(ARP请求)
    • 交换机A收到广播请求,知道机器1是在左边这个网口, 转发到局域网一
    • 交换机B收到广播请求,已经知道机器1是不可能在右边的网口的, 不转发

环路问题

环路问题.png

机器1访问机器2

  • 机器1发起广播(ARP请求)
    • 机器2收到广播请求, 主动响应, ARP请求完成
    • 换机A(不知道机器2在哪)收到广播请求, A右转发到局域网二
      • 交换机B右边这网口收到广播消息, B左转发到局域网一
        • 交换机A还是不知道机器2在哪个局域网, A右转发到局域网二
          • ...(环路)

当两台交换机都能够逐渐学习到拓扑结构之后, 是不是就可以了?
** 不行 **

  • 机器1的广播包到达交换机A和交换机B的时候
    • 两个交换机学会了机器1是在局域网一
    • 当交换机A将包广播A右到局域网二之后, 交换机B右边的网口收到来自交换机A的广播包
      • 根据学习机制, (因为机器1的广播出现在右边的网口)清理上次学习记录, 学会了机器1在右边的网口(局域网二)
    • ( 同理)交换机A右边的网口, 也能收到交换机B转发过来的广播包, 也会误会重新学习机器1是从右边的网口来的, 不是左边
      • 重复...

STP 协议,解决环路方案

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

STP 协议.png

Root Bridge, 根交换机. 比喻: 掌门交换机, 某棵树的老大.

Designated Bridges, 指定交换机. 是一棵树的树枝. 指定的意思是, 我拜谁做大哥, 其他交换机通过这个交换机到达根交换机. 不是叶子, 叶子往往是主机.

Bridge Protocol Data Units (BPDU), 网桥协议数据单元, 比喻: "相互比较实力的"协议. BPDU只有掌门能发. 已经隶属于某个掌门的交换机只能传达掌门的指示。

Priority Vector, 优先级向量, 比喻为"实力"值越小越厉害

  • 实力:

    • Root Bridge ID
    • Root Path Cost
    • Bridge ID
    • Port ID
  • 比较:

    • 先比较Root Bridge ID, 越小越厉害
      • 如果一样, 比较Root Path Cost(距离老大的距离), 越小越厉害
        • 如果一样, 比较Bridge ID. 比自己的ID.

STP 工作过程

开始

  • 混乱
  • 每个交换机分配一个ID, 由管理员分配的优先级.
  • 交换机分配优先级, 由管理员分配.
  • 交换之间连接的数字是交换机之间的距离.
STP-1.png

互相发送BPDU来比

STP-2.png

图中的粗线表示已经形成的门派

数字表示优先级:

  • 5(掌门)-6(小弟)
  • 3(掌门)-4(小弟)
  • 1(掌门)-7(小弟)
  • 2(掌门)-8(小弟)

合并过程: 情形一:掌门遇到掌门

STP-3.png
  • 5遇见1
    • 1胜出
      • 5率领所有的小弟归顺

结果:

  • 1-7-5-6
  • 2-8
  • 3-4

合并过程: 情形二:同门相遇

STP-4.png

同门相遇,掌门与自己的小弟相遇(1和6), 说明存在环. 6已经通过其他门路拜在1的下面.

  • 1和6不认识(6原来是在5下面,5才在1下面)
    • 1和6PK
      • 6到1的距离只有2, 比从5过来(4+1)要小. Root Path Cost
      • 6直接汇报给1

同门相遇,小弟相遇, 就是比和掌门的关系Root Path Cost, 距离近的是大哥.

  • 5和6PK
    • 5到1的距离是4
    • 6到1的距离是2
    • 5->6->1的距离是3
      • 5拜6为大哥

结果:

  • 1-7-5-6
  • 2-8
  • 3-4

合并过程: 情形三: 掌门与其他帮派小弟相遇

小弟用本帮掌门和整个掌门比较:

  • 赢了, 这个掌门拜入门来
  • 输了, 会拜入新掌门, 并且逐渐拉拢和自己连接的兄弟一起弃暗投明.
STP-5.png
  • 2和7PK
    • 7的掌门是1, 比2小
    • 2连同自己的小弟一起拜入7的门派.

结果:

  • 1-7-2-8-6-5
  • 3-4

合并过程: 情形四: 不同门派小弟相遇

STP-6.png

各自拿掌门比较, 输了的拜入赢的门派, 并且逐渐拉拢和自己连接的兄弟一起弃暗投明.

  • 5和4PK
    • 5的掌门是1, 4的掌门是3. 5比4厉害.
      • 4拜入5的门派
      • 3和4相遇, 4已经叛变了.
        • 4的掌门是1比3厉害
          • 3也拜入了1

结果:

  • 1-7-2-8-6-5-4-3

最终 生成一棵树

广播问题和安全问题

一大堆机器广播, 性能下降;有的需要保密, 所有包都会在一个局域网传输, 如果没有加密会有安全问题.

解决方案一: 物理隔离

每个部门都有单独的交换机, 配置单独的子网, 部门之间的沟通就需要路由器. 有可能会浪费资源.

解决方案二: 虚拟隔离

VLAN, 虚拟局域网.

问题:
VLAN ID有12位,。可以划分4096个用户.每个用户需要一个VLAN。云计算厂商里面绝对不止4096 个用户,VLAN ID就不够用.

使用VLAN, 一个交换机会连属于多个局域网的机器, 怎么区分?

VLAN包的格式:

VLAN包的格式.png

在原来的二层的头上加一个TAG, 里面有一个VLAN ID.

如果交换机是支持VLAN的, 当这个交换机把二层的头取下来的时候, 就能够识别这个VLAN ID. 这样:

  • 只有相同的VLAN的包, 才会互相转发.
  • 不同VLAN的包, 是看不到的.
VLAN.png

Trunk 口

交换机之间连接. 对应支持VLAN的交换机, 有一种口叫做Trunk口. 可以转发属于任何VLAN的口. 交换机之间可以通过这种口互相连接

小结

  • 当交换机的数目越来越多的时候, 会遭遇环路问题, 让网络包迷路, 通过使用STP协议, 将有环路的图变成没有环路的树, 从而解决环路问题。

  • 交换机数目多会面临隔离问题, 可以通过 VLAN 形成虚拟局域网, 从而解决广播问题和安全问题。

参考资料:

趣谈网络协议(极客时间)链接:
http://gk.link/a/106nW


GitHub链接:
https://github.com/lichangke/LeetCode

知乎个人首页:
https://www.zhihu.com/people/lichangke/

简书个人首页:
//www.greatytc.com/u/3e95c7555dc7

欢迎大家来一起交流学习

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。