接到客户求助,最近进行了一次网络“出诊”。这是一个由傀儡主机的DDos***引发的网络故障,案例比较典型,排错过程也颇曲折。笔者就还原其过程,与大家分享。

  1.网络环境

  这个客户是一家化工企业,网络规模不大。十多台交换机组成的局域网,节点大约150个左右。没有划分VLAN,—部分主机运行IPX协议,另一 部分运行TCP/IP协议。其中只有少数主机可以访问Internet,接入模式为ADSL路由器直接连接网络中的一台交换机。ADSL路由器中启用了其 自带防火墙功能,所有可以上网的主机安装了防病毒软件。

  2.故障描述

  最近的某一天,整个网络突然瘫痪。可以看到所有交换机端口指示灯急速闪烁,测试得知网络中任意两台主机之间不能相互ping通,所有网络应用均 不能正常进行。在拔掉部分网线(交换机之间的级连线)后,症状有所减缓,最后恢复正常。将拔掉的网线逐一插回原位,故障现象未重新出现。此后这种现象不定 时、无规律地出现。

  3.故障分析

  基于故障发生时交换机端口指示灯急速闪烁、网络中任意两台主机之间相互不能ping通这一现象,初步断定此时网络中充斥了大量的广播包,耗尽了 网络资源。那么这些突然出现的巨量广播包是哪里来的呢?为查找广播源,在故障出现时,使用Sninffer软件捕捉数据包。结果发现,网络中并没有出现原 来估计的广播包,却有大量的不正常单目IP数据包。

  4.排除故障

  通过分析发现,这些数据包是主机172.*.*.1l发送给主机219.*.*.88的,发送速度不小于每秒l万5千个。询问管理员得知,172.*.*.1l是内网的一台可以访问Internet的主机。这明显是不正常的,将该可疑主机断开后,问题解决。

  5.深入分析

  网络故障虽然排错,但笔者感觉一切并没有这么简单。因为按常理,发送给主机219.*.*.88的数据包不是广播包,不应该被发送到运行 Sniffer主机所在的交换机端口。很明显,这些数据包在网络中以广播的形式被发送了。如此数量的广播包充斥网络,正是造成网络瘫痪的罪魁祸首。

  (1).局域网主机成了傀儡

  为搞清故障原因,在可疑主机上安装Sniffer,分析网络行为。通过抓包分析发现,一旦连接Internet,该主机主动连接到外网中一 FTP服务器,并下载文本文件ddos.txt。那么,ddos.txt文件内容中有什么呢?原来是一个IP地址和8O端口。然后,对数据包进一步分析发 现所有数据包的目标主机正好是ddos.txt中指定的IP地址。这些无意义的数据包之所以使用8O端口,是为了突破防火墙的限制。原来,这台主机“有 幸”成了一次分布式拒绝服务***(DDoS)的傀儡机。每次连接E互连网,自动到一个FTP服务器下载文件ddos.txt,如果该文件为空,则继续以一 定时间间隔下载文件,直到获得的文件中有目标主机的IP地址和端口后,即开始向目标主机展开DoS***。这正是网络故障现象不定时、无规律地出现的原因。

  (2).ADSL路由器被“淹没”

  另一个问题是,这些***包应该是从傀儡机发送到ADSL路由器,然后到Internet中目标主机的,并不是通常所说的广播包,为什么交换机以 广播的形式发送这些广播包呢?分析可能原因只有一个:此时交换机的地址转发表(CAM)中没有ADSL路由器内网接口的物理地址,引起交换机将单目包广播 到所有交换机端口。

  开始时,交换机地址转发表中包含ADSL路由器的物理地址。那么,傀儡机开始***后,网络中形成一个稳定的***数据流:傀儡机→若干交换机 →ADSL路由器→被***的目标主机。此时对内网的影响仅仅是某些交换机的端口和ADSL路由器,ADSL路由器因为忙于处理大量的***包而被“淹没”, 会导致内网中主机访问互连网出现问题。

  (3).交互导致的广播风暴

  什么原因导致交换机的地址转发表丢弃了ADSL路由器内网接口的物理地址昵?有两种情况:一是缺省情况下,5分钟内,如果交换机没有接到某个设 备发送的数据帧,则认为该设备已经宕机,为节省资源,将从CAM表中删除该地址。二是当STP协议探测到网络拓扑有改变时,将清空所有未刷新的CAM表 项。假定此时有人因为不能上网而重新启动主机,或插拨网线,则会引起交换机端口状态发生变化。此时,交换机认为网络拓扑发生了变化,它的下—个动作是通知 所有交换机,15秒内清除未被刷新的地址转发表表项。

  这里的“未被刷新”是指,交换机没有收到以该物理地址为源地址的数据帧,也就是说,该设备没有发送数据帧经过交换机到其他设备,那么该设备的物 理地址在交换机的地址转发表中将被清除。以后,所有以该设备物理地址为目的地址的数据帧,虽然不是广播帧,也将被发送到交换机的所有端口,这就是平时所说 的广播风暴。

  (4).故障形成过程

  通过上面的分析,最后回到我们的例子理一理这次故障形成的过程。在傀儡机的***行为开始后,小小的ADSL路由器每秒要接收、处理不少于 l5o00个数据包,它纵然是有三头六臂,也没机会向交换机发送数据包了。也就是说,它现在是只有接受没有发送,没办法刷新交换机cAM表中的相关表项。 那么,快的话15秒后,慢的话5分钟,交换机就会清除ADSL路由器的物理地址记录。别忘了,此时***数据流并没有停止,而这些***数据帧恰恰是以 ADSL路由器物理地址为目的地址的,这样,灾难发生了,所有数据帧被广播到网络中每台交换机中的每—个端口。

  6.解决方案

  这此网络故障从表面上看是由一台傀儡主机引起的,具有一定的偶然性。但从根本上来说是必然,不合理的网络结构是造成这次故障的关键因素。笔者给出的解决方案是:

  (1).将充当傀儡机的电脑从网络中断开后,重新安装系统,彻底杜绝隐患。

  (2).加强本地网络安全防范措施的同时,对原网络结构进行调整:据不同应用分成几个VLAN,将可以上网的机划分到某个特定VLAN中,限定此类故障的影响范围。

  (3).将连接主机的端口配置为STP速端口,不参与STP协议,可以减少网络中交换机不

  必要的拓扑改变操作。

  就这次网络排错笔者的启示是:网络排错类同于医生治病,庸医往往是“头痛医头,脚痛医教”不会从根上进行医治,而高明的医生却往往是治本。网络排错何尝不是呢?

