网络控制报文协议
- 格式:pdf
- 大小:212.99 KB
- 文档页数:3
6-3 ICMP 协议
ICMP:Internet Control Message Protocol,网络控制报
文协议。 对于 TCP/IP 协议,我们都非常熟悉,是对于 ICMP 协议,可
能了解的就很有限了。ICMP 协议是一个非常重要的协议,它对于
网络安全具有极其重要的意义。它是 TCP/IP 协议族中的一个子协
议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,
包括报告错误、交换受限控制和状态信息等。当遇到 IP 数据无法 访问目标、IP 路由器无法按当前的传输速率转发数据包等情况
时,会自动发送 ICMP 消息。我们可以通过 Ping 命令发送 ICMP
回应请求消息并记录收到 ICMP 回应回复消息。通过这些消息来对
网络或主机的故障提供参考依据。 我们在网络中经常会使用到 ICMP 协议,只不过我们觉察不到 而已。比如我们经常使用的用于检查网络通不通的 Ping 命令(L inux 和 Windows 中均有),这个“Ping”的过程实际上就是 ICM
P 协议工作的过程。还有其他的网络命令,如:跟踪路由的“tra
cert”命令也是基于 ICMP 协议的。
ICMP 协定内容及功能: 从技术角度来说,ICMP 就是一个“错误侦测与回报机制”,
其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准
确性﹐其功能主要有: 1.侦测远端主机是否存在。
2.建立及维护路由资料。 3.重导资料传送路径。
4.资料流量控制。
ICMP 在沟通之中,主要是透过不同的类别(Type)与代码(Cod
e) 让机器来识别不同的连线状况。下面让我们看看常用的 ICMP
实例,以更好了解 ICMP 的功能与作用。 ICMP 的重要性:
ICMP 协议对于网络安全具有极其重要的意义。ICMP 协议本身
的特点决定了它非常容易被用于攻击网络上的路由器和主机。19 99 年 8 月海信集团“悬赏”50 万元人民币测试防火墙的过程中,
其防火墙遭受到的来自 ICMP 攻击的达 334050 次之多,占整个攻 击总数的 90%以上!可见,ICMP 的重要性绝不可以忽视! 比如,可以利用操作系统规定的 ICMP 数据包最大尺寸不超过
64KB 这一规定,向主机发起“Ping of Death”(死亡之 Ping)
攻击。“Ping of Death” 攻击的原理是:如果 ICMP 数据包的
尺寸超过 64KB 上限时,主机就会出现内存分配错误,导致 TCP/I P 堆栈崩溃,致使主机死机。(现在的操作系统已经限制了发送 I
CMP 数据包的大小,解决了这个漏洞)
此外,向目标主机长时间、连续、大量地发送 ICMP 数据包, 也会最终使系统瘫痪。大量的 ICMP 数据包会形成“ICMP 风暴”,
使得目标主机耗费大量的 CPU 资源处理,疲于奔命。
如何应对 ICMP 攻击: 虽然 ICMP 协议给黑客以可乘之机,但是 ICMP 攻击也并非无
药可医。只要在日常网络管理中未雨绸缪,提前做好准备,就可
以有效地避免 ICMP 攻击造成的损失。 对于“Ping of Death”攻击,可以采取两种方法进行防范:
第一种方法是在路由器上对 ICMP 数据包进行带宽限制,将 ICMP 占用的带宽控制在一定的范围内,这样即使有 ICMP 攻击,它所占
用的带宽也是非常有限的,对整个网络的影响非常少;第二种方
法就是在主机上设置 ICMP 数据包的处理规则,最好是设定拒绝所
有的 ICMP 数据包。
设置ICMP 数据包处理规则的方法也有两种,一种是在操作系统上 设置包过滤,另一种是在主机上安装防火墙。
IP 层的差错控制的特点: ICMP 协议设计的最初目的主要是用于IP 层的差错报告,由路由
器或信宿机以一对一的模式向信源机报告发生传输错误的原因。ICM P 与IP 协议位于同一个层次(IP 层),但ICMP 报文是封装在IP 数
据报的数据部分进行传输的。它并不作为一个独立的层次,而只是作
为IP 层的一部分。ICMP 协议是对IP 协议的补充。用于IP 层的差错 报告、拥塞控制、路径控制以及路由器或主机信息获取。 1、IP 层解决的主要是信宿不可达的问题。由于信宿机本身不可
达,使得信宿机无法直接参与控制,所以要想通过端到端的方式来解
决不太现实; 2、IP 层仅仅涉及与路径和可达相关的差错问题,而不解决数据 本身的差错问题; 3、IP 层的差错与控制有一个独立的协议ICMP 完成,IP 协议不
负责完成差错与控制功能。 4、控制是建立在对信息了解的基础上的,在ICMP 中控制方可以
通过主动与被动两种方式了解信息:主动方式向对象发出询问,被动 方式则是被动接收对象所报告的信息。
ICMP 报文可以分为三大类:差错报告、控制报文、请求应答报 文。
ICMP 差错报告部分弥补了IP 协议的不可靠问题。特点如下: 1.只报告差错,但不负责纠正错误,纠错工作留给高层协议处理;
2.发现错误的设备只向信源机报告差错;
3.差错报告作为一般数据传输,不享受特别的优先级和可靠性;
4.产生ICMP 差错报告的同时,会丢弃出错的IP 数据报。 形成ICMP 差错报告时有一个例外: 1.ICMP 差错报文本身不会再产生ICMP 差错报告;
2.分片报文的非第一个分片不会产生ICMP 差错报告; 3.组播地址报文不会产生ICMP 差错报告;
4.特殊地址127.0.0.0 和0.0.0.0 的报文不会产生ICMP 差错报
告;
信宿不可达报告:当一个路由器检测出一个数据报不能发往它的
目的地时,路由器发送一个目的地不可达的信息。 数据超时报告(TTL):当一个路由器将一个数据报的寿命字段
的值减为零时,路由器放弃该数据报并发送一个超时信息;当一台主
机对某一个数据报的重组时间截止时,而该数据报的分片还没有全部
到达,主机放弃分片并发送一个超时信息。
数据报参数错报告(MTU,要求分段):如果路由器收到一个不 允许分片的数据报,而它又大于必须经过的转发网络的MTU,则路由
器放弃数据报,发送一个分片请求信息。 ICMP 控制报文
源抑制报文:当路由器收到大多的数据报以致没有足够的缓冲区
来处理时,路由器放弃到达的额外数据报,使用ICMP 源站抑制报文 向初始源网点报告拥塞,并请求它减慢目前的数据报发送速率。
重定向:当路由器检测到一台主机使用非优化路由时,它向该主
机发送一个重定向的ICMP 报文,请求该主机改变路由并把初始数据
报向它的目的站转发。 ICMP 请求与应答报文 回应请求与应答报文:一个回应请求信息能够送到任意计算机的 ICMP 软件。为了响应一个回应请求,ICMP 软件需要发送一个ICMP 回
应应答信息,应答和请求传递相同的数据。
时间戳请求和应答报文
地址掩码请求与应答报文:ICMP 地址掩码请求用于无盘系统在 引导过程中获取自己的子网掩码,系统广播它的ICMP 请求报文,收
到请求的路由器发送一个包含该计算机所在网络的32 位掩码的应
答。(这一过程与无盘系统在引导过程中用RARP 获取IP 地址是类似
的)。无盘系统获取子网掩码的另一个方法是BOOTP 协议。