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

帮忙看下小弟 IPV6 是不是 nat 了?

  •  
  •   junlong · 2023-03-08 19:44:35 +08:00 · 3168 次点击
    这是一个创建于 637 天前的主题,其中的信息可能已经有所发展或是发生改变。

    楼主宽带为杭州移动,光猫上显示 GUA:2409:8a28:cf1:4ea7:3655:94ff:fe87:db49/64 ,电脑访问 https://ipw.cn/ipv6/ 查看到的 IPV6 地址则为:2409:8a28:c1f:80c0:a0d3:9bb8:e792:6007 ,两者不一致,这是不是意味着运营商有设置 IPv6 地址 nat ?

    27 条回复    2023-03-10 16:11:23 +08:00
    lanternxx
        1
    lanternxx  
       2023-03-08 20:05:14 +08:00
    你都说了第一个 IP 是光猫上显示的 IP ,第二个 IP 是电脑访问网站查询到的..
    两者要是一致了才是被 NAT 了
    yyzh
        2
    yyzh  
       2023-03-08 20:06:57 +08:00 via Android
    所以有个问题,看 ip 为什么要在光猫看?
    lanternxx
        3
    lanternxx  
       2023-03-08 20:09:29 +08:00
    去看电脑网卡获取到的 IP 和查 IP 网站查到的 IP 是否一致就行了
    注意电脑上可能会获取到多个 IPv6 地址
    目前没听说过哪家运营商会给 IPv6 做 NAT
    Love4Taylor
        4
    Love4Taylor  
       2023-03-08 20:22:26 +08:00
    你要看也是看你电脑网卡的地址啊,光猫拿到 PD 也就是说这一段的 v6 地址你都可以分配,人光猫自己给自己分一个地址,给其他设备分其他地址为啥不行。
    LnTrx
        5
    LnTrx  
       2023-03-08 20:27:25 +08:00
    “看光猫 IP 和网站显示 IP 不一致是 NAT”是 IPv4 下的经验。过去运营商用的是 NAT ,内网与外网是无法保持一致的,所以可以借此判断。目前,NAT4444 之类的操作已经打破了这种判断方法。

    IPv6 与 IPv4 不同,如果正确配置,每一台设备都应该有一个或更多的公网 IPv6 。当前没听说过国内运营商会给家宽做 NAT (反而浪费资源),只要本机获取到 2xxx 开头地址即是公网。当然,是公网不代表可以接收入站请求。这可以在本机开一个非常规端口的 web 服务,放通本机、路由器、光猫的 IPv6 防火墙,通过外网访问来测试。
    systemcall
        6
    systemcall  
       2023-03-08 20:38:46 +08:00
    感觉应该只是隐私扩展
    你可以在命令提示符里面输入 ipconfig /all ,看看是不是其实有这两个 IP ,一个是 IPv6 地址,另一个是临时 IPV6 地址,而且除了这两个外还有两个起步的 fe80 开头的,后面 64 位和这两个一模一样,可能还有一个 fd 开头的,openwrt 分配的,不知道干嘛用的内网地址
    junlong
        7
    junlong  
    OP
       2023-03-08 21:28:13 +08:00
    谢谢各位解答!~~~
    Xymmh
        8
    Xymmh  
       2023-03-08 21:51:44 +08:00
    不是 NAT 。
    简单地说,光猫获取的 GUA 地址:2409:8a28:cf1:4ea7:3655:94ff:fe87:db49/64 是上级设备通过 SLAAC 从 2409:8a28:cf1:4ea7::/64 前缀分配给你光猫 wan 口的 IP ,相当于你的光猫是上级设备的一个客户端。
    2409:8a28:c1f:80c0::/64 是上级设备通过 DHCP-PD 分配给你光猫 lan 口的前缀,就是给你了一个独立的网段,让你自己去随意分配,你的电脑获取到了其中的一个地址:2409:8a28:c1f:80c0:a0d3:9bb8:e792:6007 ,此时电脑相当于光猫的一个客户端。
    Xymmh
        9
    Xymmh  
       2023-03-08 21:55:29 +08:00
    和 IPv4 类比,此时 GUA:2409:8a28:cf1:4ea7:3655:94ff:fe87:db49/64 相当于路由器 wan 口的 IP ,比如 101.6.6.6 。
    而电脑获取的地址前缀:2409:8a28:c1f:80c0::/64 则相当于 lan 口 IP 192.168.1.1/24 ,整个地址 2409:8a28:c1f:80c0:a0d3:9bb8:e792:6007 则相当于 192.168.1.120 。
    Xymmh
        10
    Xymmh  
       2023-03-08 21:58:22 +08:00
    需要注意的是,虽然 IPv4 和 IPv6 都有 wan 口 IP 和 lan 口 IP 的概念,但 IPv6 在不特殊设置的情况下,默认不启用 NAT 。
    junlong
        11
    junlong  
    OP
       2023-03-08 21:59:47 +08:00
    @Xymmh 谢谢这么详细解答~~
    duduke
        12
    duduke  
       2023-03-08 22:24:09 +08:00 via iPhone
    v6 直接给一个网段,可以用 v4 的掩码理解
    lovezhiqi123
        13
    lovezhiqi123  
       2023-03-09 05:52:30 +08:00
    @Xymmh 不懂就别乱说了好吗?
    Xymmh
        14
    Xymmh  
       2023-03-09 10:12:34 +08:00 via Android
    @lovezhiqi123 如果哪里有错误请指出,如果不指出就说我乱说的话,那我就只能理解为我说的话触及你的知识盲区了[捂嘴笑]
    maybeonly
        15
    maybeonly  
       2023-03-09 10:43:05 +08:00
    A. 显然不是。
    ————
    Q. 本质上说,ipv4 为什么要 nat 啊?
    A. 最常见的理由是,公网 ip 不够,需要共享同一个公网 ip 。
    Q. 那么,为什么不能直接用 192.168.x.x 的 ip 上外边的网站,而一定要 nat 呢?
    A. 答案是,因为 192.168.x.x 不是公网 ip 。
    Q. 那么,为什么他不是公网 ip ?
    A. 因为 RFC 里写了,他不是公网 ip 。
    Q. 那我用一段 RFC 里规定的公网 ip 行不行,比如我把我家内网设置为 11.22.33.0/24 ?
    A. 答案是仍然需要 nat ,本质是这些 11.22.33.x 的 ip ,别人找不到你;而运营商给你的那个公网 IP ,别人能找到你。
    Q. 那他们为什么不看到 11.22.33.x 就来找我呢?
    A. 因为你没有宣告路由,而且你不是这段 ip 的合法拥有者,别人也不会接受你的宣告。
    Q. 那么,如果我买了 /租了一段合法的 ip ,然后花钱让运营商帮我宣告,我是不是就可以不用 nat 了?
    A. 只从技术上来讲,是的。很多 IDC 商家就是这么做的,他们的路由器到运营商的链路上,通常有另一组(或多组)点对点的 IP 地址,和局域网内的地址完全不同,不用于上网只用于互联。
    Q. 那么如果运营商给我分了一段 ip ,还帮我宣告了,我是不是就不用 nat 了?
    A. Bingo ! 2409:8a28:c1f:80c0:a0d3:9bb8:e792:6007 所在这一段(可能是 /64 或者更大)就是运营商帮你宣告了,访问这一段的数据包都会转发给你(被防火墙干掉的除外)。这些数据包是通过 2409:8a28:cf1:4ea7:3655:94ff:fe87:db49 这个地址转发的(运营商到你这一段通常是 dhcp-pd )。
    Q. 那运营商为什么要这么干,是不是剥夺了我做 nat 的权利?
    A. 并没有。他这么干除了成本原因,也是给了你自己选择 nat 或者不 nat 的权力。如果你一定要,你仍然可以把出去的请求 nat 到你拥有的任何合法 ip 地址上。你所有对外访问的 v6 流量都用 2409:8a28:c1f:80c0::做源 ip ,完全可以实现。
    aru
        16
    aru  
       2023-03-09 12:09:07 +08:00
    @Xymmh
    你第一段没错,第二段类比不应该用私网 IP 。
    运营商给的 ipv6 都是公网 IP
    Jhma
        17
    Jhma  
       2023-03-09 12:51:13 +08:00
    光猫拨号上网的话,光猫也有一个 v6 地址,然后同时获得一个前缀进行地址下发到内网终端上
    lentrody
        18
    lentrody  
       2023-03-09 19:38:36 +08:00
    你有光猫管理员密码的话登录进去应该就能看到另一个跟你电脑地址前 64 位相同的 PD 前缀了。
    Xymmh
        19
    Xymmh  
       2023-03-09 22:25:20 +08:00 via Android
    @aru 我又看了一遍我发的三段话,实在没看出来哪里有问题。你没看到我发的第三段话?
    Xymmh
        20
    Xymmh  
       2023-03-09 22:27:39 +08:00 via Android
    @Livid 真理在此站容易不受欢迎,这样下去谁还有发正经内容的想法?
    cnbatch
        21
    cnbatch  
       2023-03-10 02:10:45 +08:00
    @Xymmh 我猜,
    @aru
    的意思是,


    而电脑获取的地址前缀:2409:8a28:c1f:80c0::/64 则相当于 lan 口 IP 192.168.1.1/24 ,整个地址 2409:8a28:c1f:80c0:a0d3:9bb8:e792:6007 则相当于 192.168.1.120


    这段话,里面的 IPv4 地址可以修改成类似于


    而电脑获取的地址前缀:2409:8a28:c1f:80c0::/64 则相当于 lan 口 IP 123.45.67.1/24 ,整个地址 2409:8a28:c1f:80c0:a0d3:9bb8:e792:6007 则相当于 123.45.67.89


    因为 192.168.1.1 这样的 IPv4 地址是私网地址,在 IPv6 里地位相同的是 fe80 开头的地址段,所以打比方举例的时候,用 IPv4 公网的比喻时使用 IPv6 公网、IPv4 私网比喻时也用 IPv6 私网,既能明确表示在 IPv6 的状态下运营商分配的就是公网 IP (从对应关系就能看得出),又能让小白们明白 IPv6 的私网网段在哪
    LnTrx
        22
    LnTrx  
       2023-03-10 12:36:09 +08:00
    @cnbatch

    链路本地地址:169.254.0.0/16 对应 fe80::/10
    私有地址:10.0.0.0/8 + 172.16.0.0/12 + 192.168.0.0/16 对应 fd00::/8

    @Xymmh
    不推荐把 v6 的公网类比成 v4 的私有地址,虽然是为了便于理解,但可能会引发新的混淆
    cnbatch
        23
    cnbatch  
       2023-03-10 15:04:50 +08:00
    @LnTrx 对,lIPv6 私网网段我记混了
    Livid
        24
    Livid  
    MOD
       2023-03-10 15:40:07 +08:00
    @Xymmh

    如果你要举报,请告知具体楼层。我没有时间看完每天所有的新回复。
    Xymmh
        25
    Xymmh  
       2023-03-10 16:01:20 +08:00 via Android
    @cnbatch 我是为了强调在 IPv6 下也有「 lan 口地址」的概念,因为我觉得这才是一些新手不明白的点。而在常见的 IPv4 家庭网络下,lan 口地址就是 192.168.1.1/24 等私网 IP 。

    另外,如果只是在「 lan 口地址」这个概念下讨论,运营商分配给你的公网 IPv6 前缀本来就是和 IPv4 中的私网地址同级的,OpenWrt 的接口概览中并不会显示 fe80 开头的本地链路地址。

    还有,在「地址类型」这个概念下讨论,fd00::/8 才是和原先 IPv4 中私网地址用途较为相同的网段。然而在家庭网络中,由于 IPv4 尚在使用,没有必要再添加一组 ULA IPv6 地址。
    Xymmh
        26
    Xymmh  
       2023-03-10 16:05:47 +08:00 via Android
    @LnTrx 可以理解,我所说的“相当于”可能会误导一些新手。
    Xymmh
        27
    Xymmh  
       2023-03-10 16:11:23 +08:00 via Android
    @Livid 还是不举报了。我只是觉得,我将很多人不愿意费力打出来的话打了出来,告诉了这位新手,却有人连理由都不说就说我乱说,这样很伤人心。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1044 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:23 · PVG 04:23 · LAX 12:23 · JFK 15:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.