为你的 IPv6 局域网配置 ULA 吧 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
raysonx
V2EX    宽带症候群

为你的 IPv6 局域网配置 ULA 吧

  •  1
     
  •   raysonx 2018-09-11 11:00:41 +08:00 26626 次点击
    这是一个创建于 2655 天前的主题,其中的信息可能已经有所发展或是发生改变。

    近几个月来,三大运营商开始陆续在部分地区提供 IPv6 互联网的接入服务。在号称“每一粒砂子都可以获得一个地址”的 IPv6 时代,所有的设备都可以拥有公网地址,NAT 不再是刚需。那是不是我们不再需要内网地址了呢? 本文将探讨一下这个话题。

    IPv4 下的私有网络

    曾经的 IPv4 网络也是点对点对等互联的:几乎所有互联网上的设备都拥有公网 IPv4 地址,甚至早期的 FTP 协议都只支持两个点对点连接的设备互传文件:客户端发起连接到务器传输指令;下载文件时需要监听端口,等待服务器端发起连接。

    同时,IPv4 提供了三个私有网络(private network)地址段: 10.0.0.0/8172.16.0.0/12192.168.0.0/16,无需注册申请即可在私有网络中自由使用。 在 NAT 技术出现以前,这样的地址段通常只提供内网通信,不提供互联网访问服务。需要访问互联网时,往往需要依靠同时接入内外网的代理服务器。

    后来 IPv4 地址不够用了,IPv6 就被提出出来了,同时顺便解决一下 IPv4 网络的缺陷。然而 IPv6 与 IPv4 完全不兼容,普及十分缓慢。为了缓解地址不够用的问题,NAT44 被大量运用,普通用户的公网 IPv4 地址被收回并高价卖给企业用户,越来越多的用户被安排进内网。再到后来,某些 ISP 甚至明目张胆把 不提供公网 IPv4 地址 写进合同了。

    内网地址下的终端设备在互联网上丧失了点对点互联的能力,只能主动向拥有公网 IP 的设备发起连接,无法被动接受连接,P2P 使用受限,就像你拥有一部只能打出而不能呼入的电话。部分内网用户为了使自己的设备能够被远程连接,研究各种打洞、穿透与隧道技术,好不热闹。

    IPv6 下的私有网络与 ULA

    IPv6 拥有 128 位长的地址,号称“可以为每一粒砂子分配一个地址”,一劳永逸地解决了地址短缺问题。每个设备都可以拥有公网 IPv6 地址,点对点连接又回来了。其实想一想,我们只是重新获得了近十年里失去的东西罢了。

    IPv6 时代,ISP 依然会为普通用户提供“动态” IPv6 地址:每次接入网络时,ISP 会重新分配一个 IPv6 地址前缀,这就使得用户侧所有终端的地址发生变化。如果你的终端设备之间有内部互联,这可能会造成服务中断。我们不希望自己运行的网络受制于 ISP !

    解决方法自然是:给你的局域网分配一个 IPv6 的内网地址段吧。 当然我不是让你重新使用 NAT。当然 IPv6 依然支持 NAT,如果你愿意,可以为你的终端分配内网 IPv6 地址,然后在网关处部署 NAT66,你就又重新再次回到了 NAT 时代。不过通常而言,NAT66 是没有必要的,而且使用 NAT 技术还会造成非常明显的性能损失。

    在 IPv6 网络下,可以为每一个网络接口分配多个 IPv6 地址。你可以为你局域网的设备同时分配公网和内网地址,使你的设备同时接入内外两张网。

    IPv6 提供一段称为 Unique Local Address ( ULA )的地址段fc00::/7,包含fc00::/8fd00::/8两部分:目前fc00::/8的使用还没有定义,我们不去管它;fd00::/8可以被自由使用。fd00::/8是一个十分巨大的地址段,你可以从中挑选一个/48的子段分配给你的局域网。RFC 4193建议使用随机生成的方法,使每个局域网的地址段都不同(这也是 ULA 名字的由来),从而避免局域网合并时地址冲突的麻烦。当然这主要是针对企业而讲的,家庭使用的话随机生成还是挑个好记的自己斟酌。如果要随机生成,Google 一下ULA generator有真相。

    有了 ULA,你的设备在内部互访时可以直接使用固定的 ULA,和外部互访时则使用公网地址。只要保证你的路由表正确就可以:默认路由使用公网地址作为出口,ULA 地址段使用 ULA 作为出口。如果出现问题,检查一下你的 Router Advertisement 和 DHCPv6 服务的设置吧。

    第 1 条附言    2018-09-11 12:06:26 +08:00
    其实楼主是哭晕在厕所里的北京联通用户。北京联通的动作真的好慢慢慢慢慢慢慢慢慢慢慢...
    37 条回复    2023-07-11 00:17:34 +08:00
    Liqianyu
        1
    Liqianyu  
       2018-09-11 11:16:48 +08:00
    FC00:0000:0000:0000:0000:0000:0000:0000

    FDFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
    都是可以使用的 ULA(unique local address)
    raysonx
        2
    raysonx  
    OP
       2018-09-11 11:59:21 +08:00 via Android
    @Liqianyu 目前来讲只建议使用 fd 打头的范围,fc 打头的分配策略还没有定义。
    Liqianyu
        3
    Liqianyu  
       2018-09-11 12:11:31 +08:00
    @raysonx
    是的,建议使用 FD 前缀。
    生成可以用
    https://www.ultratools.com/tools/rangeGeneratorResult
    另外北京联通我已经拿到 IPv6 一个月了。
    raysonx
        4
    raysonx  
    OP
       2018-09-11 12:13:43 +08:00 via Android
    @Liqianyu 我这边依然还是单栈公网 IP,归属朝阳区五路居电话局。
    Liqianyu
        5
    Liqianyu  
       2018-09-11 12:14:42 +08:00
    https://cd34.com/rfc4193/
    这个是按照 RFC4193 生成的。
    Archeb
        6
    Archeb  
       2018-09-11 12:30:54 +08:00
    作为懒人我选择直接用 10.0.0.0/8 _(:з)∠)_
    wm5d8b
        7
    wm5d8b  
       2018-09-11 12:41:50 +08:00
    @Archeb #6 你和我们讨论的是同一个东西嘛
    你应该这样说“作为懒人我选择直接用 fc00::/64 _(:з)∠)_”
    Archeb
        8
    Archeb  
       2018-09-11 13:00:52 +08:00
    @wm5d8b emmm 也可以(
    akumax
        9
    akumax  
       2018-09-11 13:24:06 +08:00
    趴在桌上想了想,什么时候治好懒癌就上 IPv6 _(:з)∠)_
    helllkz
        10
    helllkz  
       2018-09-11 13:24:39 +08:00
    恰好相反,我刚把 ULA 给删除了,只保留了电信分配的 PD,家庭内网使用我还是用的 V4
    cwbsw
        11
    cwbsw  
       2018-09-11 13:26:00 +08:00
    只有 ULA 地址的话 windows 网络属性会显示无 Internet 连接,而且时间长了之后会 ping 不通网关。建议用公网地址来做 NAT。
    xenme
        12
    xenme  
       2018-09-11 13:45:33 +08:00
    @Archeb
    @wm5d8b

    suffix 基本都靠自动生成,太不爽了。能 fd00::1 就爽了,比 ipv4 还短
    raysonx
        13
    raysonx  
    OP
       2018-09-11 13:48:38 +08:00
    @akumax
    @helllkz
    就目前来看内网 IPv4 也是够用的。这是讨论的是纯 IPv6 内网的方案。
    @cwbsw 我个人已经使用 IPv6 内网多年,各种系统的设备都有,并没有遇到你所说的问题。
    BOYPT
        14
    BOYPT  
       2018-09-11 13:49:06 +08:00
    v6 的好处是链路地址,即使没有路由器也能通信;之前一次停电,路由器是 exsi 内的虚拟机,没能自动启动;
    想起收藏夹里面藏了 exsi 主机的链路地址[fe80:xxxxx],点开,果然能进去开机;( b 格高点应该是看一下网卡的 mac 地址心算出链路地址)

    这种情况下 ULA 也用不上
    raysonx
        15
    raysonx  
    OP
       2018-09-11 13:50:17 +08:00
    @xenme 当然可以用 fd00::1。不喜欢自动生成 suffix 那就用 DHCPv6 啊,不过 Android 至今不支持 DHCPv6,估计以后也不会支持了。
    xenme
        16
    xenme  
       2018-09-11 13:51:36 +08:00
    @xenme 补充,哈哈,我都是 fd00::1, fd::2 依次类推。
    xenme
        17
    xenme  
       2018-09-11 13:52:25 +08:00
    @raysonx 上面写错。
    raysonx
        18
    raysonx  
    OP
       2018-09-11 13:58:40 +08:00
    @BOYPT 这种情况只是相当于每个设备多配了一个静态地址没有受 DHCP 宕机影响,同一链路下通信本来就不需要路由器。
    多网卡的情况下使用`fe80`地址需要加网卡后缀,比如`fe80::abcd%eth1`。很多软件不支持这种格式,正则都过不了 :(
    Ant01
        20
    Ant01  
       2018-09-11 20:40:21 +08:00
    @Liqianyu 为什么我天天看我的都还没有
    Maskeney
        21
    Maskeney  
       2018-09-11 21:32:25 +08:00
    学习了 感谢楼主 另外楼主是做相关工作的么?看起来发了好多关于 IPV6 的帖子
    txydhr
        22
    txydhr  
       2018-09-12 07:02:31 +08:00
    正常家用。。。每个设备不都是有固定的 fe80 开头的地址么?
    raysonx
        23
    raysonx  
    OP
       2018-09-12 10:01:39 +08:00 via Android
    @Maskeney 和工作不相关,只是做一些微小的推广工作而已。

    @txydhr 现状是大量的应用软件不支持 link-local 地址。

    比如有的软件不支持 zone index 后缀,如 fe80::dead:beef%eth0,典型的例子如配置 Linux 的 DNS 时,/etc/resolv.conf 文件就不支持这种写法。还有的软件直接主动禁止在 link-local 地址下工作,比如 kubernetes。
    coby3155
        24
    coby3155  
       2018-09-12 16:59:51 +08:00
    请问大神..家里电信 IPV6 原生地址..桥接连路由器就会无 INTERNET 访问权限..不知道有没有解决办法?
    flynaj
        25
    flynaj  
       2018-09-23 21:49:30 +08:00 via Android
    @raysonx 你的手机问题,MIUI 全部支持者
    Spxg
        26
    Spxg  
       2018-12-14 18:33:05 +08:00 via Android
    上个月有的 ipv6,坐标福建电信,因为电信宽带套餐升级,在原来的套餐上加了 100M,所以多给了我一个新的宽带账号,一拨就有 v6 了。现在我用 v6 在家里搭了几个网站,重要的是端口还没封,用的挺舒服。问了装宽带的师傅最近 v6 怎么样了,他说现在都在搞这个
    Spxg
        27
    Spxg  
       2018-12-14 18:33:27 +08:00 via Android
    @Spxg 刚说完。。。端口就被封了。wc
    xionger
        28
    xionger  
       2019-02-09 23:25:42 +08:00
    @raysonx 小白请教
    可以直接用 fd00::/8 吗? 为什么要在这里面再挑选一个 /48 的子段呢?
    raysonx
        29
    raysonx  
    OP
       2019-02-11 22:55:19 +08:00 via Android
    @xionger 可以使用。挑 /48 的子段是为了可以给不同的局域网分配不重复的地址段。
    junkman
        30
    junkman  
       2020-04-17 09:35:40 +08:00
    @raysonx 2020 年,再次翻出来提问。

    家用的话,IPv6 /48 子段应该有 2^80 个可用 IP,但是家用的话应该撑死 256 个地址就够用了吧?

    似乎用 fd00::8 /120 子段就可以了呢?
    junkman
        31
    junkman  
       2020-04-17 09:37:24 +08:00
    diff:
    - 似乎用 fd00::8 /120 子段就可以了呢?
    + 似乎用 fd00:: 前缀下的某个 /120 子段就可以了呢?
    raysonx
        32
    raysonx  
    OP
       2020-04-17 12:10:03 +08:00 via iPhone
    @junkman 前缀如果大于 64,无状态地址配置将不可用,只能用 DHCPv6 。然而 Android 设备不支持 DHCPv6,更别说还有其他缺点
    junkman
        33
    junkman  
       2020-04-17 20:03:56 +08:00
    > 无状态地址配置将不可用

    具体是?请问这方面看哪里的资料比较好。

    > 更别说还有其他缺点

    比如?

    感谢大侠解答!
    raysonx
        34
    raysonx  
    OP
       2020-04-17 20:46:30 +08:00
    @junkman 其他缺点还有如:上游路由器重新拨号发生前缀变更后,DHCPv6 下发的地址不会及时更新(除非地址租约到期)。我觉得如果要系统性地了解 IPv6 的话还是要读一下计算机网络相关的书籍。不过说实在的绝大多数人对 IPv4 也是一知半解,只不过网上能查到的资料相对多一些已。
    LodonBoy10086
        35
    LodonBoy10086  
       2023-07-10 23:33:49 +08:00
    用 ipv6 一年了,才搞懂一些设置。
    ```
    在 ZXHN F653GV9 光猫中:网络》 LAN 侧地址配置 》 IPv6 配置》 IPv6 前缀管理》输入前缀 fc02:3333:9999:: 输入前缀长度 48~64 》确认》查看下方前缀栏回显:fc02:3333:9999:: LAN (广域网链接) Static
    ```
    LodonBoy10086
        36
    LodonBoy10086  
       2023-07-10 23:36:10 +08:00
    只对内网提供的服务,应该只用 ULA 。
    另外问下,光猫防火墙 Ipv6Spi 是什么原理。v4 那边启用的话会变成 NAT3 。v6 这边呢 也会变成 NAT 么。
    raysonx
        37
    raysonx  
    OP
       2023-07-11 00:17:34 +08:00
    @LodonBoy10086 大概是防火墙。光猫因为型号太多,实现上也是个黑盒,具体设置方式完全无法回答。我只能回答 OpenWRT ,RouterOS 、VyOS 、纯 Linux 软路由这些的设置。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4870 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:41 PVG 17:41 LAX 01:41 JFK 04:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86