作者:卓维乾   转自:IT168

【IT168 专稿】要保证企业的网络中的关键应用可持续性,就需要对交换网络进行冗余设计,然而这将产生广播风暴、“网络环路”等问题,严重时,将导致整个网络瘫痪?于是,STP生成树解决办法出现了……
  
  网络冗余设计与广播风暴的矛盾
  广播风暴的克星:设计STP网络生成树
  技术剖析:STP生成树初始化与收敛
  案例分析:观察生成树收敛过程
  实战剖析:STP生成树如何配置?
  技术进化:RSTP快速生成树配置

  
  网络冗余设计与广播风暴的矛盾
  
   在一个包含有交换机与网桥的网络中,消除环路对于获得可靠通信与防止流量在网络中不停循环必不可少。生成树协议(Spanning-tree Protocol,STP),工作在ISO七层模型中第二层,其应用能够使交换机或者网桥通过构成“生成树”,在网络拓扑中动态执行“环路遍历”,通过逻 辑判断网络的链路,达到网络无环路和链路冗余的目的。
  
  网络冗余拓扑设计与环路

  访问文件服务器、 数据库、因特网、企业内部网和企业外部网,这些对于商业成功有着关键作用。如果网络瘫痪了,生产就会蒙受损失,顾客就会不满。因此,在如今的网络工程设计 中,冗余设计是考验一个网络稳定的关键环节,链路冗余使网络具有了容错功能,但如何在冗余设计中避免“网络环路”的危害呢?
  
  1.网络的高可用性
   所有的网络设计者和管理者都在追寻1天24小时,1周7天都能正常运行的计算机网络。但达到100%正常运行是几乎不可能的,所以99.999%(即 “5个9”)的可靠性则是一些公司设定的目标。这意味着平均每30年才有1天的故障时间,平均每4000天才有1小时的故障时间,平均每年只有 5.25min的故障时间。此外,对许多企业(如金融机构、医院、ISP等)而言,如果发生这些故障,则会带来巨大的商业损失。
  
  达到99.999%的可靠性的目标需要极其可靠的网络。就本章而言,网络的可靠性来源于可靠的设备和可以容忍故障和错误的网络设计,为了屏蔽故障,网络应当设计成能够快速收敛。
  
   部分局域网在早期的建设中,由于成本的原因并未在设计中考虑冗余问题,而在后期优化工作中则需从网络链路和网络设备两方面着手。条件允许的话最好能够提 供不同物理方向的双归属、双路由保护。设备的冗余是指采用冗余配置的单机或多台设备互为热备份,但是一般情况下多台设备互为热备份的方式比较昂贵。因此, 生成树技术存在着很大应用需求市场。
  
  2.冗余拓扑
  
  冗余拓扑(Redundant Topologies)的目标是消除由于单点故障引起的网络中断。这就和我们每天上班途经的公路一样,如果正在进行道路维修的话,我们同样可以通过绕行来 到达目的地。如图8-1中所示,网段2中的所有客户端在交换机出现故障时,网络应用不会受到影响。交换机A如果出现故障,网络流量依然可以通过交换机B到 达服务器和路由器。

图8-1  冗余拓扑网络
容错性通过冗余来实现。冗余指的是多于和大于一般情况和正常情况下所应该有的冗余设计可以贯穿整个三层结构(核心、汇聚、接入),每个冗余设计都有针对 性,可以选择其中一部分或几部分应用到网络中以针对重要的应用系统。万一网络中某条路径失效时,冗余链路可以提供另一条物理路径。可采用链路聚合 (IEEE 802.3ad)实现“端口级”冗余,以克服某个端口或线路引起的故障;也可采用生成树协议(IEEE 802.1d)提供“设备级”的冗余连接。
冗余设计带来环路冲突、广播风暴
  
  交换机学习连接到其端口设备的MAC地址,以便于工作数据能够正确转发到目的地。在交换机获得设备的MAC地址之前,它会把未知的目的地的帧泛洪出去,广播和多播也会被泛洪出去。所以,冗余交换拓扑也会导致广播风暴、帧的反复重传和MAC地址表不稳定的问题。
  
  从生成树的发展历程来看,透明网桥转发数据帧时,如果有环路,数据帧将会在环路中来回传递,大量增生数据帧,形成广播风暴。如图8-2所示,显示了一个核心的数据区域的多环形网络。
  
  多环形网络可以实现任何一条链路出现问题都不影响应用,但在环形交换网络中很容易出现“广播风暴”。出现“广播风暴”主要有两种原因:广播和电缆中断引发环路。
  
  1)广播环路
  图8-3中说明广播环路的形成。网络两台交换和两台主机,两台交换机之间环形连接,如果没有启用生成树,主机A向主机B发送广播帧。

