跳到主要内容

6. ICMP 处理

本节描述 IPsec 对 ICMP 流量的处理。ICMP 流量分为两类:错误消息(例如类型 = 目的不可达)和非错误消息(例如类型 = 回显)。本节仅适用于错误消息。非错误的 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)
  • 路由器通告/ solicitation(Router Advertisement/Solicitation)
  • 邻居发现(Neighbor Discovery,ICMPv6)