Administrator
Published on 2025-07-31 / 0 Visits
0
0

【网络协议学习】ICMP协议学习


一、为什么 ICMP 值得认真学?

提到网络协议,很多人首先想到的是 TCP/UDP、HTTP、DNS。但你是否想过:

  • 🧭 Ping 工具为何能判断主机是否在线?

  • 🔎 Traceroute 如何分析路径?

  • 🛡 网络设备如何报告“目标不可达”?

  • 🚨 安全设备如何判断“你是不是被扫描了”?

这些,全都依赖 ICMP 协议

🎯 一句话理解 ICMP:
它是 TCP/IP 协议族中专门负责“通报异常”的控制协议,扮演“网络医生”和“交通警察”的角色。


二、ICMP 协议简介:不是传输协议,却能让网络“开口说话”

  • 全称:Internet Control Message Protocol

  • 所在层:网络层(IP 层的“附属协议”)

  • RFC 标准:RFC 792(IPv4)、RFC 4443(IPv6)

虽然 ICMP 不承载用户数据,但它能:

  • 告诉你:哪里出错了

  • 指出你:哪跳网络不可达

  • 帮助你:精准诊断网络问题


三、ICMP 报文结构详解:最核心的四个字段

字段名

长度

说明

Type

8bit

报文类型(如 0: 回显应答,8: 回显请求)

Code

8bit

细化的错误分类

Checksum

16bit

校验码

Data

可变

可选数据区域

常见类型如下:

类型(Type)

含义

常见用途

0

Echo Reply

Ping 响应

3

Destination Unreachable

路由不可达、端口不可达

5

Redirect

重定向

8

Echo Request

Ping 请求

11

Time Exceeded

路径超时(用于 traceroute)


四、实战演练:ICMP 的经典应用场景

1. Ping 工具的原理

ping 192.168.8.1

发送 Type 8(Echo Request),目标返回 Type 0(Echo Reply)。

适用场景:

  • 网络连通性测试

  • 主机在线状态检测

  • 定时存活监测(如 NMS 系统)


2. Traceroute 路由追踪

Traceroute 利用 Type 11(Time Exceeded)报文来逐跳识别路径。

tracert www.google.com

操作机制:

  • 发 ICMP 请求包,TTL=1,被第一跳丢弃并回送 Time Exceeded

  • 依次增加 TTL,构建路径拓扑


3. 路由设备反馈错误

常见如 Type 3:Destination Unreachable

Code

错误含义

0

网络不可达

1

主机不可达

3

端口不可达(UDP)

13

通信被管理员阻止(如防火墙策略拒绝)


4. 网络管理系统(NMS)周期性探测

ICMP 是 Zabbix、Nagios、PRTG 等监控系统的基础手段之一,用于:

  • 判断主机是否宕机

  • 监测丢包率、延迟

  • 定位异常路径或瓶颈设备


五、安全视角:ICMP 被滥用的那些事

虽然 ICMP 本意是“报错与诊断”,但却也被攻击者广泛利用:

滥用方式

描述

🎯 ICMP 扫描

识别活跃主机,构建拓扑

🚪 绕过防火墙

某些设备对 ICMP 开放,反而被滥用穿透

🕳 ICMP 隧道

利用 ICMP 封装数据,构建隐蔽通道(如 icmpsh, Ptunnel

💥 ICMP Flood

DDoS 攻击手段之一,制造大规模 Echo 请求

🔐 建议:公网主机禁用响应 ICMP Echo Request;企业内网则可白名单控制,允许可信探测工具使用。


六、进阶:ICMP vs TCP/UDP,有何不同?

对比项

ICMP

TCP

UDP

是否有端口

❌ 无

✅ 有

✅ 有

是否可靠传输

❌ 不可靠

✅ 可靠

❌ 不可靠

应用示例

Ping、traceroute、错误通知

HTTP、SSH、FTP

DNS、VoIP

是否会被防火墙拦截

⚠️ 易被拦截

通常放行80/443

需手动配置


七、实用工具推荐(支持 ICMP 流量分析)

工具

功能

ping / tracert

基础连通性测试

hping3

构造自定义 ICMP 报文

icmping

类似 ping 的增强工具

Wireshark

精准抓包分析 ICMP 报文

nmap -sn

ICMP 扫描主机状态


八、ICMP 在红蓝对抗中的战术意义

🟥 红队用法:

  • 探测主机存活(绕过 TCP/UDP 探针)

  • ICMP Tunneling:绕过边界防火墙通信

  • 用 hping3 构造恶意报文,探测设备响应行为

🟦 蓝队防御:

  • 使用 NIDS/NDR 识别 ICMP 泛滥与异常速率

  • 开启日志记录 ICMP 报文行为(如 IPS/EDR)

  • 建立 ICMP 白名单(仅开放关键网络设备响应)


九、结语:小协议,大世界

ICMP 是 TCP/IP 协议家族中最被低估的协议之一。它不像 TCP/UDP 那样传输业务数据,却影响着整个网络生态的“健康管理”。

🔧 它是你排障时最先想到的工具
🧱 它也是攻击者偷偷搭桥的利器
🧠 学会它,网络世界就对你少一层“雾”



Comment