IPv6地址:
IPv6地址的长度为128bit。一般用冒号分割为8段,每一段16bit,每一段内用十六进制表示。IPv6地址中的字母大小写不敏感,例如A等同于a。
IPv6地址格式:
- 首选格式
- 冒号分割为8段,每一段16bit,每一段内用十六进制表示。
- 用“IPv6地址/掩码长度”的方式来表示。
- 例如:2001:0DB8:0000:0001:0000:0000:0000:45ff/64。
- 压缩格式
- 每段前导0可以省略,但是如果该段为全0,则至少保留一个“0”字符;拖尾的0不能被省略。
- 一个或多个连续的段为全0时,可用“::”表示,整个IPv6地址缩写中只允许有一个“::”。
- 例如:2001:DB8:0:1::45ff/64。
- 内嵌IPv4地址的格式
- 地址的前96bit为IPv6地址格式,后32bit为IPv4地址格式。
- IPv6部分可采用首选或压缩格式,IPv4部分采用点分十进制格式。
- 例如:0:0:0:0:0:0:166.168.1.2/64。
IPv6地址结构:
一个IPv6地址可以分为如下两部分:
- 网络前缀:nbit,相当于IPv4地址中的网络ID。
- 接口标识:(128-n)bit,相当于IPv4地址中的主机ID。
IPv6地址前缀:
IETF对IPv6地址类型进行了精细划分,不同类型的IPv6地址被赋予了不同的前缀,且受地址分配机构的严格管理。
从 IANA 或RIR 获取一个全球单播地址前缀,这个前缀通常由 ISP 提供给其客户(个人或者公司),客户再划分子网前缀给用户使用。
IPv6地址空间:
IPv6地址接口标识:
目前有三种方式可以产生IPv6接口ID:
1.IEEE EUI-64规范
接口ID的典型长度是64位,IEEE EUI-64规范给出了一个由48位MAC地址自动生成64位Interface ID的方法。具体的转换算法为:
2.设备随机生成
设备采用随机生成的方法产生一个接口ID,目前Windows操作系统使用该方式。
方法:通过RFC4193定义的一个进程,使用伪随机算法生成本地分配的全局ID。
注:所有站点都需使用相同的算法来生产全局ID可确保最大程度的唯一性。
算法简单实现:
- 获得64bit NTP格式的当前时间
- 获得运行该算法系统的EUI-64标识符,若没有EUI-64标识符就使用合适的唯一标识符(对节点具有本地意义,如:系统序列号)
- 将当前时间和系统特定标识符组合,创建密钥
- 按照[FIPS,SHA]规定计算密钥的SHA-1的摘要,结果值为160bit
- 使用最低阶40bit作为全局ID
- 将FC00::/7(L比特置1)和40bit全局ID组合在一起,即为本地ipv6地址前缀
3.手动配置
人为指定接口ID来实现