• MAC地址震荡,STP震荡,OSPF路由协议震荡


    目录

    一.MAC地址震荡

    原因

    二层环路

    三层环路

    避免三层环路的方法

    1.最小化路由汇总

    2.null0路由

    二.STP震荡

    原因

    三.路由协议震荡

    OSPF路由协议震荡

    BGP路由震荡


    一.MAC地址震荡

    原因

    MAC地址表震荡也称为MAC地址漂移,是由网络环路造成的:

    二层环路

    假设现在网络还没收敛,主机X要去ping网段2。由于主机X不知道目标MAC,所以先是发送ARP请求。

    先看交换机A收到了帧,查看了源MAC对应的是主机X,更新MAC地址表。查看目标MAC是FF,复制原数据帧N份,进行泛洪。从交换机A出来的帧其一到了网段2,这里都是正常的ARP请求。

    但是从交换机出来的帧其二到了交换机B,交换机B和交换机A一样做相同的操作,更新MAC地址表,记录的是主机X和对应的端口。交换机B一看帧的目的MAC是FF,又进行泛洪,传回主机X和交换机B

    上面的数据帧的传输已经是有问题了,再看主机X假设ping报文数据帧到B,B这个时候已经有刚刚A传来的对于主机X的MAC信息,但是B收到了新的帧,马上就更新了。但是,从主机B和交换机A,交换机B和主机X连的端口肯定不是同一个。这就导致了主机B的MAC表不断更新,而且还不稳定....

    上面说的都是ARP,是广播帧。要是单播帧呢?交换机A和交换机B假设都已经学到了MAC表,主机X发出来的一个数据帧会传到A和B,然后它们又会传递网段2,这样就有了两个数据包。

    除了会产生MAC地址震荡外,还会产生广播风暴:

    当网络中存在环路(交换机A,B的两个端口,通过网线相互连接),就会造成每一帧都在网络中重复广播,引起广播风暴。

    三层环路

    三层环路是两个路由器之间的多个端口相互连接,形成一个环路导致的

    正常路由

    目的地址是:114.114.114.114

    R2匹配默认路由,将数据包发送给R1,R1匹配默认路由发送给运营商。

    产生环路路由

    目的地址是:192.168.100.1

    R2匹配默认路由,将数据包发送给R1,R1匹配192.168.0.0/16路由发送给R2,R2又发送给R1....R1和R2对此数据包来回发送直到ttl=0。

    在三层转发时会自动引入ttl( Time To Live),每经过一次三层转发,减少1。

    ttl值范围(0~255),ttl=0时数据包丢弃。

    假如ttl=10,那么经过一次三层转发变为9,再次三层转发变为8....直到到达目标或者ttl=0丢弃

    避免三层环路的方法
    1.最小化路由汇总

    用192.168.0.0/22替代R1指向R2的回程(192.168.0.0/16),包含的范围就比较小,192.168.0~3.0~255

    其中R2直连的有192.168.1.0/24、192.168.2.0/24;

    其中不存在的有192.168.0.0、192.168.3.0,如果此时访问192.168.100.1,R1因为没匹配到路由直接丢弃。

    如果此时访问的目的地址是192.168.0.1

    同样的环路问题又次出现,但此番汇总环路的目的ip地址范围只剩下192.168.0.0/24、192.168.3.0/24

    2.null0路由

    为了让这些网段可能产生三层的环路,可以配置null0路由

    让192.168.0.0/24、192.168.3.0/24指向null0

    目的地址是:192.168.0.1

    R2匹配默认路由发送给R1;

    R1根据最长掩码匹配原则匹配到192.168.0.0/24为最优,下一跳为null0,所以直接丢弃,避免了环路问题。

    二.STP震荡

    原因

    为了避免环路,所以引入了STP生成树协议,但是当STP配置不正确或网络拓扑发生变化时,可能会导致STP计算出不同的生成树,交换机之间频繁地切换端口的状态,就会导致STP震荡

    STP震荡与MAC地址震荡的区别与联系

    联系

    两者都与网络环路有关

    区别

    1.

    MAC地址震荡是在数据包转发层面上的问题。

    STP震荡是在网络拓扑计算和链路状态切换层面上的问题。

    2.

    STP震荡会导致交换机端口频繁变化,可能导致网络中断。

    MAC地址震荡则会导致大量重复的数据包传播,消耗带宽和资源。

    三.路由协议震荡

    OSPF路由协议震荡

    OSPF是动态路由协议,当某个链路一直down/up,OSPF就会一直更新,路由器就会一直重新计算路由,这就是OSPF路由震荡

    1.多区域,区域间做路由汇总,解决区域内路由震荡带来的全网路由重新计算。

    2.合理利用 stub 区域,比如 stub/totally stub/nssa/totally nssa 区域,让区域成为 stub 区域,其他区域的路由对该区域而言就是默认路由,其他区域动荡和该区域无关。


    3.外部路由重发布到 OSPF,先做好汇总,比如静态路由指向 null0,然后重发布这条静态路由到 OSPF,这时,外部路由带来的震荡仅在外部路由域有影响,对 OSPF 路由域毫无影响。

    BGP路由震荡

    1.发布路由时,可先汇总好后指向 null0,然后 network 进 BGP,减少发布路由的条目。


    2.BGP 有路由惩罚措施,一条路由频繁震荡,会惩罚为不可用路由,直到其稳定后,才可成为可用路由。

    总的来说,防止路由协议震荡:

    1.减小路由域
    2.做好汇总
    3.一定的震荡路由惩罚措施

  • 相关阅读:
    【PAT甲级 - C++题解】1062 Talent and Virtue
    专业四第二周自测
    130、★LeetCode-115.不同的子序列
    k8s发布eureka集群,创建微服务项目
    java毕业生设计校园闲置物品交换平台系统计算机源码+系统+mysql+调试部署+lw
    R语言layout () 函数
    Ruby编程语言面试题库和答案(语法、代码)
    macOS - 处理系统更新红点
    MongoDB学习总览
    QT画图功能
  • 原文地址:https://blog.csdn.net/weixin_69884785/article/details/133315561