IPv6
IPv6、公网IP、路由器.
简介
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)即
::或::/128或0:0:0:0:0:0:0:0/128。 - 回环地址(Loopback Address)即
::1或::1/128或0: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对应地址 |
|---|---|---|
| 未指定地址 | ::/128 | 0.0.0.0 |
| 回环地址 | ::1/128 | 127.0.0.1 |
| 全球单播地址 | 2000::/3 3000::/3 | 6.6.6.6等公网IPv4 |
| 链路本地地址 | fe80::/10 | 169.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公网地址
Linux系统,查看IPv6公网地址,使用 ip a 或 ifconfig 命令,示例:
Linux系统 IPv6公网地址