网络环路及其影响

网络环路及其影响

  • 1、定义
  • 2、影响
    • 2.1、广播风暴
    • 2.2、多重复数据帧
    • 2.3、 MAC地址表不稳定

网络环路及其影响_第1张图片
在上面的这个拓扑图中,交换机就成了一个单点故障(交换机坏了),此时的几个模块之间都无法进行正常的工作,客户机不能访问服务器,不能连接 internet,不能访问打印机。所谓单点故障,也就是一点发生故障,则整网络无法正常工作。

因此实际场景的交换式网络(路由同样),我们都需要对交换机进行冗余,但是引入冗余又会发生一个问题,一个很严重的问题,就是网络环路、即网络回路

1、定义

网络环路:也分为第二层环路和第三层环路,所有环路的形成都是由于目的路径不明确导致混乱而造成的,例如第二层,一个广播信息经过两个交换机的时候会不断恶性循环的产生广播,造成环路,而第三层环路则是原路由意外不能工作,造成路由通告错误,形成一个恶性循环;

简单点比方说:两台交换机相连,应该使用一条线相连,达到级联的效果,如果使用两条线连接,就构成了回路;
因此在回路产生的时候需要对交换机配置 生成树协议(STP:Spanning tree),不然的话信息会无终止传输,引起广播风暴.整个网络瘫痪。

例如刚有新机器加入网络的时候,从本身接入交换机产生一个mac地址和端口对照表。然后该交换机将该表传到相邻交换机,在另一个端口会穿回来,从而又增加一个mac地址表,这样无限制的传输会引起网络带宽用尽,从而导致网络瘫痪;

路由也是同样道理,只不过路由使用了更高级的协议,避免网络回路的产生;

2、影响

下面我们来看看环路对我们的网络到底造成了什么影响,影响主要有三点:

  • Broadca ststorms广播风暴

  • Multiple Frame Copies多重复数据帧

  • MAC Database Instability MAC地址表不稳定

2.1、广播风暴

广播风暴(broadcast storm)简单的讲是指当广播数据充斥网络无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪,这就发生了“广播风暴”。一个数据帧或包被传输到本地网段 (由广播域定义)上的每个节点就是广播;由于网络拓扑的设计和连接问题,或其他原因导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪,这就是广播风暴。

一个数据帧或包被传输到本地网段 (由广播域定义)上的每个节点就是广播;由于网络拓扑的设计和连接问题,或其他原因导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪,这就是广播风暴。

广播风暴根源:指数据帧形成环路,而帧头中无ttl的结构,所以帧始终有效,由于广播没有特定目标地址,所以hub/swtich会永远转发下去。

下图即是一个简单网络环路,交换机之间产生广播风暴。
网络环路及其影响_第2张图片
分析:如果 主机HostX 希望跟网络上的 其他主机 通讯,将数据报传给交换机A,但经过交换机B后又会将此报再一次传给交换机A,依次类似,构成了一个环,而且这个环后面比较严重,为什么?

我们在讲网络基础的时候,我们讲了数据帧的格式,大家可以回忆一下,但在这个格式中,没有类似于三层IP报头中TTL机制,所以数据帧在网络中将被无限次数的传递,从面造成了广播风暴,如果是单播的数据还要好一些,如果是广播或者组播数据在这样一个环路网络中传递则广播风暴更加明显。【注意:交换机的数据传输属于链路层,所以是数据帧形式传递。具体可以参考:TCP/IP协议详解】

为什么数据帧不设计TTL机制防止“广播风暴”?而是针对交换机提出的 STP 协议,升级版 快速生成树” RSTP(rapid)协议;

  • 生成树协议 Spanning Tree Protocol : 在网络开始转发之前,通过一系列沟通和计算,阻塞冗余链路,最终形成一个无环链路,即“生成树”。运行过程中,链路改变或正常端口故障时,重新计算生成树,并启用阻塞端口。STP是解决数据链路层环路问题的根本办法。