图8-2  高可靠多冗余网络示意图
图8-3  广播环路产生示意图

 假设两台交换机均没有运行生成树,主机A发送MAC为FF-FF-FF-FF-FF-FF 的广播帧①,由于以太网络是星形或总线形,广播同时发送到SW-1和SW-2上②,当广播帧达到SW-1 1/1端口时,SW-1通过端口1/2将该广播帧发送给SW-2 的1/2口③④,SW-2通过1/1端口又将该广播帧发给SW的1/1 端口⑤⑥,SW-1将该数据帧继续通过1/2端口继续发给SW-2 的1/2口⑦,这样一个环路形成;另外我们注意到,第一个广播帧也发给SW-2的1/1,SW-2也一样将该广播帧发给SW-1,这样双向广播形成。
  
  在路由网络中不存在这个问题,路由协议为了避免环路的性,有一个参数叫路由老化时间(TTL)。而在以太交换网络中情况却不是这样,可以从以太网帧格式分析出来,如图8-4所示。
  

图8-4  以太网 DIX 版本2 帧格式

  在以太网DIX版本2中,数据帧格式中没有类似TTL这样的老化计数器,所以数据帧将在环路的以太网中不停的循环。可以想象,一个简单的默认广播帧在环路中以2的N次方增生,眨眼间就足以将100M的以太网给堵死。
    提示:在第三层中才有TTL,随着TTL值的不断减小,直到0的进修,数据包就会被丢弃。目前有部分厂家的交换机出厂时,默认的STP是关闭的,这样就需要提供现场工作人员一定要注意规划网络,或者项目实施的时候打开生成树功能。
  2)网络链路中断引发环路
  
  常见的环路主要是广播环路引起,然而,单播也能引发环路,图8-5显示了该环路引发的流程

图8-5  单播引发的环路

  假设主机A发送一个Ping单一包给主机B①,数据包将同时发送到SW-1和SW-2的1/1端口上②,这时主机B临时关机,这是在SW-2上,主机 B 的MAC地址从MAC地址表中被释放,这是SW-1的MAC表内没有主机B的MAC地址,直接将该数据包发送给SW-2 的1/2端口③、④,SW-2收到SW-1来的数据包,这时就有可能出现两种情况:
  
* SW-2将广播该数据帧,应该主机B的MAC地址是新学到的,又重新从1/1口发送到回去⑤,这样环路产生。
* SW-2从端口 1/2收到源地址为AA.AA.AA.AA.AA.AA的数据包,这是SW-2错误的更新他的MAC地址表,误认为主机A从1/2端口学到⑥,造成网络无法正常通信。

转载于:https://blog.51cto.com/gogo11/118617

