首先,IP的目的是什么?它的目的是打造一个可连接多个物理网络的虚拟网络(见《也说IP协议》),看似数据传输时,是以IP确定对方的地址,但当我们把 观察范围从整个IP网络缩小到用IP连接的单个物理网络(以太网为例)时,却发现packet是被放到frame中传输的,主机使用MAC地址确定对方。 那么IP是如何对应到MAC呢?使用ARP。
ARP是工作在底层的、提供IP与MAC绑定的协议。虽然高层协议使用IP 确定对方,但传输时底层协议发送ARP包查询目的IP对应的MAC地址,再以该MAC地址为目的向网络送出帧,如果目的IP不在本网段内,则以网关MAC 地址为目的。很多人在网上询问包在网络上传送时什么地址会改变,这也是因为没有搞清楚IP与MAC的关系。
小帖仕:IPv6不再使用ARP将IP与MAC绑定,而使用将MAC地址直接编码进IP地址的映射方法。
ARP提供了IP与MAC对应的方法,A主机要想通过以太网发送数据给本IP网段内的B主机,A会先发送一个ARP查询广播包,向连接在 本IP网内的所有主机广播:B主机,你的IP是xxx.xxx.xxx.xxx,请问你的MAC地址是什么?当B主机收到这个包,会回应:A,我的MAC 地址是xx。A收到回应后,在自己的ARP表中记录:B的IP对应B的MAC。A发送数据时,把带有发送源A的IP和目的B的IP的packet封装进带 有发送源A的MAC地址和目的B的MAC地址的frame中,把这个frame送到网络中。这就是ARP正常的工作状态,我们设想一下,如果IP对应 MAC的过程被人故意修改了会怎么样?
假设C想***A,但A防护的很严密,经过一番努力,C发现A与B建立了IP信任,就是说A信任来自B的数据。这时,C可以向A发送一个 ARP主动通告(有别于上面的被动回复):我的IP是xxx.xxx.xxx.xxx(B的IP),对应的MAC地址是xxx(C的MAC)。A收到后, 刷新ARP表,以后从A发往B的包,都被发到C了。而C不用修改为B的IP,只需将发往A的包中将源IP改为B的IP,因为C知道A发往IP B的包都会 发到我这来。这样***就可以实施了。
通过上面的例子可以看出,通过精心设计的ARP表是可以改变通信路径的。要在使用交换机的网络中,能让随便一台主机管理到本IP网内的所有对外通信的方法就是让所有主机的对外数据都通过这台网管主机,再根据网管设置的策略允许或禁止某些通信。如何做到呢?
网管主机向全网发送ARP主动通告:网关IP对应的MAC地址是本网管主机的MAC。所有主机收到该ARP包,刷新自己的ARP表,设置 网关IP网管MAC。当主机对外通信时,它们认为数据是发往网关的,其实都被发往网管了,网管收到数据后,根据设置的规则和策略选择是 否将数据再次转发、以什么速度转发到真正的网关。这样就实现网管主机对对外通信的管理。
这里举一个证据证实我的观点:注意该网管的使用手册,它要求停止监控前要首先停止网管引擎,如果不停止就直接关机其它主机会有暂时的上不了网的现象,这个 暂时就是主机上ARP表失效时间。因为网管直接关机时,其它主机上的网关IP还是对应着网管主机上的MAC地址,还一直向这个MAC地址发送数据包。经过 一段时间,ARP表记录失效后,主机会再次询问网关的MAC地址,这时真实的网关把自己的MAC地址返回给其它主机,这样其它主机会恢复对外通信。如果在 关机前停止引擎,网管会发送一个ARP包,重新指明网关IP对应的真正的MAC地址,这样其它主机会无缝的转向真正的网关。
文章到这里已经写明了其工作原理,但如果在这里结束整个文章就不漂亮了,而且有网友问我网内ARP欺骗***怎么防范。下面就该工作原理的缺点、该网管软件 的不足及ARP欺骗***防范三方面展开来。因此,文章题目也要由《“Jusheng网管”工作原理分析》改为《从“Jusheng网管”工作原理说开 去》。
1、该工作原理的缺点:使用ARP欺骗破坏了网络原有的正常运作,扭曲了通信路径,破坏了网络建造前精心设计的网络方案和拓扑结构,加重交换机及网管机所 连接端口的负荷。而且不光只有网管机能使用ARP通告包,其它主机和网关(路由器或三层交换机)也能使用,虽然网管机定期、多次的向所有主机通告欺骗性的 ARP,但网关仍可能发送正常的ARP通告,这就可能导致管理失败。如果主机使用静态ARP表(可能由公司策略决定)也将导致无法实施。因此,此种原理不 适合在中大型网络及服务器区中使用。在此点一下,透明网桥方式是更好的选择。
2、该网管软件的不足:该网管只会向主机发送ARP欺骗通告,不会向网关发送某主机与MAC绑定的ARP通告,因此,它只能管理到上行通信,无法对网关送 回主机的数据进行监控,因为网关中的ARP表还是正常的IP与MAC对应项,下行数据不会流经网管机。其所谓的下行流量应该是它根据上行数据包计算出来 的,这样导致一个问题,它的下行流量监控不真实。其实网管仍可以用ARP欺骗网关,把网络中所有主机的MAC都替换成网管机的MAC,这样下行数据都会先 通过网管机再转发到真实的主机,但这样的缺点是网管主的负载会非常大,我想正是这个原因,才没有这样做,而转向采用通过计算上行数据包来推算下行流量的方 案。同时,该公司只提供软件产品,并未提供一整套解决方案,所以网络监控还取决于用户自行购置的硬件,导致不同公司的网络性能参差不齐。最近,该公司将该 网管软件从网站下架取而代之一种新的软硬件整体方案,我猜和上面有一点关系。因此,该网管软件不适合在中大型网络及服务器区中使用。
3、ARP欺骗***防范:ARP欺骗之所有会成功,是因为ARP表的更新造成的。ARP表的超时及更新可以减少机器的开销,使其适应更大型的网络,也就是 动态ARP表。要想防范,只需将动态ARP表改为静态ARP表。原先由机器自动添加ARP记录,改为手动添加,同时设置为不超时。