APP下载

计算机局域网探测技术的研究与实现

2009-06-22张秉兴

新媒体研究 2009年20期
关键词:报文数据包IP地址

张秉兴

[摘要]随着计算机网络技术的发展,网络规模不断扩大,网络中节点的类型和节点之间的互连技术多种多样,这使得网络的拓扑结构日益复杂,而且处于不断的变化之中,网络本身的安全性问题日益突出。局域网类型探测已作为网络安全研究的一项重要内容。在局域网中,传统的网络探测技术紧密依赖SNMP协议,而SNMP协议本身就存在着技术上的缺陷,导致传统的网络探测技术存在较大的局限性。

[关键词]计算机局域网探测

中图分类号:TP3文献标识码:A文章编号:1671—7597(2009)1020077--02

网络类型探测是依靠计算机软件和程序自动确定网络中各元素相互之间的动态关系,其中网络元素是指网络中的路由器(底层网关)、交换机、网关(高层网关),还有子网、网桥、Hub、主机。确定网络类型时,首先要分析网络拓扑结构时,常把网络中的路由器、子网、主机、交换机等设备抽象成为一个点。把连接这些设各的信道抽象成两点之间的边,这样网络拓扑就抽象成一个图。网络中有主干网、局域网、子网等,其使用的互连设备不同。而局域网多是由路由器一路由器连接或路由器一子网连接。而子网一般是不同结构的LAN网,子网内多是主机。所以,针对不同规模的局域网,所需拓扑信息的详略,探测速度的快慢,探测开销的大小,而设计不同的探测算法。

一、计算机局域网类型探测的基本技术

(一)ARP协议

地址解析协议(ARP)实现IP地址和物理地址(MAC)之间的映射。所有网络设备的以太网接口都支持ARP协议,并且在本机维持着该接口的ARP地址缓存表(ARP缓存),ARP表中的网络设各地址都是晟近活动过的有效IP地址与其MAC地址的对应关系。网络拓扑探测中,根据路由器或交换机的ARP缓存,可以获得与其以太网端口相连的以太局域网中的网络设备。由于ARP缓存是动态刷新的,路由器或交换机中无法包括网络中实际存在的所有网络设备的信息,所以在网络拓扑探测中通过ARP缓存获取的网络拓扑是不完整的,但它可以作为进一步拓扑探测的有效节点集合。当某主机要向局域网中另一台主机发送IP数据时,它首先根据目的主机的IP地址在ARP高速缓存中查询相应的局域网地址,ARP高速缓存是主机维护的一个IP地址到相应局域网地址的映射表。如果查到匹配的结点,则相应的局域网地址被写入局域网帧首部,数据报被加入到输出队列等候发送。如果查询失败,ARP会先保留待发送的IP数据报,然后广播一个询问目的主机硬件地址的ARP报文,等收到回答后再将IP数据报发送出去。

ARPI作时分为四种情况:

1、发送端是主机,希望将分组发送给同一网络上的另一主机。在这种情况下,数据报首部中的逻辑地址即目的IP地址必须映射为物理地址。

2、发送端是主机,希望将分组发送给另一个网络上的另一个主机。在这种情况下,这个主机要查找它的路由表,要找出到这个目的端的下一跳(路由器)的IP地址。若这个主机没有路由表,它就要查找默认路由器的IP地址。这个路由器的IP地址就是必须映射为物理地址的那个逻辑地址。

3、发送端是路由器,它已收到了数据报,该数据报要发送给另一个网络上的主机。它先检查它的路由表,找出下一个路由器的IP地址。这个IP地址就是必须映射为物理地址的那个逻辑地址。

4、发送端是路由器,它已收到了数据报,该数据报要发送给同一网络上的一个主机,数据报的目的IP就是必须映射为物理地址的那个逻辑地址。

(二)ARP欺骗技术

ARP欺骗技术是利用ARP协议的漏洞来实现的。ARP协议虽然是一个高效的数据链路层协议,但是在局域网中,它的工作基础是各主机相互信任,这就为网络监听提供了机会。在设计ARP协议时,为了减少网络上过多的ARP数据通信,对一台主机来说,即使收到的ARP应答并非因自己请求而得到的,它也会将其插入到自己的ARP地址转换表中,ARP欺骗技术正是利用这一漏洞来实现的。当同一网段内的两台主机之间的通信时,会分别给这两台主机发送一个ARP应答包,让两台主机都把第三方误认为是对方,这样,双方看似直接地实施了通信连接,而实际上中间夹着其他主机(也称为监听主机)。此时,监听主机不仅可以完成监听,而且监听者还可以随意更改数据包中的某些信息,并成功完成数据包转发。具体来说,ARP欺骗是向被欺骗主机发送ARP REPLY数据包,把数据包中的源IP地址改成被欺骗主机IP地址,源MAC地址还是自己的MAC地址。假设被欺骗主机A,B,欺骗主机c发送一个ARPREPLY数据报给A,其中源IP地址为B的IP地址,源MAC地址为c的机器的MAC地址,那么A发送到B的数据报就发到c的机器上了,同样对B做相同到操作,那么A和B之间的数据就会源源不断的通过c的机器转发,直到一个正常的ARP包更改了A,B的ARP缓存为止。

