NAT服务器如何将ping ICMP echo回复报文转发给用户?

Roh*_*nga 32 ip-address ping nat

NAT使用 IP 地址端口号组合来散列传出请求。由于ping请求由 ICMP 回显请求数据包组成,因此它们没有任何关联的端口号。NAT 服务器如何将回复转发给网络内部的主机?

Spi*_*iff 39

对于像 Echoes (ping) 这样的 ICMP 查询/回复类型消息,NAPT 使用 ICMP 查询 ID(有时简称为 ICMP ID)的方式与使用 TCP 或 UDP 端口号的方式相同。

对于诸如 Destination Unreachable 之类的 ICMP 错误消息,它使用 ICMP 数据包的导致错误的帧标头的内部副本来确定要使用 NAT 表中的哪个映射来转换它。

这些过程在几个与 NAT 相关的 RFC 中被简要引用,但我很难找到一个明确说明该过程的过程。请参阅“传统 NAT”,RFC3022,第 4.1 节。

这与任何 TCP 或 UDP 映射都没有冲突,因为在一个好的 NAPT 实现中,协议是保存在 NAT 表条目中以使其唯一的信息片段之一。