V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MrLonely
V2EX  ›  宽带症候群

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

  •  
  •   MrLonely · 7 天前 · 1098 次点击
    非公网 IP 的移动宽带光猫,桥接模式下接一个 RouterOS 路由器,开启了 UPnP 。

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

    所以这实际上到底是 1 还是 3 呢?还有必要再让宽带小哥帮忙改吗?
    6 条回复    2024-06-24 10:48:46 +08:00
    povsister
        1
    povsister  
       7 天前
    RouterOS 本身就不是 NAT1
    ros 的 masquerade 是 Endpoint-Independent Mapping (EIM) + Address and Port-Dependent Filtering (APDF)
    按照 RFC5780 定义属于 NAT3 ,即俗称的 Port Restricted Cone

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

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

    我看大家似乎普遍认为 NAT1 是没有公网 IP 前提下最佳的替代方案了。如果没有公网 IP 就不用考虑 NAT1 ,那似乎那么多帖子本来就是讨论无意义的事情了。
    povsister
        3
    povsister  
       7 天前
    因为 ros 是你的网关,你的 LAN 地址是要被 ros src-nat 一遍后才会送出去的。所以无论如何,你内网设备不可能测出比 ros 提供的 NAT3 更好的 NAT 类型。
    另外你说你没有公网,所以 ROS 出去之后,到最终 internet 可路由的 public address 中间还有不知道几层 NAT ,基于上面的说法,下层设备不可能拿到比上层设备更好的 NAT 类型,而这么一个至少 2 层的 NAT ,你只有一个设备是受控的,那不用我多说了吧,折腾越多失望越多。
    v2tudnew
        4
    v2tudnew  
       7 天前
    NAT1 ( Full Cone NAT )不需要考虑多少层 NAT ,它的特性决定了无论目地 IP 和端口怎么换都行,套 10 层 NAT1 它也得接收其他 IP 的请求,唯一的情况就是 CGNAT 内外网端口号不一致,这需要打洞软件处理。
    你这个不是纯粹的 NAT1 ,可能不太好用。
    ysc3839
        5
    ysc3839  
       7 天前 via Android
    有可能是首次测试把端口打通了,下次测试复用了端口或 IP ,就被误认为 NAT1 了。
    songofsaya
        6
    songofsaya  
       4 天前
    就是 NAT3 ,只是多次复用罢了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2315 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 00:09 · PVG 08:09 · LAX 17:09 · JFK 20:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.