(三)Ping探测工具

Ping程序是对两个TCP/IP系统连通性进行测试的基本工具,它只利用ICMP回显请求和回显应答报文。Ping程序的原理是任何支持TCP?IP的设各在收到一个回显请求报文的时候,都会返回一个回显应答报文,请求报文和应答报文的格式相同。应答报文可以简单的从请求报文中导出,方法是将IP报文中的源地址和目的地址交换,将类型ECHO换成ECHO—REPLAY,将请求报文里收到的数据作为应答报文中的数据,然后重新计算出新的IP值以及校验和,便得到了正确的回显应答报文。若发送方能够收到正确的应答报文,则报告目的主机运行正常,并计算出发送请求与接收应答报文之间的时间差作为一次交互通信所花费的时间。大多数Ping程序都提供了一个R选项,其功能是记录路由的功能。它使得Ping程序在发送出去的IP数据包中设置的IPRR选项。这样每个处理该数据包的路由器都把它的IP地址放入选项字段中,当数据包到达目的端时,IP地址清单应该复制到ICMP回显应答中,这样返回途中所经过的路由器地址也被加入到清单中。当Ping程序收到回显应答时,它就得到了这份IP地址清单,清单中记录IP地址为路由器转发报文的出口的IP地址。

(四)Tranceroute探测工具

Traceroute检测并记录到达某个指定网络目标的路径。它使用ICMP报文和IP首部的TTL字段,并试图从沿路由到达目标的每个主机处获得一个ICMP的TIME—EXCEEDED消息。随着试图连接目标的一个不可达端口,将导致沿路每个路由器在丢弃UDP数据报时都返回一个ICMP超时报文。其工作过程描述如下:

1、发送40字节的UDP报文(TTL=I)至探测目标点:2、第一个接收该报文的路由器丢弃该报文,发送ICMP超时报文至源节点:3、源节点接收IcMP超时报文,并记下超时报文的发源地,将它作为通向探测目标点的第

一站路由器;4、再次发送40字节的UDP报文(TTL=2)至探测目标点:5、第二个接收该报文的路由器丢弃该报文,发送ICMP超时报文至源节点:6、源节点接收该超时报文,并记下超时报文的发源地,将它作为通向探测目标点的第二站路由器;7、TTL每次加1,重复上述步骤,直至目标点有回应,或者未成功到达目标点但己经过了最大跳数。如果报文到达目标点,则会有ICMP超时报文发送至源节点(因为报文的目的端口对于TCP/IP系统来说正常情况下是不使用的)。源节点根据ICMP超时报文来判别与目标点的连接是否成功。

二、计算机局域网类型探测系统的实现

(一)需求分析

1、工作环境的建立。为对该系统从需求到设计有一个全面、清晰的认识,需对该系统做一个全面、深入的研究,进而对其工作的机制和性能有较好的评估。首先从系统的需求以及开发环境对软件系统进行分析。开发基于Windows平台下局域网网络类型探测系统,网络环境是很容易获得的,因为大多数局域网都是基于Windows平台的。在Windows环境下的局域网(网络底层的支持协议为以太网,上层使用的是TCP/IP协议)对网络中传输的数据进行截取,获得在网络底层传输的以太帧格式数据:然后对获得的以太帧进TCP/IP协议的解析,主要分析以下几种协议的数据:IP数据报、ICMP数据报以及TCP协议的报文段。对它们的目的地址及源地址和端口进行分析,并将结果输出到用户指定的文件和屏幕上。数据环境配置方面,需要一台或一台以上的WindowsI作站[具有至少一块Ether网卡),若干台工作在TCP/IP协议下的主机。组成一个小型工作在同一网段的局域网,或者该局域网可以通过网关或路由跟外部网络建立连接。本系统研究所要求的运行环境如下:

