21 IPv6
21.1 IPv6地址
IPv6地址总长度为128位,分为8组,每组4个16进制。
举例:FC00:0000:130F:0000:0000:09C0:876A:130B
简写规则:
- 每组的前导0都可以省略
- 包含多个连续全0组时,可用::代替,只能用一次
简写之后:FC00:0000:130F:0000:0000:09C0:876A:130B
21.1.1 地址结构
一个IPv6分为两部分:
-
网路前缀
相当于IPv4地址中网络位。
-
接口标识
128-n位,如果网络前缀的前3位不是000,则接口标识必须为64位。
可由三种方法生成:
-
手工配置
-
系统通过软件自动生成
-
IEEE EUI-64规范生成
将接口的MAC地址转换为IPv6接口标识。
MAC地址的前24位是公司标识,后24位为厂家自定义的扩展标识,高位的第七位为0,代表全球唯一,转换规则是将FFFE插入MAC地址的公司标识和扩展标识符之间,将第七位改为1。举例:MAC地址:000E-0C82-C4D4;转换后:020E:0CFF:FE82:C4D4。
-
21.1.2 地址分类
-
单播地址
- 环回地址,::1/128,与127.0.0.1作用相同,用于设备给自己发送报文。
- 全球单播地址,高3位是001,相当于IPv4的公网地址
- 链路本地地址,高10位为1111111010,即FE80::/10。在节点启动IPv6协议栈时,每个节点自动配置一个链路本地地址,同一网段中可直接通信,但不会被路由设备转发。
- 唯一本地地址:高10位为1111110,即FC00::/7。相当于IPv4的私网地址
-
组播地址
高位为11111111,即FF00::/8
-
任意播
将数据包发给组内离目标最近的一个节点。
和单播使用相同的地址空间,不能作为源地址,主要用于移动通信。
21.2 ICMPv6
协议号为58,错误报文类型可分为下列4种:
目的不可达(类型值(Type):1)
数据包无法传输至目的地址,定了8种code:
数据包过大(类型值(Type):2)
数据包的大小超过了链路的MTU值,此消息也被用于链路MTU发现协议,默认代码为0。
超时消息(类型值(Type):3)
超时消息分为两类:
参数问题消息(类型值(Type):4)
发现IPv6包头及扩展包头的参数有问题,目前共定义了4种code:
信息报文类型分为以下两种:
- 回送请求报文:回送请求报文用于发送到目标节点,以使目标节点立即发回一个回送应答报文。回送请求报文的Type字段值为128,Code字段的值为0。
- 回送应答报文:当收到一个回送请求报文时,ICMPv6会用回送应答报文响应。回送应答报文的Type字段的值为129,Code字段的值为0。
21.3 IPv6过渡技术
IPv6 over IPv4隧道
- 手动隧道
- GRE隧道
- 自动隧道