转载于:https://blog.51cto.com/1841cisco/1224093

局域网瘫痪 傀儡主机的DDoS***相关推荐

  1. linux列举网卡,linux下快速列出局域网中所有主机名(计算机名)的脚本

    linux下快速列出局域网中所有主机名(计算机名)的脚本,脚本,主机名,网中,站长站,命令 linux下快速列出局域网中所有主机名(计算机名)的脚本 易采站长站,站长之家为您整理了linux下快速列出 ...

  2. java获取局域网内主机,java怎么获取局域网内所有主机ip

    java怎么获取局域网内所有主机ip 关注:53  答案:2  mip版 解决时间 2021-01-27 21:31 提问者夢岭杺 2021-01-27 12:02 java怎么获取局域网内所有主机i ...

  3. arp命令(windows ),nmap查看局域网内所有主机IP和MAC

    ARP命令详解 ARP是一个重要的TCP/IP协议,并且用于确定对应IP地址的网卡物理地址.实用arp命令,我们能够查看本地计算机或另一台计算机的ARP高速缓存中的当前内容.此外,使用arp命令,也可 ...

  4. cmd ping 一台计算机名,windows CMD命令查看局域网内所有主机名及IP

    COLOR 0A CLS @ECHOOff Title查询局域网内在线电脑IP :send @ECHO off&setlocal enabledelayedexpansion ECHO 正在获 ...

  5. 阿里云主机遭受DDOS攻击IP不能使用如何更换弹性公网IP

    阿里云主机遭受DDOS攻击阿里云会将你的ip打入冷宫处理,怎么确定你的服务器是否处于这种情况呢 使用ssh测试链接会显示链接超时但是使用阿里云的VNC可以,这样使用vnc也可以用top命令查看出并不是 ...

  6. 不同局域网内的主机互访(海蜘蛛实现linux虚拟机与windows虚拟机不同网段间互访)(海蜘蛛的安装与使用)超详细

    不同局域网内的主机互访(海蜘蛛实现linux虚拟机与windows虚拟机不同网段间互访) 1.设置海蜘蛛的两个网络适配器网络连接为特定虚拟网络 2.编辑VM虚拟网络 3.将两个虚拟机设置为静态IP 3 ...

  7. 广域网云主机或服务器_局域网或广域网主机的ip地址

    一文搞懂常用的网络概念:域名.静态IP和动态IP.域名解析DNS.动态域名解析DDNS 前言 在此之前,我对于网络通讯上的一些基础概念总是含糊其辞,感觉自己知道都又道不出个所以然,总之就是不成体系难以 ...

  8. ssh连接局域网内ubuntu主机_ubuntu使用ssh连接远程电脑的方法

    目前,大多数linux distributions都预先安装了ssh的客户端,即可以连接别人的电脑.但也有例外的情况,所以,下面先把ssh的客户端与服务端的安装一并讲了吧. ssh客户端及服务端的安装 ...

  9. 第十六期:AWS 瘫痪:DNS 被 DDoS 攻击了 15 个小时

    AWS警告客户,分布式攻击严重阻碍网络连接,殃及众多网站和应用软件,云巨头AWS遭到攻击后,今天其部分系统实际上断.网. 作者:佚名来源|2019-10-23 15:17 AWS警告客户,分布式攻击严 ...

