Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解 IPv6 ALG 对 ICMP 的支持

互联网控制信息协议 (ICMP) 应用层网关 (ALG) 是处理 ICMP 流量的 ALG 之一。

IPv6 节点使用 ICMPv6 协议报告处理数据包时遇到的错误,并执行其他互联网层功能(例如诊断)。ICMPv6 是 IPv6 不可或缺的一部分,必须由每个 IPv6 节点全面实施;因此 ALG 层始终为 ICMPv6 启用。

ICMP 错误消息

ICMPv6 消息分为两类:

  • ICMPv6 错误消息

    • 目标不可访问

    • 数据包过大

    • 超过的时间

    • 参数问题

  • ICMPv6 信息(或 ping)消息

    • 回应请求

    • 回应回复

ICMP ALG 将监控所有这些消息,然后进行以下操作:

  • 关闭会话

  • 修改有效负载

如果满足以下条件,ICMP ALG 将关闭会话:

  • 接收回应回复消息。

  • 收到无法到达的目标错误消息,尚未收到任何回复。

    注意:

    ICMP ALG 会检查会话是否收到目标节点的任何回复。如果收到任何回复,则目标应可到达,且 ICMP 错误消息不可可信,因此不会关闭会话。这是为了避免黑客探测 TCP/UDP 数据包,并伪造 ICMP 目标不可访问的数据包以终止会话。

ICMP ALG 功能

ICMP ALG 在不同的模式下行为方式各不相同。

ICMP ALG 在多模NAT功能:

  1. 关闭会话。

  2. 修改标识符、序列号或回应请求的两者。

  3. 恢复回应回复的原始标识符和序列号。

  4. NAT转换ICMPv6 错误消息的嵌入式 IPv6 数据包。

在 PT-NAT模式下的 ICMP ALG 功能:

  1. 关闭会话。

  2. 将 ICMPv4 ping 消息转换为 ICMPv6 ping 消息。

  3. 将 ICMPv6 ping 消息转换为 ICMPv4 ping 消息。

  4. 将 ICMPv4 错误消息转换为 ICMPv6 错误消息,并将其嵌入式 IPv4 数据包转换为 IPv6 数据包。

  5. 将 ICMPv6 错误消息转换为 ICMPv4 错误消息,并将其嵌入式 IPv6 数据包转换为 IPv4 数据包。