已经不存在需要解决的地址短缺问题了
IPv4大约43亿个地址,曾经紧张到迫使整个互联网依赖私有IP和NAT才能维持运转。IPv6的地址空间大到原则上地球上每一台设备都能拥有自己的全球可达地址,而且还绰绰有余好几倍。地址类型体系存在的意义,不是为了配给稀缺资源,而是为了按用途整理这几乎无限的供给。
认清地址类型能让排查故障更快
一旦你能一眼认出前缀的含义——fe80::永远只在本地有效,fc00::或fd00::是内部专用,2000::可全球路由——排查连接问题的速度就会快很多。如果本该出现全球地址的地方却只看到链路本地地址,立刻就能判断这台设备根本没能从网络正确获取到地址。
与IPv4术语的对照
把IPv4和IPv6的术语对应起来会更好理解:全球单播相当于公网IP,唯一本地相当于私有IP,链路本地的地位接近169.254.x.x的自动配置地址,环回对应127.0.0.1。IPv6没有广播,由组播取代。不过IPv6中一台设备同时拥有多个地址是常态,最好放弃“一台设备一个IP”的概念,以免混淆。
查看和配置时常见的误解
如果只看到fe80::开头的地址,可能是没有收到路由器的通告;但如果线路本身不提供IPv6,这反而是正常状态。唯一本地地址虽然不会被外部直接访问,但不能代替防火墙。临时地址会经常变化,对外提供服务时需要另外配置固定地址。即使使用IPv6,访问限制也应在路由器或防火墙上明确设置。
常见问题
用IPv6还需要私有IP地址吗?
严格来说不是必须的。IPv6的地址空间足够大,可以直接分配全球单播地址而无需NAT,但对于不希望被互联网直接访问的内部专用通信,唯一本地地址(ULA)仍然有用。只是它不像IPv4的私有地址那样是必不可少的组成部分。
能用链路本地地址访问互联网吗?
不能。链路本地地址被设计为只在单一本地网络段内有效,不会被路由器转发到外部,因此互联网通信始终使用的是全球单播地址。
fd00::开头的地址和fc00::有什么区别?
在唯一本地地址范围fc00::/7中,目前实际使用的是本地自行分配的fd00::/8,而fc00::/8预留给将来。fd00::之后的40位随机生成,以降低与其他网络冲突的概率。
在哪里可以看到自己设备的IPv6地址?
Windows可以在命令提示符中使用ipconfig,macOS和Linux可以使用ifconfig或ip address,网络设置详情页也会显示。外部看到的地址,还可以用IP查询网站查看。
地址开头的2000和2400有什么不同?
它们都在全球单播范围(2000::/3)内,只是区域注册机构或运营商分到的地址块不同。开头的数字本身不代表安全性或质量高低,只是判断地址来源的一个线索。