• 请不要在回答技术问题时复制粘贴 AI 生成的内容
iugo
V2EX  ›  程序员

IPv6 普通上网时, 每个人应该被分配多少地址?

  •  1
     
  •   iugo ·
    iugo · Nov 25, 2020 · 5706 views
    This topic created in 2134 days ago, the information mentioned may be changed or developed.

    现在我们的普通宽带应该都支持 IPv6 了吧.

    在 IPv4, 一个家用宽带账号就被分配一个 IP.

    现在, 国内宽带是否都给每账号分配一个 IP 段?

    我看光猫上写着前缀 /56, 还以为是简单的 /64, 没想到更多.

    不确定这 /56 是否均为我的 IP.

    在不同的电脑上均能看到被自动分配的 IP. 不过前缀长度均写着 64, 似乎有 8 位长度并未被用上.

    有的电脑显示被分配了 3 个 IP, 有的显示被分配了 2 个. 在 macOS 上是什么决定了可以被自动分配多个 IPv6 的 IP? 应用申请就行还是系统有什么策略?

    尝试了手动修改 IP. /64 的均没问题, 但是想用上 /56 的还是失败了.

    现阶段家用宽带, 让家里每个设备均有一个独立 IP 已经可以实现了, 但是如何分配 IP 还挺麻烦的. 路由器根据不同 MAC 进行 IP 指定和设备自身如何设置自己的 IP 还挺麻烦. 电脑还是比较方便, 但如果我想一个机器同时使用多个 IP 还知道该怎么做, 还没尝试.

    还有就是安全问题, 虽然 IP 多了扫起来也麻烦, 但是一旦开放端口, 每台设备都危险. 给每台设备一个独立 IP 虽然方便, 但同时带来风险.

    17 replies  •  2020-12-20 13:17:37 +08:00
    no1xsyzy
        1
    no1xsyzy  
       Nov 25, 2020   ❤️ 2
    看上去是光猫分到 /56,然后把这个 /56 下降到每个设备( SLAAC ? DHCPv6 ?)分配 /64

    至于扫描,你实际的 IP 是在 /64 下的 /128 中随机挑一个(或几个)同时还会隔一段时间一变。
    除非你连上对方对方反向找你,否则 /64 下遍历 /128 找到你扫完 65535 估计得花上几千年
    boris93
        2
    boris93  
       Nov 25, 2020 via Android   ❤️ 3
    具体的东西我没详细了解
    一个设备应该是有 3 个 IPv6 地址

    一个是 link local 地址,fe80 开头的,类似 127.0.0.1
    一个是永久 IPv6 地址,理论上这个地址永远不变,但实际上光猫每次拨号都会变。这个地址绝对不能被外人知道。
    一个是临时 IPv6 地址,这个地址用来与外界通信

    至于安全问题,要么光猫下面的机器全部关掉 IPv6,这样公网就连不到 NAT 后面的机器,要么就靠防火墙了
    iugo
        3
    iugo  
    OP
       Nov 25, 2020
    @boris93 macOS 选择手动后, 就只能设置一个地址了.

    当我刚从手动切换到自动时, 的确是 2 个. 之前开机时间比较长, 可能因为一些需要, 有了第 3 个地址.

    fe80 类似于局域网地址吧, 就像路由器常用的 192.168.0.0/16 等. 但从 macOS 的图形界面上只能看到 IPv6 公网的 IP, 不像 IPv4 显示的是局域网 IP.
    dndx
        4
    dndx  
       Nov 25, 2020
    这个是正常的,最终用户机器上分配的都是 /64 的地址,至于 /56 是让你在路由器上可以多分几个子网。如果只有一个子网,那就只有 /64 。
    systemcall
        5
    systemcall  
       Nov 25, 2020
    单个设备的话,每个设备自己会根据网卡的 mac 地址生成一个 fe80 开头的本地链接 ipv6 地址,加上前缀就是 ipv6 地址,可以通过公网来访问。本地链接 ipv6 地址正常情况下是不会变化的
    还有一个或多个通过 SLAAC 之类的协议分配的临时 ipv6 地址,每个一段时间(看具体配置)会重新分配一个,之前的好像也可以用,不清楚要多久才会过期。我有个设备一直连接在无线路由下,拿了十几个临时 ipv6 地址
    最终的设备一般就是拿的 /64 的地址,但是运营商给你的前缀应该是要必须大一些才可以
    no1xsyzy
        6
    no1xsyzy  
       Nov 25, 2020   ❤️ 2
    @boris93 看了下 fe80 开头并不是类似 127.0.0.1,而是 169.254.*
    169.254 地址的用途是端对端不通过路由器或交换机,直接把两台计算机的网卡接起来用;以前还需要 cross-over 的线,现在自适配网卡不需要了。

    至于类似 127.0.0.1 的,IPv6 下是 ::1 。
    ysc3839
        7
    ysc3839  
       Nov 25, 2020 via Android
    @boris93 fe80 那个类似的是 169.254 。127.0.0.1 是 loopback 地址,不是 link local 地址。
    Lemeng
        8
    Lemeng  
       Nov 25, 2020
    据说可以给每个人的每一个设备,包括电冰箱电视机,电 xx 都有独立 ip
    bzw875
        9
    bzw875  
       Nov 25, 2020
    ipv6 地址数 2 的 128 次方
    34 028236692 0938500000 0000000000 0000000000
    7057000000
    世界人口 70.57 亿
    Xymmh
        10
    Xymmh  
       Nov 25, 2020 via Android
    ipv6 中的
    fc00::/8 才和 ipv4 里的 192.168.1.1 类似;
    realpg
        11
    realpg  
       Nov 25, 2020
    实际上,每个子网一个 /64 就够了
    Overfill3641
        12
    Overfill3641  
       Nov 25, 2020
    以后路由器防火墙是标配
    jim9606
        13
    jim9606  
       Nov 25, 2020
    我这边测试的结果是路由器通过 PPPoE 通过 SLAAC 生成一个 /64 地址,并通过 DHCPv6-PD 获得一个 /56 前缀。
    理论上可以 DHCPv6-PD 一层层分发这个前缀到 /64 为止(更长的前缀不支持 SLAAC,只能用 statefull DHCPv6 ),openwrt 就可以详细设置下游的前缀长度和子前缀
    例如一级路由 PPPoE 获得前缀 240e:1234:1100:ff00::/56,LAN 侧分配前缀 240e:1234:1100:ffe0::/60 (ip6assign=60,ip6hint=e)
    二级路由在 LAN 侧继续加前缀 240e:1234:1100:ffe8::/62 (ip6assign=62,ip6hint=2)
    三级路由继续加 240e:1234:1100:ffe9::/64 (ip6assign=64,ip6hint=1)
    其他家用路由估计的 native IPv6 估计都是固定分配 /64 stateless/statefull DHCPv6 了。
    jim9606
        14
    jim9606  
       Nov 25, 2020
    另外拿 openwrt 来说,它的防火墙默认拦截入站 IPv6 流量,只放行部分 ICMPv6 、DHCPv6 、IPSec 的入站数据包。像 Windows 的防火墙默认也是拦截不属于本地子网的入站 IPv6 流量。
    但是如果没有上面说的那些防火墙,然后还把网络服务绑定到[::]还不加任何密码保护的那就真的有被爆的风险,IPv4 靠着 NAT 反而没有这种担忧,所以有些习惯确实要改一下。
    lc7029
        15
    lc7029  
       Nov 26, 2020
    先说 /56/64 这些都是 ipv6 的掩码。
    运营商一般是给 /48/56/60/64 这样的掩码段,至于给多少看当地运营商。
    协议规定,slaac 自动生成的掩码长度最长是 /64,/72 这种更长的不能用于 slaac 。
    考虑到隐私问题,应用可以在联网时申请临时 ip,用完即弃,这是看到有多个临时 ip 的原因。临时 ip 在网段内可以随意使用。
    楼主尝试修改 /64 可用,但修改 /56 不可用,估计给你的掩码是 /60,修改成 /64 在同一个段内,/56 不在同一个段,运营商给丢包。
    最后吐个槽,ipv6 没有一对多 nat,重大设计缺陷。。。
    chinawrj
        16
    chinawrj  
       Nov 26, 2020
    @no1xsyzy 这么优秀正确的回答,竟然不如那个半吊子的回答的点赞数量多。
    qbqbqbqb
        17
    qbqbqbqb  
       Dec 20, 2020
    手动设置 /56 内的不能用,是因为你的光猫内置路由拿到 /56 之后,只从中挑了一个 /64 应用到 LAN 子网上了(因为按照标准,用于终端接入的网络前缀就应该是 /64 的),其它部分虽然 PD 下发下来了但是光猫内置的路由表里是未配置的,自然就不能用。

    如果你接入多个支持 ipv6 的二级路由的话,应该能够用到 /56 里的不同的 /64 (不过不是所有光猫都支持二级 PD 前缀下发)。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2447 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 16:02 · PVG 00:02 · LAX 09:02 · JFK 12:02
    ♥ Do have faith in what you're doing.