软件环境:操作系统windows2000;底层驱动Winpcap3.0。winpcap(windows Packet Capture)是windows平台下一个免费、公共的网络访问系统,是为Linux下的1ibpcap移植到windows平台下实现数据包捕获而设计的函数库。硬件环境;网络环境;一台Pc机:一块以太网网卡。

2、用户需求。根据对网络数据环境的分析,局域网类型探测系统的用户主要分为以下两种:一种是专业网站管理中心。网站管理中心进行正常的网络管理:网络管理员为了更好的维护网络的正常工作。对网络类型进行及时的探测,并用于诊断网络故障。另一种是非专业小型局域网的用户。由于局域网的规模不大,一个公司没有必要购买昂贵的商业软件或硬件产品。借助于局域网类型探测系统就可以解决网络管理中可能会出现的问题。

(二)系统概要设计

1、功能设计。该网络类型探测系统实现的主要功能可以概括为以下几点:

(1)首先根据设置的过滤条件对经过主机的网络数据包进行截获,实现抓取敏感数据包的目的。

(2)然后把截获的数据包暂时保存在用户指定的文件中。

(3)加载在上一步中保存的数据包到软件,根据ARP协议及TcP/IP协议中各数据包的格式对加载的数据包进行包分析,获得数据包的长度、发送的源IP地址、目的IP地址以及发送时间等相关信息。

(4)对获得的报头中源IP地址、目的lP地址、源端口、目的端口等信息显示并保存到用户指定的文件中,以实现将来对相关内容的分析,由此可以判定该局域网是何种类型(共享式还是交换式局域网)。

2、模块设计。根据系统所需要实现的功能,将系统划分为以下几个主要模块:初始化模块。过滤模块,数据报截获模块,协议分析模块,存储、判定类型模块。

初始化模块:初始化模块主要的功能是获得主机上可用的网络设备,根据用户的选择,成对用户选择的网卡的混杂工作模式的设置:并且完成WinPcap的初始化以及启动工作。数据包截获的一系列准备工作都在这个模块中完成。

过滤模块;过滤模块主要是实现过滤条件的设置。在此设置的过滤条件在下面数据报截获模块中发挥着重要作用。正是因为本模块设置的过滤条件,所以才会实现捕获敏感数据包或是用户感兴趣数据包的功能,而不是将网上经过本机所有的数据包都抓取并保存到文件中。设置过滤条件在一定程度上也降低了丢包的可能性。

数据报截获模块:该模块的功能是根据设置的过滤条件截获数据包。并将其存放到用户指定的文件中。

协议分析模块:协议分析模块的功能主要是从用户指定的文件中加载截获的数据包,并根据ARP协议及TCP/IP协议中各个数据包的格式对以上加载的数据包进行解析,获得数据包的发送地址,目的地址,发送时间,源端口号、目的端口号等等。其中这里主要实现了对数据包的分析,为判定局域网类型提供信息保证。

存储、判定类型模块:根据上一个模块分析所得的IP地址、端口等各项信息内容判定局域网类型,并按照规定的格式写到用户指定的文件中。这样划分模块的目的是更好的满足用户的需求同时便于后期程序的编程实现。通过对各模块的设计利于在后期的实现过程中对各个功能的把握,这样能更优的实现网络数据包的过滤和截获,协议分析,以及数据的输出和网络类型的判定。

(三)系统性能分析

随着Internet的飞速发展,网络带宽的不断增大,网络上数据流量越来越大,因此,对网络类型进行探测的要求也越来越高。提高网络类型探测系统的性能是使其适应现代及未来网络环境的必然要求。网络类型探测系统主要是通过捕获网络上的链路数据报,再分析其内容,从而检测其类型是共享式网络类型还是交换式网络类型。在整个探测过程中,也实现了对网络的状态、数据流动情况的检测、并在需要的时候由相应组件做出适当的响应,或者暂时将违规者的IP地址过滤掉。

三、结束话

局域网的广播机制和网卡的特定的混杂工作模式决定了网络数据捕获的可能性,同时可以采取调用API函数库的方式来完成底层的功能和驱动来实现有关网络数据捕获和分析系统的编程,这样可以很大的简化编程过程,提高编程的效率也能提高程序本身的健壮性。

猜你喜欢

报文数据包IP地址
海法新港一期自动化集装箱码头电子数据交换报文系统设计与实现
满足法规要求的车载终端数据包加密方案分析
基于报文类型的限速值动态调整
C#串口高效可靠的接收方案设计
用户设备进行组播路径追踪的方法及系统
网络数据包的抓取与识别
《IP地址及其管理》教学设计
计算机的网络身份IP地址
轻松明白网络IP地址以及子网划分问题