6. ICMP 处理 (ICMP Processing)
本节描述 IPsec 对 ICMP 流量的处理。ICMP 流量有两类:错误消息(例如,type = destination unreachable)和非错误消息(例如,type = echo)。本节专门适用于错误消息。非错误 ICMP 消息(未发送到 IPsec 实现本身的消息)的处理必须 (MUST) 使用 SPD 条目明确说明。
本节中的讨论适用于 ICMPv6 和 ICMPv4。此外,应该 (SHOULD) 提供一种机制,允许管理员记录 ICMP 错误消息(选定的、全部或无),作为问题诊断的辅助手段。
6.1. 处理发送到 IPsec 实现的 ICMP 错误消息
6.1.1. 在未受保护侧接收的 ICMP 错误消息
在未受保护侧接收的 ICMP 消息未经认证,其处理可能导致拒绝服务或服务降级。这表明,通常应该忽略此类消息。但是,许多 ICMP 消息将由主机或安全网关从未经认证的源(例如,公共互联网中的路由器)接收。忽略这些 ICMP 消息可能会降低服务质量,例如,由于未能处理 PMTU 消息和重定向消息。
关键考虑因素:
- 安全风险:未经认证的 ICMP 消息可用于拒绝服务攻击
- 操作需求:某些 ICMP 消息(PMTU、重定向)对于正常的网络操作是必需的
- 权衡:在安全性和功能性之间取得平衡
6.1.2. 在受保护侧接收的 ICMP 错误消息
在边界受保护侧接收的 ICMP 错误消息已经过认证,可以更有信心地处理。
ICMP 消息类别
错误消息
- Destination Unreachable(目标不可达)
- Time Exceeded(超时)
- Parameter Problem(参数问题)
- Packet Too Big(数据包过大,ICMPv6)
非错误消息(需要显式 SPD 条目)
- Echo Request/Reply(回显请求/回复)
- Router Advertisement/Solicitation(路由器通告/请求)
- Neighbor Discovery(邻居发现,ICMPv6)