文章

IPv6

IPv6、公网IP、路由器.

IPv6

简介

IP地址分为两种主要版本,IPv4和IPv6(Internet Protocol Version 6, 互联网协议第6版):

  • IPv4
    • 由32位(bit, 比特)二进制数构成
    • 通常以点分十进制数表示,包括四个数字 和 三个,每个数1个字节(8比特),如192.168.1.1
    • 总数:$2^{32} = 4294967296$,即42亿
    • ipv4 地址已耗尽
  • IPv6
    • 由128位二进制数构成
    • 通常以八组冒号分隔的十六进制数表示,每组四个数,每个数4位二进制,每组16 bit, 例如240c:0db8:85a3:0000:0000:xxxx:xxxx:xxxx
    • 总数:$2^{128} = 340282366920938463463374607431768211456$
    • IPv6的地址空间极其庞大,可以实现每人都有公网IP

由于IPv4地址不足,通常人们的IP都是私有IPv4地址。只有私有IPv4情况下能够访问互联网,是因为NAT (Network Address Translation)网络地址转换技术的存在。

IPv6地址足够多,它不需要NAT。可以为每个网络设备分配一个或多个 IPv6公网IP地址,实现真正的万物互联。

IPv6地址分类

IPv6地址分为单播地址、组播地址、任播地址 三种类型。

与IPv4相比,IPv6取消了广播地址类型,以更丰富的组播地址代替,同时增加了任播地址类型。

IPv6单播地址

IPv6单播地址(Unicast Address)标识了一个接口,由于每个接口属于一个节点, 因此每个节点的任何接口上的单播地址都可以标识这个节点。发往单播地址的报文, 由此地址标识的接口接收。

IPv6定义了多种单播地址,目前常用的单播地址有:

  • 未指定地址(Unspecified Address)即 ::::/1280:0:0:0:0:0:0:0/128
  • 回环地址(Loopback Address)即 ::1::1/1280:0:0:0:0:0:0:1/128。 环回与IPv4中的127.0.0.1作用相同,主要用于设备给自己发送报文。
  • 全球单播地址(GUA, Global Unicast Address)即 公网IPv6地址,全球唯一。
  • 链路本地地址(LLA, Link-Local Address)即 本地地址,仅用于表示本地链路。
  • 唯一本地地址(ULA, Unique-Local Address)即 私网地址(私有地址),仅用于同一个站点的地址。
IPv6单播地址地址范围IPv4对应地址
未指定地址::/1280.0.0.0
回环地址::1/128127.0.0.1
全球单播地址2000::/3
3000::/3
6.6.6.6等公网IPv4
链路本地地址fe80::/10169.254.0.0/16
(APIPA, 自动专用IP寻址)
唯一本地地址fc00::/7
实际使用fd00::/8
192.168.1.2等

IPv6组播地址

IPv6组播地址(Multicast Address)与IPv4相同,用来标识一组接口,一般这些接口属于不同的节点。 一个节点可能属于0到多个组播组。发往组播地址的报文被组播地址标识的所有接口接收。 例如组播地址FF02::1表示链路本地范围的所有节点,组播地址FF02::2表示链路本地范围的所有路由器。

IPv6组播地址的前缀是FF00::/8

IPv6任播地址

IPv6任播地址(Anycast Address)标识一组网络接口(通常属于不同的节点)。 发往该目标地址的报文(任播地址的数据包)将发送给其中路由意义上最近的一个网络接口。

IPv6任播地址仅可以被分配给路由设备,不能应用于主机。任播地址不能作为IPv6报文的源地址。

访问IPv6网站

直接使用IPv6地址访问网站,必须给IPv6加上中括号以区别端口号,如:

1
http://[2004::4ef:203d:0:0:e1]:8080
  • 给IPv6地址加中括号,是因为IPv6地址 和 端口号 都是通过冒号分隔的,加中括号来区分它们。
  • 2004::4ef:203d:0:0:e1是缩写后的IPv6,完整为2004:0000:0000:04ef:203d:0000:0000:00e1

参考文献:华为文档

分配IPv6公网地址

自己的电脑想要获得公网IPv6地址:

  • 电脑要允许/支持IPv6
  • 路由器需要开启IPv6
  • 根据情况,光猫路由器 的相关设置可能都需要修改。

Windows系统,查看IPv6公网地址,使用ipconfig命令,示例: Windows系统 IPv6公网地址 Windows系统 IPv6公网地址

Linux系统,查看IPv6公网地址,使用 ip aifconfig 命令,示例: Linux 公网IPv6地址 Linux系统 IPv6公网地址

本文由作者按照 CC BY 4.0 进行授权