1、IP报头的TTL机制:

  • TTL - time to live (生存时间),标识IP数据包还能存活多久。
  • 在IPv4中, TTL是IP协议的一个8个二进制位的值【0-255】. 这个值可以被认为是数据包在internet系统中可以跳跃的次数上限. TTL是由数据包的发送者设置的, 在前往目的地的过程中, 每经过一台主机或设备, 这个值就要减少一点. 如果在数据包到达目的地前, TTL值被减到了0,那么这个包将作为一个ICMP错误的数据包被丢弃。因此,可以使用TTL防止数据回环,在网络来回传递!(一般蠕虫就是利用此点,造成网络瘫痪!)
  • TTL查看: 不同系统的TTL默认值不同,当然也可以修改。
[lolo@localhost ~]$ ping 10.10.204.162
PING 10.10.204.162 (10.10.204.162) 56(84) bytes of data.
64 bytes from 10.10.204.162: icmp_seq=1 ttl=64 time=0.398 ms
64 bytes from 10.10.204.162: icmp_seq=2 ttl=64 time=0.258 ms
64 bytes from 10.10.204.162: icmp_seq=3 ttl=64 time=0.303 ms
# ICMP: 是IP协议的一个上层协议
  • 我们可以通过wireshark抓包分析网络流量,可以根据TTL的值来确定是否被劫持。DNS、HTTP劫持后,一般通过检测TTL的变化或HTML元素检查来判定,判定方法可以从以下几个地方考虑:
    • 查看客户端抓包,服务器的TTL是否有较大波动,如果有较大的波动,很有可能百劫持。
    • 查看TTL的大小,根据网民的实际网络环境,初步判断网民到服务节点的路由个数【虽然比较难】,如果TTL的减量明显很少,只有1-5的减量,那很有可能是被劫持后的流量。

TTL在TCP/IP报文中如下图:
网络环路及其影响_第3张图片

2、三层IP报头:TCP头,IP头,帧头(MAC地址头)
网络环路及其影响_第4张图片
3、广播风暴的危害:

  • 大规模耗用链路带宽,使得正常数据不能得到有效传输
    网络中的HUB、交换机等交换设备会对广播数据帧进行泛洪操作。若网络中出现环路,交换设备经过多次泛洪之后,网络中就会出现大量方向互异的广播流,远远大过了交换设备所能承载的数据上限,从而正常的数据帧传输受到了抑制,便会导致信道的拥塞,其结果往往是延时或丢帧。
  • 造成交换机资源被占用,导致死机
    交换机对每个帧都要进行诸如缓存、检错、查询MAC地址表等操作,这些操均会占用其部分CPU,当大量的广播帧经过交换机处理时,就会大量占用系统资源,最终造成其“死机”状态;

2.2、多重复数据帧

网络环路及其影响_第5张图片
分析:主机X准备发一个单播帧给路由器Y,数据报发出后,发现有两条路可以到达路由器Y,一个是直接发过去,还有一条就是通过交换机A转给交换机B,然后再交给路由器Y,此时路由器Y就收到了两位一模一样的数据帧。

2.3、 MAC地址表不稳定

网络环路及其影响_第6张图片
分析:还是主机X发送数据帧给路由器Y,路由器的MAC地址表还没有被交换机学习到,数据帧沿链路发送到交换A和交换机B的端口0,那么交换机A和交换机B都将主机X的MAC地址记录在port0。因为是通过port0收到的数据帧,所以会通过两个交换机的port1向外泛洪,交叉来到相互交换机的port1口,又认为主机X的MAC地址所对应的端口是port1,即从交换机A发出来的数据帧来到了交换机B的port1端口。然后交换机B收到后又通过Port0口再次泛洪,依次类推,数据帧在环路里重复执行上述过程,交换机A和交换机B重复的在port1以及port0上不断的学习主机X的MAC地址,造成MAC地址表的不稳定。

你可能感兴趣的:(计算机系统,网络协议,网络)