V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
c3824363

请教运营商分配内网 IP 时采用的 NAT 设备的 nat 类型是 full cone 的么

  •  
  •   c3824363 · Jun 4, 2018 · 9265 views
    This topic created in 2897 days ago, the information mentioned may be changed or developed.
    按道理说 full cone 是最简单的,效率也是最高的。 不知道实际情况是怎么样的呢
    28 replies    2018-06-08 11:05:34 +08:00
    cwbsw
        1
    cwbsw  
       Jun 4, 2018   ❤️ 1
    测试了一下电信是 Full Cone。
    s82kd92l
        2
    s82kd92l  
       Jun 4, 2018
    上海联通 4G 是 symmetric,宽带好像是 port restricted cone。

    full cone 最简单,但是 v4 地址利用率低。越复杂的 nat 越能用有限的外网地址支持更多的内网设备。
    cwbsw
        3
    cwbsw  
       Jun 4, 2018
    @s82kd92l 反了吧。对称 NAT 每一组目的地址端口都要在 NAT 网关上开一个端口,v4 地址利用率怎么会高呢。
    c3824363
        4
    c3824363  
    OP
       Jun 4, 2018
    @cwbsw Full Cone 最多只能 0xffff 个连接的
    symmetric nat 可以根据 dst ip dst port src port 查找 nat 表 实际支持的多的多了。
    cwbsw
        5
    cwbsw  
       Jun 4, 2018
    @c3824363 这也太丧心病狂了吧,连端口都要复用,运营商级别的不会这么干吧……
    ThirdFlame
        6
    ThirdFlame  
       Jun 4, 2018
    个人了解的情况是,,一个内网 IP 分配 500 或者更多的 tcp 端口。 例如 8.8.8.8:1-500 对应一个内网 ip,8.8.8.8:501-1000 对应另外一个 ip。
    有条件的可以测试下, 你找个外网服务器,抓下包,看看源地址是不是固定,源端口是不是一直在一个范围内。

    为何这样设置,为了反查 ip。
    不代表所有运营商的 nat 情况,仅代表个人了解的一种情况。
    yexm0
        7
    yexm0  
       Jun 4, 2018 via iPhone
    @ThirdFlame 我这深圳移动试过当 ssh 连接莫名其妙断线后再连上去时那 ip 会变的
    ThirdFlame
        8
    ThirdFlame  
       Jun 4, 2018
    @yexm0 有线宽带么? 如果路由器的 WAN ip 不变,一般来说 公网 IP 也不变。 全动态的 nat 固然简单,但是对 通过源 ip 和端口 定位哪个用户比较困难。需要全量 NAT 转换日志,一般不采用。

    运营商 nat 方案很多,得看当地的情况,也不是全是我说的那种。
    yexm0
        9
    yexm0  
       Jun 4, 2018 via iPhone
    @ThirdFlame 对,移动 20M 免费送的就拿来玩了一把,速度啥的是很快,就是那网很不稳。不知道是不是跟这个情况有关了。
    LoveParkHyomin
        10
    LoveParkHyomin  
       Jun 4, 2018
    广东联通是 symmetric
    LGA1150
        11
    LGA1150  
       Jun 4, 2018
    广东联通 4G full cone
    zhouyut001
        12
    zhouyut001  
       Jun 4, 2018 via Android
    重庆电信公网 IP,路由拨号,一样是 symmetric
    p64381
        13
    p64381  
       Jun 4, 2018 via Android
    @zhouyut001 公网 ip 的话就是你的路由器的事了,你用的 openwrt 系列的路由器吧
    LGA1150
        14
    LGA1150  
       Jun 4, 2018 via Android
    @zhouyut001 因为 Netfilter NAT 就是 Symmetric
    p64381
        15
    p64381  
       Jun 4, 2018 via Android
    @LGA1150 linux 为什么不用最简单的实现呢
    lqf96
        16
    lqf96  
       Jun 5, 2018
    @p64381 conntrack 的工作方式决定的,不过现在好像有人在搞 cone nat 的 kernel module
    artandlol
        17
    artandlol  
       Jun 5, 2018 via iPhone
    这时候只能用 frp 来转发了。现在电信都不给公网 ip 了
    zhouyut001
        18
    zhouyut001  
       Jun 5, 2018 via Android
    @p64381 普通千 M 华为无线路由器
    initialdp
        19
    initialdp  
       Jun 5, 2018
    @artandlol 电信宽带的话,只是默认不给公网 IP,打电话过去投诉,一般会给公网 IP。mobile 网络似乎目前各家都是只给私网 IP。希望 IPv6 早点到来。
    c3824363
        20
    c3824363  
    OP
       Jun 5, 2018
    @lqf96 你说的这个人就是 @LGA1150
    @p64381 同好奇
    @zhouyut001 这个是 linux 的系统
    @LGA1150 在使用 openwrt 后得到的是端口限制的类型 不是 Symmetric, 直接用 tplink 就是 full cone
    LGA1150
        21
    LGA1150  
       Jun 5, 2018 via Android
    @c3824363 如果 WAN INPUT 默认 ACCEPT,你再测就是 Symmetric。见 https://blog.chionlab.moe/2018/02/09/full-cone-nat-with-linux/
    zhouyut001
        22
    zhouyut001  
       Jun 5, 2018 via Android
    @c3824363 Windows 沒測試過,我 Debian9 測試確實是 symmetric
    c3824363
        23
    c3824363  
    OP
       Jun 5, 2018
    @zhouyut001 我是说你这个 nat 设备是 linux 系统的

    @LGA1150
    WAN INPUT 设成 ACCEPT 后对于到达本地的不可转发的 udp 数据包会返回一个 icmp 错误,而默认的时候是装作没听见
    是这个区别么,stun 检测的时候哪个环节导致的这两种情况的差异呢。

    这个文章也看了 https://blog.csdn.net/u011245325/article/details/9294229 没仔细看 stun 的源码, 还是不明白为什么会导致这个差异。
    zhouyut001
        24
    zhouyut001  
       Jun 6, 2018 via Android
    @c3824363 了解
    LGA1150
        25
    LGA1150  
       Jun 6, 2018
    c3824363
        26
    c3824363  
    OP
       Jun 6, 2018
    @LGA1150 这个很有必要推广开, 越来越多的路由器开始采用魔改的 openwrt 系统了
    LGA1150
        27
    LGA1150  
       Jun 8, 2018   ❤️ 1
    @c3824363 #23
    因为 Netfilter 尽可能不会改动源端口,所以会被误检测为 Port Restricted Cone。如果 ACCEPT 了 stun 服务器发过来的包,在 conntrack 表里就会产生一个新的连接记录。客户端再用同样的源端口发包时,由于那条连接记录的存在,不能复用原来的源端口而必须新分配一个(从 1024 开始往上找可用端口),这时才会被认为是 Symmetric
    c3824363
        28
    c3824363  
    OP
       Jun 8, 2018
    @LGA1150 多谢, 这么说就明白多了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3148 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 14:36 · PVG 22:36 · LAX 07:36 · JFK 10:36
    ♥ Do have faith in what you're doing.