IPv6地址包含128位,采用十六进制表示法表示。也就是说,IPv6地址可能包含以下“数位”:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f
IPv6地址常被组织为8组,每组包含4个十六进制数字,称为半字节,其格式如下所示:
2001:0db8:3dab:0001:0000:0000:0000:0072
可以用下面的方法进一步简化IPv6地址:
● 删除半字节中的所有前导0。例如,可以将0db8写作db8,0072写作72,0000写作0等。
● 将任意的0000半字节序列写作一对冒号(::)。例如,可以将0000:0000:0000缩写为一对冒号。但是,为避免模糊性,在一个IPv6地址中只能应用此规则一次。
因此,我们能够用精简许多的形式重写前面的地址:
2001:db8:3dab:1::72
与IPv4类似,IPv6地址包含两个部分:主机和网络地址。IPv6地址的主机部分称为“接口标识符”。在IPv6中,通常以前缀表示法指定子网掩码(如/48)。
例如,假设IPv6地址2001:db8:3dab:1::72的网络前缀为/64。也就是说,该IPv6地址的网络部分包括该地址的前64位。在本例中,网络前缀为2001:db8:3dab:1。接口标识符包括后64位,由十六进制数字72表示。
IPv6地址分为几类。地址格式有三种:
● 单播 单播地址与一个网络适配器关联。
● 任播 任播地址可同时分配给多个主机。可用于负载平衡和冗余。任播地址按照与单播地址相同的方式进行组织。
● 多播 多播地址用于同时向多个目的地发送消息。
有了这种多样的地址格式,就不再需要IPv4风格的广播地址。如果想发送一个消息到多个系统,可使用IPv6多播地址。
IPv6地址也被组织成几个不同的段,如表1所示。IPv4中的默认路由(0.0.0.0/0)在IPv6中显示为::/0。
表1 IPv6的地址类型
有必要解释一下链接本地地址段。IPv6网络中的每个接口都被自动配置一个链接本地地址。这些地址是不可路由的,因为这种通信被局限在本地网络段。各种IPv6操作中都需要链接本地地址。
即使还没有在RHEL 7服务器中配置IPv6,每个网络接口也会被自动分配一个链接本地地址,如下面的输出所示:
# ip addr show eth0 2: eth0: <BROADCAST, MULTICAST, UP, LOWER_UP> mtu 1500 qdisc pfifo_fast ↲ state UP qlen 1000 link/ether 52:54:00:85:61:c0 brd ff:ff:ff:ff:ff:ff inet 192.168.122.50/24 brd 192.168.122.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe85:61c0/64 scope link valid_lft forever preferred_lft forever
为识别链接本地地址,可寻找以fe80开头的地址。注意“scope link”条目。可以看到,接口eth0具有如下IPv6 link-local地址:fe80::5054:ff:fe85:61c0/64。