ICMP网络层的管理性协议:

         1.目的不可达(destination unreachable):

             传送表情中到目的地中 。。。。。,经过的路由器中没有到达目的地的路由,路由器返回目的地不 

             可达的信息。   

        2.超时(Request time out):

                传送表情到目的地中。。。。。。,经过的路由器的防火墙不允许PING命令,丢弃包,返回超时

                信息。

ICMP常用的类型:

 

CCNA 2 chapter_休闲_03 

CCNA 2 chapter_职场_04

 针对ICMP协议的攻击分析(转载):

Echo Request和Reply(类型8和0):

  允许Echo Request消息出站以便于内部用户能够PING一个远程主机。阻止入站Echo Request和出站Echo Reply可以防止外部网络的主机对内部网络进行扫描。如果您使用了位于外部网络的监视器来监视内部网络,就应该只允许来自于特定外部IP的Echo Request进入您的网络。限制ICMP Echo包的大小可以防止“Ping Floods”攻击,并且可以阻止那些利用Echo Request和Reply来“偷运”数据通过防火墙的木马程序。

Destination unreachable (类型3):

  允许其入站以便于内部网用户可以使用traceroute。需要注意的是,有些攻击者可以使用它来进行针对会话的DoS攻击,如果您曾经历过类似的攻击,也可以阻止它。阻止出站的ICMP Destination unreachable消息,因为它可能会泄漏内部网络的结构。不过有一个例外,对于那些允许外部网络通过TCP访问的内部主机(如位于DMZ区的Web 服务器)发出的Destination unreachable,则应该允许它通过。为了能够支持“Path MTU Discovery”,您应该允许出站的“Packet Too Big”消息(类型3,代码4)到达那些主机。

Source quench(类型4):

  阻止其入站,因为它可以作为一种DoS攻击,能够降低发送者的发送速度。允许其出站以便于内部主机能够控制发送端发送数据的速度。有些防火墙会忽略所有直接发送到防火墙端口的Source Quench消息,以防止针对于防火墙的DoS攻击。

Redirect(类型5,9,10):

  Redirect、Router announcement、 Router selection(类型5,9,10):这些消息都存在潜在危险,因为它们可以用来把数据重定向到攻击者的机器。这些消息都应该被阻止。

TTL exceeded(类型11):

  允许其进站以便于内部用户可以使用traceroute。“firewalking”使用很低的TTL值来对网络进行扫描,甚至可以通过防火墙对内网进行扫描,所以应该禁止其出站。一些防火墙可以阻止TTL值小于设定值的数据包进入防火墙。

Parameter problem(类型12):

  禁止其入站和出站。通过使用一个能够进行数据包一致性检查的防火墙,错误和恶意的数据包都会被阻塞。

下面是要注意的细节问题:

   1.在Linux/Unix,序列号从0依次递增;Windows ICMP序列号是没有规律的

  2.目的主机必须返回ICMP回送应答消息给源主机。