显示标签为“MAC”的博文。显示所有博文
显示标签为“MAC”的博文。显示所有博文

2008年11月11日星期二

ARP透视——ARP原理

在局域网中,是通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有极其重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下表所示。

主机 IP地址 MAC地址
A 192.168.1.1 aa-aa-aa-aa-aa-00
B 192.168.1.2 bb-bb-bb-bb-bb-11
C 192.168.1.3 cc-cc-cc-cc-cc-22
D 192.168.1.4 dd-dd-dd-dd-dd-33

我们以主机A(192.168.1.1)向主机B(192.168.1.2)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.2的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.16.2的MAC地址是bb-bb-bb-bb-bb-11”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

从上面可以看出,ARP协议的基础就是信任局域网内所有的人,那么就很容易实现在以太网上的ARP欺骗。

局域网遭遇盗用MAC地址上网问题的解决方法

盗用MAC地址是一直局域网管理里一个比较棘手的问题,而且总是没有简单的方法能够避免这些现象,说起来真的是一个很让网络管理员头痛的问题。

交换机端口绑定MAC地址是一个很彻底的好办法,但只有智能交换机才有端口绑定MAC地址功能,如果全部换智能交换机的话我想是一笔不小的投资,一般的企业也不会为避免盗用MAC现象而投入资金更换网络设备,而且绑定端口后还会给网管带来很大的不便,如果电脑位置动一下,就要跟着修改端口绑定记录,无形中给管理员增加了很大的工作量。

宽带提供商在接入设备上会做这样的投资和设置,我们当地的网通LAN就是采用这种方式,把每个端口划分成一个单独的VLAN,并把端口绑定MAC。这样的安全性确实很高。因为作为他们来说,每被盗用一个MAC地址,他们就会有直接的经济损失,而作为一般的企业,网络只是用来辅助工作的,而并不是一种公司的产业。所以按他们的做法去做是不现实的。

现在通过宽带路由器去控制网基本上是采用IP过滤和MAC过滤,有些人认为把IP和MAC地址绑定起来可以解决盗用IP或MAC问题,但如果有人把IP和MAC一起改的话,那就束手无策了,路由器根本无法判别哪个是真的哪个是假的,就象是“真假悟空”一样,难以分辨。

我公司原来使用宽带路由器,但盗用MAC地址的现象很频繁,MAC地址冲突后,会出现网络时断时通,PING后丢包很严重,表面上很象线路问题。虽然可以通过公司规章制度去约束这种行为,但往往要网络管理员上报这些违归行为,这样做会恶化同事关系,在同一个公司里工作,同事关系搞不好也是一大忌,到时候万一要去麻烦别人的时候你就会发现做什么事情都不顺,因此给自己留条后路也是必要的,无奈中的无奈,只能通过技术办法去解决这个技术问题啦。

现在我在公司改用CCPROXY代理上网,其实用代理服务器上网很早就用过了,以前路由器价格昂贵,所以宽带共享很多都是使用代理服务器,自从宽带路由器普及后,就不再使用代理服务器了,因为总是有人说宽带路由器有什么样什么样的好处,真想不到今天又会回过来使用代理服务器,现在采用账户名+密码+MAC绑定的方式认证上网权限,这样做在原来通过MAC地址控制上网的基础上,多了一个用户名密码环节,这样会大大增加非法上网者的难度。单单盗用MAC地址是没用的,如果密码被盗,那么管理员可以在代理服务器上修改密码,这样主动权还是掌握在管理员手里,象以前那样只通过MAC控制上网权限,有时候处理起来是很被动的。虽然通过端口代理上网比直接使用路由器设置复杂些,因为有些软件根本不支持代理方式,但装了permeo-Driver-combo-win_4_2_2.zip这个软件后,不需要在客户机上设置烦琐的代理服务器,基本能做到和使用路由器那样的方便。CCPROXY还有一个好处是针对不同的机器可以做不同的设置,如控制连接数,控制带宽,控制上网时间,控制过滤网站等等,而一般的宽带路由器只能做到批量控制,不能对不同的电脑分配不同的权限。