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

目录

一.MAC地址震荡

原因

二层环路

三层环路

避免三层环路的方法

1.最小化路由汇总

2.null0路由

二.STP震荡

原因

三.路由协议震荡

OSPF路由协议震荡

BGP路由震荡


一.MAC地址震荡

原因

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

二层环路

MAC地址震荡,STP震荡,OSPF路由协议震荡_第1张图片

假设现在网络还没收敛,主机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的两个端口,通过网线相互连接),就会造成每一帧都在网络中重复广播,引起广播风暴。

三层环路

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

正常路由

MAC地址震荡,STP震荡,OSPF路由协议震荡_第2张图片

目的地址是:114.114.114.114

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

产生环路路由

MAC地址震荡,STP震荡,OSPF路由协议震荡_第3张图片目的地址是: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.最小化路由汇总

MAC地址震荡,STP震荡,OSPF路由协议震荡_第4张图片

用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

MAC地址震荡,STP震荡,OSPF路由协议震荡_第5张图片

同样的环路问题又次出现,但此番汇总环路的目的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

MAC地址震荡,STP震荡,OSPF路由协议震荡_第6张图片

目的地址是: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.一定的震荡路由惩罚措施

你可能感兴趣的:(软考网工,网络拓扑,macos,网络,华为交换机,软考网工,计算机网络)