NAT服务器如何将ping ICMP回显应答数据包转发给用户?


Answers:


34

对于诸如回声(ping)之类的ICMP查询/回复类型消息,NAPT使用ICMP查询ID(有时也称为ICMP ID)的方式与使用TCP或UDP端口号的方式相同。

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

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

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


1
你能从某个地方引用它吗?
罗希特·邦加

如果ICMP ID与进程正在使用的端口号冲突怎么办。
罗希特·邦加

@iamrohitbanga好,我扩大了回答范围,以涵盖您的其他问题。
Spiff 2010年

0

我做了一个小模拟(基于GSN3 Kali Linux CLI设备),以检查ICMP冲突时会发生什么(显然,这可能是特定于供应商的):

关于ICMP请求/响应在显示NAT之前,当来自2个设备(分别为IP 10.0.0.1和10.0.0.2)的ICMP请求的标识符相等时。

在同时进行ICMP请求/响应NAT之后,显示冲突的ICMP会话的标识符被NAT更改为0,并从此开始递增。

综上所述,可以说Linux NAT在其开启时处理了ICMP标识符的冲突(因为ICMP标识符在NAT之前没有更改)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.