最新文章

  1. Roberts 边缘检测
  2. iosanimationWithKeyPath
  3. 云原生微服务架构的技术内涵
  4. Android复习08【内容提供者】
  5. 神经网络基础:七种网络单元,四种层连接方式
  6. 输入文件c语言程序,C语言程序设计 对文件的输入输出.ppt
  7. Web 仿 App 动画竟然引出了“性能杀手”
  8. AM335x(TQ335x)学习笔记——GPIO关键驱动移植
  9. [剑指offer]面试题第[41]题[Leetcode][第235题][JAVA][数据流中的中位数][优先队列][堆]
  10. B站获得英雄联盟赛事直播三年独播版权
  11. hadoop ha 参考
  12. RSA算法特点及应用简述
  13. 内部办公网与IDC机房的GRE隧道配置实践
  14. eclipse里maven install时,报错提示jdk为无效的目标版本:1.7
  15. Linux登陆密码策略
  16. 插件 微信 自动 抢红包
  17. 无限循环小数四则运算_无尽小数的公理及其四则运算.doc
  18. 前端面试题之浏览器系列
  19. 华为OD机试 - 租车骑绿岛
  20. Linux学习过程感悟

热门文章

  1. nginx虚拟目录设置 alias 和 root
  2. 极品:蓝丽网 - Vml图像画板.2003 web上的PhotoShop
  3. libjpeg-turbo介绍及测试代码
  4. OpenCV3.3中主成分分析(Principal Components Analysis, PCA)接口简介及使用
  5. C++11中std::initializer_list的使用
  6. Markdown语法简介
  7. linux驱动:音频驱动(七)交叉编译alsa库及工具集alsa-utils
  8. php 5.2 模块路径,5.2 模块和操作
  9. 必须进行支持的游戏方可使用此功能_企业微信 3.0上线,开放朋友圈功能,又一风口?...
  10. Java项目:精品养老院管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)