V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
iugo
V2EX  ›  程序员

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

  •  1
     
  •   iugo ·
    iugo · 2020-11-25 12:44:19 +08:00 · 4491 次点击
    这是一个创建于 1488 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在我们的普通宽带应该都支持 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 条回复    2020-12-20 13:17:37 +08:00
    no1xsyzy
        1
    no1xsyzy  
       2020-11-25 12:51:47 +08:00   ❤️ 2
    看上去是光猫分到 /56,然后把这个 /56 下降到每个设备( SLAAC ? DHCPv6 ?)分配 /64

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

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

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

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

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

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

    如果你接入多个支持 ipv6 的二级路由的话,应该能够用到 /56 里的不同的 /64 (不过不是所有光猫都支持二级 PD 前缀下发)。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2570 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 06:41 · PVG 14:41 · LAX 22:41 · JFK 01:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.