Udp 路由器在NAT中保留记录的时间有多长,这些记录是否可以用于转发来自其他主机的请求?

Udp 路由器在NAT中保留记录的时间有多长,这些记录是否可以用于转发来自其他主机的请求?,udp,rewrite,router,packet,nat,Udp,Rewrite,Router,Packet,Nat,有一个答案用简单的术语解释了路由器是如何工作的,它将本地网络的请求转换为外部和背面()什么不清楚-NAT中的记录保留了多长时间 例如,如果我发送一个UDP请求到25.34.11.56:3874,并且我的本地端点是192.168.1.21:54389,那么路由器将重写请求包并向NAT添加一条记录。假设外部端点为68.55.32.89:34535。然后,收到我的请求的计算机根据NAT记录响应68.55.32.89:34535及其转发到本地192.168.1.21:54389的数据包。那之后记录会怎么

有一个答案用简单的术语解释了路由器是如何工作的,它将本地网络的请求转换为外部和背面()什么不清楚-NAT中的记录保留了多长时间

例如,如果我发送一个UDP请求到25.34.11.56:3874,并且我的本地端点是192.168.1.21:54389,那么路由器将重写请求包并向NAT添加一条记录。假设外部端点为68.55.32.89:34535。然后,收到我的请求的计算机根据NAT记录响应68.55.32.89:34535及其转发到本地192.168.1.21:54389的数据包。那之后记录会怎么样

如果25.34.11.56:3874决定在10或100分钟后向我的外部端点68.55.32.89:34535发送请求,该怎么办?它还会被路由器转发到192.168.1.21:54389吗

假设另一台远程计算机的端点为55.43.77.98:8765。如果此计算机向我的外部端点68.55.32.89:34535发送请求,会发生什么情况?它会被转发到本地192.168.1.21:54389还是会被路由器过滤掉,因为远程端点与最初用于第一个请求和NAT记录的25.34.11.56:3874不匹配?

这取决于此

根据的第4.3节,NAT的UDP超时不应小于2分钟(120秒),所选的已知端口除外。然而,在实践中,路由器倾向于使用较小的超时。例如,OpenWRT14.07只使用了60秒的超时时间

对于TCP,超时可能要大得多,因为TCP连接通常由显式FIN/FIN-ACK交换终止。对于已建立的TCP连接,的第5节指定了不少于2小时4分钟(7204秒)的超时,OpenWRT使用7440秒


关于第二个问题,大多数NAT维护特定于一对端点(套接字地址)的映射。如果NAT内的主机a向套接字地址B发送数据报,则映射将仅适用于a和B之间的通信-NAT外的另一台主机C将无法使用该特定映射向a发送数据。(一些所谓的全锥NAT允许这样做,但它们相当罕见。)

这完全回答了问题的一部分,即记录在NAT中的寿命。另一部分呢?例如,如果本地主机将初始请求发送到25.34.11.56:3874,那么55.43.77.98:8765是否能够到达我的本地192.168.1.21:54389,并因此在NAT中创建了一条记录以允许25.34.11.56:3874回复?编辑,希望更好。cone NAT真的消失了吗?“Linux、BSD和大多数家庭路由器都是全锥型的。显然,我的蜂窝网络连接功能也是全锥型的。最重要的是,我见过的每一个运营商级NAT(用于蜂窝网络和一些ISP)都是全锥型的。”那个特定的hackernews作者不知道他在说什么。他认为任何非对称的NAT都是全锥的。他是zerotier.com的开发者,所以他应该知道。我的轶事经验是,cone-NAT越来越普遍,而不是说它正在消失。此外,RFC4787 REQ-1必须具有“端点独立映射”+REQ-8建议的“端点独立过滤”=全锥NAT。运营商级NAT似乎几乎总是满的。2008年,Tribler团队对NAT/防火墙特性进行了一些测量:黑客新闻上的这篇文章也对NAT穿越有一些见解: