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

求问:大规模 NAT1 转 4 之下,对于这个做法的一些疑问

  •  
  •   MFWT · 2023-05-17 15:58:17 +08:00 · 3521 次点击
    这是一个创建于 554 天前的主题,其中的信息可能已经有所发展或是发生改变。

    稍微续一下上篇:人还是要活着的,还是继续折腾下技术的好,不然我还有什么依靠呢


    最近河南移动大规模把 NAT 类型从 FullCone 转到 Symmetric 了(下面简称 1 转 4 ,更具体的分类在下面),根据我在网上查询到的信息,主要说法有这么两个(但是可能都不太保真,毕竟我是没有查询到官方说法),贴在下面:

    1. 如那张网传的图所说,是为了遏制 PCDN
    2. 内部消息所言,是因为移动确实太缺 IP 了,有些地方甚至连专线 IP 都开不出来了,只能出此下策

    但是有趣的是,同时我在网上查询到,原因 1 是『不惜浪费 ip 』做出的决定,原因 2 是『为了节省 ip 』做出的决定

    显然,这两个说法互相矛盾

    其次,根据我自己对 NAT 的理解,如果单看 mapping 策略,NAT4 是『当客户机,使用同一个 ip 和端口,请求一个不同的公网地址或端口时,NAT新分配一个外部 ip 和端口』,直观感觉是比 NAT1/2/3 的『当客户机,使用同一个 ip 和端口,请求一个不同的公网地址或端口时,NAT不会新分配一个外部 ip 和端口』会多消耗公网 IP ,因为如果带机量大(连接数大)的时候,NAT4 很快会用完同一 IP 下的端口,不知道我这个理解是否正确?

    因此我有这些疑问,望请各位大佬解答

    1. 1 转 4 中的 1 和 4 ,是不是 RFC3489 所规定的 FullCone 和 Symmetric ,还是说运营商会使用 RFC5389 进一步细化具体的映射和过滤规则?

    2. 1 转 4 ,究竟是浪费了 IP (利用率降低)还是节省了 IP ?

    3. 续 2 ,这个行为会不会因为上层协议是 TCP 还是 UDP 而有所变化?

    4. 另一个说法是,中国移动在这次 1 转 4 中,还额外限制了家宽的连接数(降到了 1000 甚至 500 ),那么问题 2 会不会也因为这个原因而有所改变呢?

    5. ** [与本题无关] **我有两条家宽接入,从软路由看,旧的一条能拿到 /64 的公网地址和 /60 的前缀,但是新的一条只能拿到 /64 的公网地址,拿不到前缀(两个都是路由器拨号,且设置项一模一样)。此时,会是运营商限制的可能性大,还是光猫设置不当的可能性大?如果内网设备单用新宽带,能正常获取到公网 v6 地址吗?

    谢谢

    14 条回复    2023-05-17 21:29:20 +08:00
    leefor2020
        1
    leefor2020  
       2023-05-17 16:02:38 +08:00
    一直有个疑问,开条宽带这也不让那也不让
    运营商是不是真的觉得普通人用网络刷刷抖阴就够了?
    zhouqian
        2
    zhouqian  
       2023-05-17 16:30:49 +08:00   ❤️ 1
    @leefor2020 最好是开通之后不上网,正常缴费。哈哈哈。
    heiher
        3
    heiher  
       2023-05-17 16:32:20 +08:00
    之前讨论过这个问题,当时的结论是 NAT4 比 NAT1 理论上可以更节省公网 IP 、端口资源,但是 NAT4 需要维护的公、私映射关系比 NAT1 更多,不利于 NAT 的硬件加速实现。
    oblivion
        4
    oblivion  
       2023-05-17 16:46:34 +08:00   ❤️ 1
    在运营商的 CGNAT 模式下确实是 NAT4 更省 IP ,CGNAT 开 NAT1 是每个用户固定分配 2000~3000 个端口范围,对应 65535 个端口只能开 20~30 个私网用户,但是 CGNAT 开 NAT4 后,公网 IP 的每个端口都可以多次复用给多个私网用户,甚至同一个用户也可以复用同一个端口,可获得几十倍的并发连接数提升。
    至于 @heiher #3 提到的 NAT 硬件加速,实际上现在运营商都在改造为虚拟化 vBRAS ,列如华为的 VNE9000 、中兴的 V6000 ,转发平面开始上云并且用 x86 堆性能,同步改造 NAT4 也是没什么问题的。
    zhywang
        5
    zhywang  
       2023-05-17 17:26:00 +08:00
    累了,IPv4 赶紧毁灭,全面普及 IPv6 吧
    NSAgold
        6
    NSAgold  
       2023-05-17 17:30:38 +08:00
    宽带 IP 不够我是不信的,威胁到移动卖商用带宽我是信的。
    移动一共有 3500 余万个 ip 按 4 亿宽带用户 NAT1 ,每个 IP20 用户算,只需要 2000 万个 ip 。
    如果真不够的话北京移动就不会还在卖公网 ip 叠加包了。
    laozhoubuluo
        7
    laozhoubuluo  
       2023-05-17 17:42:43 +08:00
    0. 手机的 IPv4 NAT 是所有手机共享一个大的地址池,靠 NAT 日志溯源。国内家宽 IPv4 NAT 的主流模式是拨号上线固定分配一个 IP 和一批端口资源(可以配置为完全固定也可以动态扩容,一般是完全固定。以下简称固定分配端口),靠端口号分配记录溯源。当然理论来说家宽也可以用手机的模式,但是 NAT 日志存储压力很大所以走这个路线的不多。
    1. 是 RFC3489 ,相当于做的是 NAPT ,但是在固定分配端口的模式下限制了公网侧允许使用的 IP 和端口范围。
    2. NAT4 对运营商设备跟踪会话的能力要求增高了,毕竟 NAT1 只要源端口一样那不管多少连接只占用一个会话,而 NAT4 是一个连接一条会话,至于 TCP 还是 UDP 感觉不是重点。如果在 NAT4 的同时改成和手机一样的共享地址池模式那确实可以节省 IP 占用(类似多年前北京移动只用几个 C 段承载整个北京的手机上网服务,不知道现在改没改),但如果是固定分配端口模式,节约地址只能靠砍单用户端口数初始值和上限(完全固定的话初始值=上限,动态扩容的话允许动态扩容几次后达到上限)以及连接数上限( NAT 会话数同样是资源)来实现。

    另外拿不到前缀的问题请先跳开软路由用其他确认 IPv6 支持没问题的设备测试,如果仍然只有 64 那就是运营商配置 DHCP-PD 的问题,因为 /60 或者 /56 的大前缀是通过 DHCP-PD 协议下发的。
    artnowben
        8
    artnowben  
       2023-05-17 18:19:42 +08:00
    很多运营商的 CGNAT 使用 DPDK 开发,思路与四层负载均衡相通,用五元组表示一条连接:
    (协议,源 IP ,源端口,目的 IP ,目的端口) -> (协议,公网 IP1 ,端口 1 ,目的 IP ,目的端口)
    同一个公网 IP 与端口,可以用于多个不同的目的 IP 、目的端口。用少量公网 IP 池可以承载非常多的连接。

    例如,dperf 单机可以承载几十亿并发连接数,原理就是端口可以复用,只要五元组中任意一项不一样,就表示一个新的连接。国内的几个头部运营商都在用 dperf 来测试他们的网络组件包括 CGNAT ,不妨了解一下高并发的原理。
    https://github.com/baidu/dperf
    MFWT
        9
    MFWT  
    OP
       2023-05-17 18:56:34 +08:00
    @zhouqian
    不可能的,前段时间看过一个老哥的例子,说是从 DNS53 换成了自建的 DoH ,结果一段时间后运营商打电话来问是不是宽带闲置了(因为没检测到 DNS 解析请求了)
    MFWT
        10
    MFWT  
    OP
       2023-05-17 18:59:22 +08:00
    @laozhoubuluo 同一个软路由双线接入,旧宽带可以拿到 PD ,新的不行,不知道是不是因为双线接入的缘故?
    laozhoubuluo
        11
    laozhoubuluo  
       2023-05-17 20:20:43 +08:00
    @MFWT 本质上双线就是两条单独的宽带嘛,双线自身肯定不是问题。
    如果软路由没问题,那么基本上就是运营商在 BRAS 上或者认证系统上配置的数据异常,比如地址池之类的。
    不过带着软路由这样一个复杂、影响因素多的东西测试麻烦,而且运营商也不一定认可。最简单的就是排除软路由,直接拿个单独的路由器分别测试两条线路,如果结果和软路由一致就可以拿单独测试的结果去找师傅,报修甚至投诉。
    qwvy2g
        12
    qwvy2g  
       2023-05-17 20:54:58 +08:00 via Android
    有端口复用技术,能让一个端口同时建立支持多个连接。只是不知道这个技术和 nat 类型有没有关系。
    K8dcnPEZ6V8b8Z6
        13
    K8dcnPEZ6V8b8Z6  
       2023-05-17 21:24:20 +08:00   ❤️ 2
    @leefor2020 事实上大部分普通人真的就只需要这样
    xinJang
        14
    xinJang  
       2023-05-17 21:29:20 +08:00
    广东移动:关我屁事?
    广东移动用户:你敢改试试,欠收拾了?大不了全额退费注销走人
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4999 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:50 · PVG 11:50 · LAX 19:50 · JFK 22:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.