APP下载

基于ICMP的IP地址回收技术研究

2018-01-04顾成武陈中举孟祥国刘恒

电脑知识与技术 2018年29期
关键词:报头IP地址报文

顾成武 陈中举 孟祥国 刘恒

摘要:ICMP协议是一种面向无连接的网络层协议。该文通过对ICMP协议的基本概念、主要功能和数据包结构的分析,用ICMP来实现对网络设备在线状态的感知,实现对空闲IP地址提前回收技术的研究。

关键词:ICMP;IP;地址复用

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)29-0054-02

1 引言

DHCP(Dynamic Host Configuration Protocol)攻击是一种通过不断伪造MAC地址来耗尽正常的DHCP服务器的IP地址池,然后攻击者通过架设一个对应的DHCP服务器,来替代正常的DHCP服务器提供IP地址分配功能,从而伪装成内网的网关,借此来控制内网中的主机网络流量的攻击方法。

在现有的IP地址动态分配算法中,往往服务器只会通过设定一个租约时间,在租约时间到达一半时,客户端会向服务器发出续约请求;在租约时间结束时,如果客户端没有响应请求,服务器才会回收对应的IP地址。这种分配算法存在一定的局限性,服务器在整个服务过程中,都处于被动的响应状态,不能判断当前的客户端的在线状态。故而,IP地址在整个租约时间结束前,都会与其被分配给的客户端所绑定,不会再分配给其他客户端所使用。

由于DHCP分配算法的局限性,并没有身份验证机制,也没有客户端状态判定机制。攻击者可以通过批量的伪造MAC地址去请求IP地址,即可轻而易举地耗尽IP地址池资源。

ICMP(Internet Control Message Protocol)全称为因特网控制报文协议,它是IPv4协议簇中的一个用于路由器和IP主机之间传递控制信息的网络协议。可以通过ICMP来实现类心跳包机制,判断当前客户端的状态,及时回收空闲的IP地址,避免IP地址池耗尽,防护DHCP攻击[4]。

2 ICMP协议的基本概念

ICMP协议本身是一个被设计用于差错传输的协议,用于向数据通讯中的源主机报告错误。ICMP是TCP/IP协议簇中用于主机与路由之间传递控制信息的一个子协议,可以用于报告错误、交换受限控制和控制信息等。一个ICMP报文包括IP报头、ICMP报头和ICMP报文信息。当IP报头中的协议字段标识为1时,就代表该报文为ICMP报文[3]。ICMP报头数据结构如下图示。

ICMP协议主要用于确保TCP/IP协议的可靠运行,只能检查IP传输中的差错,而不能纠错。ICMP依赖于IP协议,属于网络层的协议,并不需要指定端口号。ICMP的功能可以分为两种:ICMP差错报告与ICMP查询。ICMP的差错报告可以分为:目的站不可达、源站抑制、超时、参数出错、路由重定向五种。ICMP的查询可以分为:回送请求、时间戳请求、地址掩码请求、路由器查询四种[1]。

3 ICMP数据包的结构

ICMP数据包结构包括ICMP头部和数据两部分。其中,ICMP头部长度为4个字节,数据部分的长度可变,其内容由ICMP包的类型来决定[2]。ICMP的数据包头部包括下面几种信息:

(1)类型:表示ICMP包的基本类型,其长度为8位。采用不同的数值代表相应的类型,如:3代表目的站不可达,4代表源站抑制,11代表超时等,都是ICMP差错报告数据包;0和8代表发送请求与响应,9和10代表路由器查询与通告等,都是ICMP的查询数据包。

(2)代码:表示ICMP包的子类型,字段长度为8位。采用不同值表示相应的目的不可达类型,如:0代表网络不可达,1代表主机不可达,2代表协议不可达等。

(3)头部校验和:可以用于校验ICMP报头在传输过程中是否出错。

4 网络设备在线状态的判定

4.1 类心跳包机制

心跳包是一种在客户端和服务器之间定时通知对方自己当前在线状态的一个自定义的命令字,按照一定的间隔发送,类似于动物的心跳。主要用于长时间的保活与断线处理。

但是由于心跳包整个过程的实现需要双方都使用对应的命令字,不适用于在整个DHCP过程中的设备状态的判定,故而引入一个类心跳包机制:由服务器按照一定的频率,单方面的发出ICMP探测报文,当服务器无法收到相对应的设备的ICMP回应请求时,回收对应的IP地址[5]。

4.2 设备在线时的ICMP探测结果

4.3判定机制的优化

结合ICMP数据包对整个网络性能的影响,可以设定一个峰值x,当整个IP地址的使用数量为x时,才会使用ICMP报文去判定当前设备的在线状态,避免整个IP地址回收机制对网络资源的过度消耗。

按照网络利用率一般控制为50%计算,设x为整个DHCP地址池的一半,得出优化之后的判定机制流程图。

5 结束语

本文从ICMP协议的基本概念、主要功能和协议的原理出发,根据实际的实验结果对利用ICMP对空闲的IP地址进行了研究。对于实现网络资源的优化利用,应对DHCP协议攻击和加强网络安全有着良好的促进作用以及较好的应用价值。

参考文献:

[1] 谢希仁. 计算机网络[M].7版. 北京:电子工业出版社,2017.

[2] Stevens W R. TCP/IP Illustrated Volume 1: The Protocols[M]. 范建华,译. 北京:机械工业出版社,2000.

[3] Douglas E Comer. Computer Networks and Internets[M].5th ed.Prentice Hall,2009.

[4] 杜樹杰. 基于ICMP协议的Ping主机探测 [J]. 计算机系统应用. 2009(12)

[5] 黄勤. 基于ICMP的网络主机状态判断研究[J]. 科技广场.2012(08)

【通联编辑:代影】

猜你喜欢

报头IP地址报文
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
铁路远动系统几种组网方式IP地址的申请和设置
城市党报报头:政治与艺术的平衡
浅析反驳类报文要点
IP地址切换器(IPCFG)
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
ATS与列车通信报文分析
淡妆浓抹总相宜
——对中国晚报报头变化的研究与欣赏