【问题标题】:How many mappings does a Restricted Cone NAT remember?Restricted Cone NAT 可以记住多少个映射?
【发布时间】:2017-12-23 03:08:07
【问题描述】:

假设我在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 制造商的建议”,...

【问题讨论】:

    标签: udp nat hole-punching


    【解决方案1】:

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

    没有。

    或者 NAT 会同时记住两者吗?

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

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

    如果您有权访问系统,则取决于实现且通常可配置。

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

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

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

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

    【讨论】:

    • 谢谢!您是否碰巧知道普通家用路由器上的最大映射数的近似值(按数量级)?
    • 例如:dd-wrt(基于 linux 的第 3 方固件)默认有 4k 限制,根据我的经验,库存固件可能低于此限制。此外,表大小不是唯一的限制。如果 udp 应用程序对不同的 IP 进行许多短暂的交换,则超时也很重要。因为与 TCP 不同,NAT 不知道连接何时关闭
    • 4k 似乎还不错,我担心它会达到 256 左右。不过,它可能比 30 美元的廉价设备上的 4k 还低。
    猜你喜欢
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 2020-04-18
    • 2014-09-15
    相关资源
    最近更新 更多