Restricted Cone NAT记住了多少映射?

时间:2017-07-18 10:03:40

标签: udp nat hole-punching

假设我在Restricted Cone NAT后面,我希望能够从某个端点EP-A(在互联网上的某些PC上,而不是在NAT后面)接收UDP消息。我首先向EP-A发送一个UDP数据包,在NAT中打一个洞。

这意味着NAT需要记住映射:

(My local endpoint, EP-A)

但是当我将另一个UDP数据包发送到另一个远程端点EP-B时会发生什么?新映射(My local endpoint, EP-B)是否会覆盖旧映射?或者NAT会记住两者吗?

如果NAT能够记住多个这样的映射,那么最大值是多少?

据我所知,这可能因NAT而异,因此如果没有RFC,我也会对任何统计数据感兴趣,“NAT制造商的建议”,......

1 个答案:

答案 0 :(得分:1)

  

新映射(我的本地端点,EP-B)是否会覆盖旧映射?

没有

  

或者NAT会记住两者吗?

一般是的。饱和时通常会保留旧的映射并丢弃新的映射,可能会出现ICMP错误。

  

如果NAT能够记住多个这样的映射,那么最大值是多少?

依赖于实现,如果您有权访问系统,则通常可以配置。

  

因此,如果没有RFC,我也会对任何统计数据感兴趣

实际上有几个用于NAT的RFC,4787在UDP的情况下专门指NAT。但他们没有具体说明具体数字,因为它在很大程度上取决于设备和网络规模。

根据我个人的经验,运行基于UDP的DHT节点或DNS解析器可能足以淹没家庭路由器的默认配置(自定义固件可以缓解此问题)或未实现EIM的CGNAT。

我记得读过一些研究论文,调查各种ISP的映射保留时间,端口编号行为和NAT的映射类型,但我不记得他们是否也测试了饱和度。