IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议。其地址数量号称可以为全世界的每一粒沙子编上一个地址
1. ipv6地址表示方法
IPv6的地址长度为128位,是IPv4地址长度的4倍。于是IPv4点分十进制格式不再适用,采用十六进制表示。IPv6有3种表示方法。
1)冒分十六进制表示法
格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16bit,以十六进制表示,例如:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
这种表示法中,每个X的前导0是可以省略的,例如:
2001:0DB8:0000:0023:0008:0800:200C:417A -> 2001:DB8:0:23:8:800:200C:417A
2)0位压缩表示法
在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:
FF01:0:0:0:0:0:0:1101 → FF01::1101
0:0:0:0:0:0:0:1 → ::1
0:0:0:0:0:0:0:0 → ::
3)内嵌IPv4地址表示法
为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d
前96bit采用冒分十六进制表示,而最后32bit地址则使用IPv4的点分十进制表示,例如::192.168.0.1与::FFFF:192.168.0.1就是两个典型的例子,
注意在前96b中,压缩0位的方法依旧适用
2. Linux/windows中设置的IPv6地址有两种类型
1)linux中:一种是Scope:Global,另一种为Scope:Link
前者是通过手工或者自动配置,获取的地址;后者是由MAC地址通过一定的格式转换出来的全球唯一的本地链路地址。
2)windows中,一种是IPv6 地址(也可以当作Scope:Global),另一种为本地链接 IPv6 地址(也可以看作Scope:Link)
前者是通过手工或者自动配置,获取的地址;后者是由MAC地址通过一定的格式转换出来的全球唯一的本地链路地址。
3. ipv4和ipv6的回环地址
ipv4:127.0.0.1
ipv6:0:0:0:0:0:0:0:1(简写:::1)
4. IPv6地址组成
IPv4:网络号+主机号/子网掩码,如192.168.1.2/24
IPv6:前缀ID+接口ID/前缀长度,如2001:0000:0000:0000:0011:0000:0000:0010/64
5. IPv6地址生成方式
IPv4:手工指定、dhcp分配
IPv6:手工指定、自动配置(dhcp分配、自动生成)
6. 查看主机是否开启ipv6
一台主机启动后,每一块网卡都会自动生成一个fe80打头的 链路本地地址。
linux机器:ip -6 addr | grep inet6,如果有看到fe80则表示ipv6是开启的
windows机器:ipconfig查看是否存在 “本地链路地址”,存在则开启,windows默认开启
注意:
1)iPv6的地址是可以简写的!每项数字前导的0可以省略。
例1:如下面这个地址:
2001:0DB8:02de:0000:0000:0000:0000:0e13
省略变成:
2001:DB8:2de:0:0:0:0:e13
更进一步的,如果有一组或连续几组都是0,那么可以简写成“::”,也就是:
2001:DB8:2de::e13
2)一个IPv6地址,只能有一个“::”
例2:下面这四个地址,如果所有0全都缩写,会变成什么样?
2001:0000:0000:0000:0000:25de:0000:cade
2001:0000:0000:0000:25de:0000:0000:cade
2001:0000:0000:25de:0000:0000:0000:cade
2001:0000:25de:0000:0000:0000:0000:cade
是的,都是2001::25de::cade,冲突了。所以,这个地址是非法的,不允许存在的。