---ICMP数据包简介

icmp数据包是一种网络通信数据包。icmp是“Internet Control Message Protocol”(Internet控制消息协议)的缩写。它是TCP/IP的一个子协议,用于在IP主机、路由器之间传递控制消息。icmp控制包是指用于探查网络通不通、主机是否可达、路由是否可用等网络问题的消息

---ICMP本质

ICMP就是一个差错报告机制,即当数据包处理过程出现差错时,ICMP向数据包的源端设备报告这个差错,它既不会纠正这个差错,也不会通知中间的网络设备。

---ICMP包组成

icmp数据包timestamp_网络

①IP包头至少20字节

②ICMP包头至少8字节

---规格限制

ICMP数据包最大尺寸不应超过64kb,当尺寸超过64kb后,主机会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。

---基于ICMP的攻击方式-洪泛攻击

①Ping of death:发送大小超过64kb的ICMP数据包,导致目标主机死机

②ICMP风暴:向目标主机长时间、连续、大量的发送ICMP数据包,使得目标主机耗费大量CPU处理ICMP数据包,致使系统瘫痪。

---ICMP攻击防范

①报文限速

ICMP报文限速包括端口限速、VLAN限速和全局限速,同时也实现芯片的限速,通过多个维度来保证ICMP的洪泛攻击。②合法性检查&丢弃不需要处理的报文

对于一些不合法的ICMP报文,比如TTL为0、ICMP类型为15、16、17的报文,都直接丢弃,同时可配置丢弃一些不常用或基本不使用的ICMP报文,包括TTL为1、带选项、不可达的ICMP报文。

③不响应不可达报文

在用户通过发送大量端口不可达或网络不可达报文攻击设备时,设备收到这些报文后可以不响应,直接丢弃,以保护CPU资源。

---典型应用

①Ping 

Ping程序是最常见的用于检测IPv4和IPv6网络设备是否可达的调试手段,它使用ICMP的echo信息来确定:

·远程设备是否可达;

·与远程主机通信的来回旅程(round-trip)的延迟;

·报文包的丢失情况。

②Tracert

③NQA