一直没弄明白,一个设备是不是 ipv6 地址只能有一个?还是可以有一个公网 ip ,一个内网 ip ? 有没有什么文章能简单介绍 ipv6 相关入门知识?多谢
1
codej 2023-12-24 21:52:57 +08:00 via Android
ipv4 是中文牌子,
ipv6 是英文牌子, 中文必须用中文,英文必须用英文,挂域名也不行 zerotier 这种平台可以。 内网外网概念不变 |
2
Remember 2023-12-24 21:58:29 +08:00 2
分的,但 ipv6 的内网地址一般不怎么用。一个设备可以不止一个 ipv6 地址,甚至有可能直接是一个/64 地址段。
不但可以同时绑定 ipv6 公网 ip 和 ipv6 内网 ip ,还可以同时绑定多个 ipv6 公网+多个 ipv6 内网。 以 windows 为例,如果你路由器是 openwrt ,开了 IPv6 ULA , 会默认分配一个 ipv6 的内网地址,一个相对固定的 ipv6 公网地址,另外还有若干个临时的 ipv6 公网地址。 |
3
msg7086 2023-12-24 22:33:38 +08:00
IPv6 和 IPv4 一样,一台设备可以绑很多个,地址也分公网地址和内网地址。
维基百科搜索 IPv6 看「 IPv6 地址的分类」和「特殊地址」。 |
4
keegan 2023-12-25 03:30:23 +08:00
IPV6 内网访问实测还需要加上网卡,比如我要访问我的 nas ,网卡是 en0 ,就需要输入`fe80::eed6:8aff:feae:****%en0`
|
5
Actrace 2023-12-25 08:14:03 +08:00
|
6
maybeonly 2023-12-25 08:46:01 +08:00 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 |
7
beyondstars 2023-12-25 10:59:02 +08:00
请参阅:
- 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 地址。 |
8
beyondstars 2023-12-25 11:05:04 +08:00
事实上一个“设备”可以有多少个 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 这个网卡关联了。
|
9
joshu 2023-12-25 11:18:27 +08:00
ipv4 10/8 、172.16/12 、192.168/16 -> ipv6 fc00::/7 ,就是通常说的,内网可安全使用、外网不可使用的地址段
ipv4 169.254/16 -> fe80::/10 ,只在网卡接口两端有效的地址,使用时一般需要指明网卡名称,在同机器不同网卡之间可同时使用同一地址 |
10
beyondstars 2023-12-25 11:19:23 +08:00
如果层主对 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 等资讯。 |
11
beyondstars 2023-12-25 11:57:22 +08:00
题外话:IPv6 的其中一个愿景就是设计一个足够大、足够充裕的地址空间,使得设备与设备之间都可以点对点地直接互联(因为在这个充裕的地址空间里面大家都能分配到 IP 地址),所以普遍来说 ULA (私有地址)相对而言比较少见,大多数设备要么就是只有 fe 开头的 link local 地址,要么就是再加上多个 2 开头的 global unicast 地址(公网地址)。
因为 2000::/3 global unicast 地址是全球唯一的,所以理论上你的电脑可以用这个地址跟全球 IPv6 互联网的任何一台计算机双向通信(不管是谁主动发起连接,只需知道对方的 IPv6 地址),所以路由器/局域网网关设备出于安全起见一般都默认启动 IPv6 stateful firewall (只准局域网内的设备主动向外发起连接,不准广域网设备主动与局域网内的设备发起连接),这时地址虽然是公网地址,但从实际效果上看“相当于”内网地址。好处是阻挡了弱密码探测、爆破登录等安全风险,不过也不是绝对的安全。 |
12
cnbatch 2023-12-25 17:23:04 +08:00
如果你家开通了两家或三家运营商的宽带,都启用 IPv6 ,同时路由器支持双 WAN 接入,那么网内各设备就都可以拥有大量公网 IP ,V 站自己就有现成的: /t/998873
|
13
jingrs489 OP |
14
chenda3d 2023-12-25 22:22:22 +08:00
我的理解是猫之下的设备都能分到一个 ipv6 ,windows 系统自己会开内网 ipv6 fe80::这种,内网的设备还会产生一个临时的 ipv6 公网地址,也是 windows 系统产生,这个可以通过 cmd 关闭,这样的话你的设备就会用,猫下发的 ipv6 公网提供外网服务了。需要猫的 ipv6 防火墙做配置,一般运营商关闭了猫进来的 80 ,21 这些端口,提供服务需要开放其他端口
|