NatTypeTester 测试结果会在 NAT1 和 NAT3 之间来回切换

186 天前
 MrLonely
非公网 IP 的移动宽带光猫,桥接模式下接一个 RouterOS 路由器,开启了 UPnP 。

在内网里的一个虚拟机上运行软件进行测试的结果是一段时间内第一次测试会显示 NAT3 ,然后立刻再次测试就变成 NAT1 了。

所以这实际上到底是 1 还是 3 呢?还有必要再让宽带小哥帮忙改吗?
1782 次点击
所在节点    宽带症候群
6 条回复
povsister
186 天前
RouterOS 本身就不是 NAT1
ros 的 masquerade 是 Endpoint-Independent Mapping (EIM) + Address and Port-Dependent Filtering (APDF)
按照 RFC5780 定义属于 NAT3 ,即俗称的 Port Restricted Cone

另,ROSv7 支持 FullCone ,但仅支持 UDP 协议,你连公网 IP 都没有可以不用考虑这么多了。
MrLonely
186 天前
@povsister 如果说 Router OS 本身限制了内网设备所面临的 NAT 类型的话,那 ROS 本身所面临的上级 NAT 类型不会有任何区别吗?

以及如果通过一些设置可以把 UDP 的 FullCone 开起来,应该也是利大于弊的吧?为什么说不用考虑了呢?

我看大家似乎普遍认为 NAT1 是没有公网 IP 前提下最佳的替代方案了。如果没有公网 IP 就不用考虑 NAT1 ,那似乎那么多帖子本来就是讨论无意义的事情了。
povsister
186 天前
因为 ros 是你的网关,你的 LAN 地址是要被 ros src-nat 一遍后才会送出去的。所以无论如何,你内网设备不可能测出比 ros 提供的 NAT3 更好的 NAT 类型。
另外你说你没有公网,所以 ROS 出去之后,到最终 internet 可路由的 public address 中间还有不知道几层 NAT ,基于上面的说法,下层设备不可能拿到比上层设备更好的 NAT 类型,而这么一个至少 2 层的 NAT ,你只有一个设备是受控的,那不用我多说了吧,折腾越多失望越多。
v2tudnew
186 天前
NAT1 ( Full Cone NAT )不需要考虑多少层 NAT ,它的特性决定了无论目地 IP 和端口怎么换都行,套 10 层 NAT1 它也得接收其他 IP 的请求,唯一的情况就是 CGNAT 内外网端口号不一致,这需要打洞软件处理。
你这个不是纯粹的 NAT1 ,可能不太好用。
ysc3839
186 天前
有可能是首次测试把端口打通了,下次测试复用了端口或 IP ,就被误认为 NAT1 了。
songofsaya
184 天前
就是 NAT3 ,只是多次复用罢了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1051578

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX