局域网连接常见问题分析
最近一个项目在进行实施的时候,30台左右客户端(总数在100台左右)在几分钟内逐步发现不能和服务器进行通信的问题。由于软件经过压力测试没有问题,故怀疑是硬件环境导致的问题。
后发现某台客户端机器,拔掉网线,全部客户端就正常,一插入网线,其它客户端就不正常。后经过分析,有可能是如下两个原因造成。
一、 网络风暴
名词定义:
一个数据帧或包被传输到本地网段 (由广播域定义)上的每个节点就是广播;由于网络拓扑的设计和连接问题,或其他原因导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪。这就是网络风暴,即广播风暴。
产生广播风暴的原因
一般情况下,产生网络广播风暴的原因,主要有以下几种:
1、网络设备原因:我们经常会有这样一个误区,交换机是点对点转发,不会产生广播风暴。在我们购买网络设置时,购买的交换机,通常是智能型的Hub,却被奸商当做交换机来卖。这样,在网络稍微繁忙的时候,肯定会产生广播风暴了。
2、网卡损坏:如果网络机器的网卡损坏,也同样会产生广播风暴。损坏的网卡,不停向交换机发送大量的数据包,产生了大量无用的数据包,于是产生了广播风暴。由于网卡物理损坏引起的广播风暴,故障比较难排除,由于损坏的网卡一般还能上网,我们一般借用Sniffer局域网管理软件,查看网络数据流量,来判断故障点的位置。
3、网络环路:有这种原因,就是,一条双绞线,两端插在同一个交换机的不同端口上,导致了网络性能骤下降,打开网页都非常困难。这种故障,就是典型的网络环路。网络环路的产生,一般是由于一条物理网络线路的两端,同时接在了一台网络设备中,现在的交换机(不是HUB)一般都带有环路检测功能。
4、 网络病毒:目前,一些比较流行的网络病毒,Funlove、震荡波、RPC等病毒,一旦有机器中毒后,会立即通过网络进行传播。网络病毒的传播,就会损耗大量的网络带宽,引起网络堵塞,引起广播风暴。
预防风暴的方法:
1、增加一条注册表项,禁用445端口:
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/NetBT/Parameters/SMBDeviceEnabled ,类型: DWORD,值:0 (默认)。
说明:关闭445端口防止广播风暴的方法只适用于SP1;SP2打齐补丁以后可以不必关闭。
故障定位
1、 在核心交换机上,进全局模式,输入:show proc cpu , 确认是否是网络风暴或其他异常流量引起的网络异常。如果交换机的CPU利用率较高,且大部分的资源都被IP进程占用,则基本可以确定网络中有大流量的数据。
2、 在核心交换机上,进全局模式,输入:show int | I protocol | rate | broadcasts ,查找异常流量是从交换机的那一个端口来的。如果找到一个端口的发送的广播包非常高,且接收到的广播包也非常多,则基本可以找到来源,如果该端口下联的也是可管理的交换机,则再次执行此过程,直到找到一个连接PC或者HUB的端口。
注:
据一些统计资料表明,网络上的设备数量在150~200台时,网络运行正常,且可以达到很高的利用率。通常情况下,在采用多种通讯协议的网络中,计算机不应多于100台,在采用一种通讯协议的网络中,计算机不应多于150台。如果计算机的数量较多,应采用划分VLAN的方式将网络分隔开来,将大的广播域划分为若干个小的广播域,以减小广播风暴可能造成的危害。
我们可以通过sniffer观察交换机的端口上广播包数及与其他信息包的比率来确定广播信息是否已对网络的通讯构成危害。作为发现未知设备的主要手段,广播在网络中起着非常重要的作用。然而,随着网络计算机数量的增多,广播包的数量会急剧增加。当广播包的数量达到30%时,网络传输效率将会明显下降。
二、 ARP攻击
名词定义:
ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。此种攻击可让攻击者取得局域网上的数据封包甚至可篡改封包,且可让网络上特定计算机或所有计算机无法正常连接。
a) ARP定义
i. ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的底层协议,负责将某个IP地址解析成对应的MAC地址。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。
ii. ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行。
b) ARP攻击原理
i. ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
ii. ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
iii. 某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则广播A一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。
c) 遭受ARP攻击后现象
ARP欺骗木马的中毒现象表现为:使用局域网时会突然掉线,过一段时间后又会恢复正常。比如客户端状态频频变红,用户频繁断网,IE浏览器频繁出错,以及一些常用软件出现故障等。如果局域网中是通过身份认证上网的,会突然出现可认证,但不能上网的现象(无法ping通网关),重启机器或在MS-DOS窗口下运行命令arp -d后,又可恢复上网。
ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时除了会导致同一局域网内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如盗取QQ密码、盗取各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。
基于ARP协议的这一工作特性,黑客向对方计算机不断发送有欺诈性质的ARP数据包,数据包内包含有与当前设备重复的Mac地址,使对方在回应报文时,由于简单的地址重复错误而导致不能进行正常的网络通信。一般情况下,受到ARP攻击的计算机会出现两种现象:
1.不断弹出“本机的0-255段硬件地址与网络中的0-255段地址冲突”的对话框。
2.计算机不能正常上网,出现网络中断的症状。
因为这种攻击是利用ARP请求报文进行“欺骗”的,所以防火墙会误以为是正常的请求数据包,不予拦截。因此普通的防火墙很难抵挡这种攻击。
对ARP攻击的防护
防止ARP攻击是比较困难的,修改协议也是不大可能。但是有一些工作是可以提高本地网络的安全性。
首先,你要知道,如果一个错误的记录被插入ARP或者IP route表,可以用两种方式来删除。
a. 使用arp –d host_entry
b. 自动过期,由系统删除
这样,可以采用以下的一些方法:
1)减少过期时间
#ndd –set /dev/arp arp_cleanup_interval 60000
#ndd -set /dev/ip ip_ire_flush_interval 60000
60000=60000毫秒 默认是300000
加快过期时间,并不能避免攻击,但是使得攻击更加困难,带来的影响是在网络中会大量的出现ARP请求和回复,请不要在繁忙的网络上使用。
2)建立静态ARP表
这是一种很有效的方法,而且对系统影响不大。缺点是破坏了动态ARP协议。可以建立如下的文件。
test.nsfocus.com 08:00:20:ba:a1:f2
user. nsfocus.com 08:00:20:ee:de:1f
使用arp –f filename加载进去,这样的ARP映射将不会过期和被新的ARP数据刷新,除非使用arp –d才能删除。但是一旦合法主机的网卡硬件地址改变,就必须手工刷新这个arp文件。这个方法,不适合于经常变动的网络环境。
3)禁止ARP
可以通过ipconfig interface –arp 完全禁止ARP,这样,网卡不会发送ARP和接受ARP包。但是使用前提是使用静态的ARP表,如果不在ARP表中的计算机 ,将不能通信。这个方法不适用与大多数网络环境,因为这增加了网络管理的成本。但是对小规模的安全网络来说,还是有效可行的。
但目前的ARP病毒层出不穷,已经不能单纯的依靠传统的方法去防范,比如简单的绑定本机ARP表,我们还需要更深入的了解ARP攻击原理,才能够通过症状分析并解决ARP欺骗的问题。