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

请教: ipv6 是不是也有公网、内网地址之分?

  •  
  •   jingrs489 · 342 天前 · 4045 次点击
    这是一个创建于 342 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直没弄明白,一个设备是不是 ipv6 地址只能有一个?还是可以有一个公网 ip ,一个内网 ip ? 有没有什么文章能简单介绍 ipv6 相关入门知识?多谢

    15 条回复    2023-12-26 01:17:27 +08:00
    codej
        1
    codej  
       342 天前 via Android
    ipv4 是中文牌子,
    ipv6 是英文牌子,
    中文必须用中文,英文必须用英文,挂域名也不行
    zerotier 这种平台可以。
    内网外网概念不变
    Remember
        2
    Remember  
       342 天前   ❤️ 2
    分的,但 ipv6 的内网地址一般不怎么用。一个设备可以不止一个 ipv6 地址,甚至有可能直接是一个/64 地址段。

    不但可以同时绑定 ipv6 公网 ip 和 ipv6 内网 ip ,还可以同时绑定多个 ipv6 公网+多个 ipv6 内网。

    以 windows 为例,如果你路由器是 openwrt ,开了 IPv6 ULA , 会默认分配一个 ipv6 的内网地址,一个相对固定的 ipv6 公网地址,另外还有若干个临时的 ipv6 公网地址。
    msg7086
        3
    msg7086  
       342 天前
    IPv6 和 IPv4 一样,一台设备可以绑很多个,地址也分公网地址和内网地址。
    维基百科搜索 IPv6 看「 IPv6 地址的分类」和「特殊地址」。
    keegan
        4
    keegan  
       342 天前
    IPV6 内网访问实测还需要加上网卡,比如我要访问我的 nas ,网卡是 en0 ,就需要输入`fe80::eed6:8aff:feae:****%en0`
    Actrace
        5
    Actrace  
       342 天前
    maybeonly
        6
    maybeonly  
       342 天前   ❤️ 2
    @keegan fe80::开头的 ipv6 地址不是通常说的“内网地址”,而是“本地链路地址”,对应 ipv4 的 169.254/16
    地位等同于 ipv4 的 192.168/16 (以及其他两段)的地址的 ipv6 是 fc00::/7 ,但是在分配的时候有一些额外的“要求”(并且实践的时候时不时被无视)
    区别是,fe80::的地址不能被路由转发(尽管可以做为下一跳地址)
    临时地址也不一定是内网地址

    关于 ipv6 特殊地址 ref:
    https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml
    https://zh.wikipedia.org/wiki/IPv6#%E7%89%B9%E6%AE%8A%E4%BD%8D%E5%9D%80
    beyondstars
        7
    beyondstars  
       342 天前
    请参阅:

    - RFC4291 https://datatracker.ietf.org/doc/html/rfc4291 ( IP Version 6 Addressing Architecture)
    - RFC 4193 https://datatracker.ietf.org/doc/html/rfc4193 (Unique Local IPv6 Unicast Addresses)
    - RFC3587 https://datatracker.ietf.org/doc/html/rfc3587 (IPv6 Global Unicast Address Format)
    - IPv6 组播地址 https://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml

    大体上来说,IPv6 地址分为单播地址、组播地址、任播地址,其中任播地址也是从单播地址空间里面分配的,单播地址细分为回环地址 (loopback), 全局单播地址 (global unicast) ( 2000::/3 前缀),IPv4 映射的 IPv6 地址(::ffff:<32bit ipv4 addr>), Link Local address (大部分是 fe80::/64 前缀),Unique Local Address (ULA) 一般用作本地、内网或者私有网络通信,ULA 一般是 fd00::/8 前缀。

    一个“设备”(不管它是物理的 NIC 、 或者虚拟网卡也好)可以有多个 IPv6 地址。
    beyondstars
        8
    beyondstars  
       342 天前
    事实上一个“设备”可以有多少个 IPv4/IPv6 地址几乎完全取决于软件(操作系统),跟硬件关系不大,操作系统是怎么把 IP 地址实现/分配到“设备”上的?在操作系统看来,每个链路层网络设备一般都有一个链路层地址(对于以太网设备来说是 MAC 地址),当操作系统收到当前来自设备所处的(一个或多个)以太网段( Ethernet segment) 的 ARP 或者 NDP 查询时,它就回复,比如一个 ARP 查询是 "Who is 192.168.0.1, tell 192.168.0.101", 然后操作系统会回复 "192.168.0.101 is 82:bf:23:61:a2:95",这样 192.168.0.101 这个地址就和 82:bf:23:61:a2:95 这个网卡关联了。
    joshu
        9
    joshu  
       342 天前
    ipv4 10/8 、172.16/12 、192.168/16 -> ipv6 fc00::/7 ,就是通常说的,内网可安全使用、外网不可使用的地址段
    ipv4 169.254/16 -> fe80::/10 ,只在网卡接口两端有效的地址,使用时一般需要指明网卡名称,在同机器不同网卡之间可同时使用同一地址
    beyondstars
        10
    beyondstars  
       342 天前
    如果层主对 IPv6 地址的实现方面感兴趣,还可以趁热打铁进一步了解下:

    - NDP https://datatracker.ietf.org/doc/html/rfc4861
    - DHCPv6 https://datatracker.ietf.org/doc/html/rfc8415
    - SLAAC https://datatracker.ietf.org/doc/html/rfc4862
    - IPv6 Prefix Delegation https://www.rfc-editor.org/rfc/rfc3633

    等资讯。
    beyondstars
        11
    beyondstars  
       342 天前
    题外话:IPv6 的其中一个愿景就是设计一个足够大、足够充裕的地址空间,使得设备与设备之间都可以点对点地直接互联(因为在这个充裕的地址空间里面大家都能分配到 IP 地址),所以普遍来说 ULA (私有地址)相对而言比较少见,大多数设备要么就是只有 fe 开头的 link local 地址,要么就是再加上多个 2 开头的 global unicast 地址(公网地址)。

    因为 2000::/3 global unicast 地址是全球唯一的,所以理论上你的电脑可以用这个地址跟全球 IPv6 互联网的任何一台计算机双向通信(不管是谁主动发起连接,只需知道对方的 IPv6 地址),所以路由器/局域网网关设备出于安全起见一般都默认启动 IPv6 stateful firewall (只准局域网内的设备主动向外发起连接,不准广域网设备主动与局域网内的设备发起连接),这时地址虽然是公网地址,但从实际效果上看“相当于”内网地址。好处是阻挡了弱密码探测、爆破登录等安全风险,不过也不是绝对的安全。
    cnbatch
        12
    cnbatch  
       342 天前
    如果你家开通了两家或三家运营商的宽带,都启用 IPv6 ,同时路由器支持双 WAN 接入,那么网内各设备就都可以拥有大量公网 IP ,V 站自己就有现成的: /t/998873
    jingrs489
        13
    jingrs489  
    OP
       341 天前
    @codej
    @Remember
    @keegan
    @Actrace
    @maybeonly
    @beyondstars
    @joshu
    多谢各位指教!
    chenda3d
        14
    chenda3d  
       341 天前
    我的理解是猫之下的设备都能分到一个 ipv6 ,windows 系统自己会开内网 ipv6 fe80::这种,内网的设备还会产生一个临时的 ipv6 公网地址,也是 windows 系统产生,这个可以通过 cmd 关闭,这样的话你的设备就会用,猫下发的 ipv6 公网提供外网服务了。需要猫的 ipv6 防火墙做配置,一般运营商关闭了猫进来的 80 ,21 这些端口,提供服务需要开放其他端口
    keegan
        15
    keegan  
       341 天前
    @maybeonly 感谢科普!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2936 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:41 · PVG 20:41 · LAX 04:41 · JFK 07:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.