聚生网管原理分析
该网管软件主要有以下功能:
1、不需要任何客户端软件,只需单机安装,就可以控制整个局域网。
...网管是B/S架构的监控软件,只需在局域网内的任何一台机器上安装就可以控制整个局域网,不必安装客户端软件或者其他任意网络设备。
2、...对网络环境没有任何要求的监控软件,安装在局域网任意一台机器上。
当前,主流监控软件必须通过代理服务器、带网管功能的智能交换机或者加装HUB进行旁路设置才能保证监控系统的正常运行。而...网管软件对网络环境没有任何要求,安装部署软件时不需要对原有环境做任何改动,极大降低了进行网络结构改动的不确定性和花费,同时为管理员进行设置、操作管理提供了极大便利。”这是该网管的功能介绍。本文非软广告,只以此为例探讨技术,因此不提该网管软件全名。
熟悉网络的人都明白,交换机已经不采用广播式转发机制,连接某端口的主机不会收到不是发给它的数据(除非FDB表中没有对应MAC),当你使用嗅探软件时,可以发现根本收不到其它主机的数据,这就是非广播转发机制起作用。同样,正常情况,网管软件安装在交换网络中,只能看到安装网管软件服务器的传输数据,管理不到本IP网内的其它主机。但该网管软件却称对网络环境没有任何要求,换句话说即时在交换网络也能管理IP网内主机。这违反了交换机的转发机制,为什么呢,现在来破解之。
首先,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记录,改为手动添加,同时设置为不超时。在Windows XP/2003中为ARP -s "IP" "MAC"。这里点到为止,网络上有许多相关文章,这里再写的话不符合我“不写别人写过的东西”的风格,在google里搜一下“ARP”就找到了。在交换机或路由器(以CISCO为例)为ip static-arp。这种方法有缺点,首先,工作量太大,如果网络主机过多,手动添加费时费力,特别是在主机上添加,一般多使用脚本。第二,网络主机过多时,静态ARP表过大会占用机器过多的资源。第三,“防”只能治标,不能治本,防范虽然可以挡住***,但***源并未消失,而且大量ARP包充斥网络会加大网络的负荷,严重的会产生拥塞。当务之急是找出谁在捣蛋,一举歼灭之。使用嗅探软件捕获几个ARP包,分析ARP包中的信息多半有蛛丝马迹,再不行每个端口挨个嗅过去。能深入了解TCP/IP协议、独立开发***软件的人很少,大部分人在安全公司,又有一部分人去黑银行去了,也犯不着跟你的小局域网较劲,所以多半是些使用网络执法者等工具的“点击***”。等找到这些人,还要依据公司规章进行处罚,一方面惩戒个人,一方面警告他人,我们要知道技术不是万能的。当然这是后话了。