STP生成树连载:制服网络广播风暴(1)相关推荐

  1. 轻松解决网络广播风暴

    http://www.pc0359.cn/article/article_1433_1.html 网吧行业竞争的加剧,出现了一些规模比较大的网吧.目前在网吧行业内,百台以上的网吧已经随处可见了.由于网 ...

  2. STP生成树协议切割网络环路

    一.适用场景 在一个复杂的网络中,网络规划者由于冗余备份的需要,一般都倾向于在设备之间部署多条物理链路,其中一条作主用链路,其他链路作备份.这样就难免会形成环形网络,若网络中存在环路,可能会引起广播风 ...

  3. 引起网络广播风暴的原因

    http://blog.csdn.net/littletigerat/article/details/5624096 1 引言  什么是广播风暴呢? 处于同一个网络的所有设备,位于同一个广播域.也就是 ...

  4. 网络广播风暴产生的原因

    介绍网络中产生广播风暴的主要原因 1.网络设备原因:我们经常会有这样一个误区,交换机是点对点转发,不会产生广播风暴.在我们购买网络设置时,购买的交换机,通常是智能型的Hub,却被奸商当做交换机来卖.这 ...

  5. 广播风暴原理,成因及解决办法(个人整理)

    广播风暴:简单的讲,当广播数据充斥网络无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪,这就发生了"广播风暴".一个数据帧或包被传输到本地网段 (由广播域定义)上的 ...

  6. STP生成树协议详情

    生成树协议 STP        生成树协议 RSTP    快速生成树协议 MSTP    多生成树协议 一.原理 stp:Spanning Tree Protocol (生成树协议) 交换网络广播 ...

  7. STP生成树原理及选举规则举例

    一.生成树原理 当一个网络是环形的网络时,会形成广播风暴,所谓的广播风暴是指对于一个大家都不知道主机的MAC地址,所有交换机都会不停的相互广播,会占用大量的网络带宽,导致正常业务不能运行,甚至彻底瘫痪 ...

  8. STP生成树协议实验

    文章目录 前言 一.生成树协议? 二.生成树原理 1.STP工作原理 2.STP主要参数 3.STP根网桥 4.STP协议版本 三.生成树实验 1.配置步骤 2.配置 3.配置结果 3.ping 四. ...

  9. 华为交换机STP生成树协议

    生成树协议 原理 Stp:spanning tree protocol 交换网络广播风暴: 交换机物理布局是环状(线路备份) 交换机之间互相转发未知地址的数据帧 线路备份,形成无环拓扑避免广播风暴=& ...

最新文章

  1. python封装api linux_python Socket编程-python API 与 Linux Socket API之间的关系
  2. Hadoop集群三种作业调度算法介绍
  3. Java实现自定义队列和树结构_Java数据结构之链表、栈、队列、树的实现方法示例...
  4. Expected one result (or null) to be returned by selectOne(), but found: 7
  5. VMware ESXI 5.0群集+ISCSI存储
  6. 使用NoSQL Manager for MongoDB客户端连接mongodb
  7. 项目怎么导入mui_Vue项目MUI的使用
  8. Socket通信学习(一):Socket通信原理
  9. leetcode—11.队列题型python解答
  10. 使用maven给spring项目打可直接运行的jar包(配置文件内置外置的打法)
  11. ubuntu18.04配置ORB-SLAM3
  12. c++语言boolean例子,C++语言——99个常见编程编程 学习小结
  13. Linux下挂载NTFS
  14. 0-简单工厂模式类图
  15. java kvm_KVM环境搭建
  16. PCL官网学习OpenNI Grabber 调用奥比中光Astra s 遇到问题openni2_grabber.cpp @ 325 : No devices connected.
  17. Soft Diffusion
  18. linux的虚拟内存是4G,而每个进程都有自己独立的4G内存空间,怎么理解?进程虚拟地址4G指拥有4G的寻址能力,需要页表转换为实际物理地址,每个进程用到的内核是直接映射,地址的进程地址-3G的关系
  19. C#检索局域网内主机的IP、MAC地址
  20. 总结 and 读后感之自控力 By 凯利·麦格尼格尔

热门文章

  1. HashTable 解决碰撞(冲突)的方法 —— 分离链接法(separate chaining)
  2. Informatica在linux下安装搭建
  3. mysql---表所在数据库
  4. jni 入门 android的C编程之旅 ---环境搭建helloworld
  5. 由验证下载服务器性能得到的启示
  6. ZOJ 3633 rmq 重点在于转化
  7. C# ckeditor+ckfinder的图片上传配置
  8. PMCAFF | 史上最完整的沙龙活动策划总结
  9. 关于DataGrid数据绑定后对字段进行替换的问题与办法
  10. Android学习笔记之SoftReference软引用,弱引用WeakReference