简说IPv6
上QQ阅读APP看书,第一时间看更新

3.3 IPv6协议栈详解

3.3.1 ICMPv6

ICMPv6(Internet Control Management Protocol Version 6,互联网控制信息协议版本六)是为了与IPv6配套使用而开发的互联网控制信息协议。与IPv4一样,IPv6也需要使用ICMP,旧版本的ICMP不能满足IPv6的全部要求,因此开发了新版本的ICMP,称为ICMPv6。

ICMPv6是IP协议中重要的组成部分,通过传输IPv6包的错误和信息,可以实现差错报告、网络诊断、邻节点发现和多播实现等功能。在IPv6网络中,ICMPv6实现了IPv4中ICMP、ARP和IGMP的功能。

ICMPv6的协议号被IANA定义为58。

ICMPv6消息有如下几种类型。


·目的不可达消息。在数据包无法传输至目的地址时,发生传输异常的路由或主机需要通知源节点,数据包无法送达。

·数据包过大消息。数据包在传递过程中,数据包的大小超过了链路的MTU值,路由器会向源节点发送此消息。此消息也被用于链路MTU发现协议。此消息代码值默认为0。

·超时消息。ICMPv6的超时消息分为如表3-1所示的两类。

表3-1 超时消息分类及描述

·参数问题消息。当发现IPv6包头及扩展包头的参数有问题时,将发送此消息。


Echo请求和响应是最有名的ICMP消息,也就是我们常用的Ping功能。Echo请求的类型值为128,Echo回应的类型值为129,Code值均为0。差错报文的报文类型是从0到127,信息报文的类型是从128到255。

1.Path MTU

IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式汇中数据字段的最大传输长度,即MTU。IP包数据包的总长度一定不能超过MTU,如果超过就要分段传送。Path MTU是数据链路层中的最小MTU值——以最小MTU为准。

对比IPv6和IPv4的报头后可以看到,IPv6的基本报头中没有分片的信息字段,但是在IPv4中依旧存在分片。只不过此时的分片规则要修改一下。

在IPv4中,数据包在传输过程中不管是哪台设备,只要超出了出口的MTU,就会发生分片。发生分片的设备可能是源数据包设备,也可能是中间设备。数据包到达目的地后由目的设备进行重组。

在IPv6的数据传送过程中,如果超过中间设备的出口MTU,中间设备不会进行分片,而且丢包并朝源数据包设备发送一个ICMPv6的差错信息,告知源数据包设备这样的数据包的MTU过大。因此,在IPv6中,只有源数据包设备进行数据包分片,利用的是IPv6的扩展报头(分段报头),中间设备不能进行分片。在IPv6中有探测单向路径中最小MTU的能力,即PMTU机制。

2.DHCPv6/DHCPv6+PD

DHCPv6是一个基于IPv6网络,给IPv6主机分配IP地址、IP前缀和/或其他配置的网络协议。IPv6主机可以使用无状态地址自动配置(SLAAC)或DHCPv6的方式来获取IP地址。DHCP应用在需要集中管理主机的站点,而无状态地址自动配置不需要集中管理,因此更多地应用在典型家庭网络中。

使用无状态地址自动配置的IPv6主机可能需要除了IP地址以外的其他信息。DHCPv6可被用来获取这样的信息,哪怕这些信息对于配置IP地址毫无用处。配置DNS服务器无须使用DHCPv6,它们可以使用无状态地址自动配置所需的邻居发现协议进行配置。

IPv6协议拥有巨大的地址空间,但长达128b的IPv6地址要求高效合理地进行分配使用。IPv6无状态地址自动配置方式是目前广泛采用的IPv6地址自动配置方式。只要主机相邻路由器开启IPv6路由通告功能,即可以根据通告报文内的前缀信息自动配置本机地址。

由于无状态地址自动配置不记录所连接的IPv6主机的具体地址信息,因此可管理性较差。在无状态地址自动配置中不能使IPv6主机获取DNS服务器的IPv6地址等配置信息,在可用性上有一定局限性。因为没有具体的规范说明如何向路由器自动分配IPv6前缀,所以ISP在部署IPv6网络时,只能采用手动配置的方法为路由交换设备配置IPv6地址。

DHCPv6技术的出现解决了这一问题。它是一种有状态地址自动配置协议。在配置过程中,DHCPv6服务器会分配一个完整的IPv6地址及DNS地址等信息给主机,可能在这过程中通过DHCPv6中继转发DHCPv6报文,最终服务器将已分配的IPv6地址和客户端进行绑定,即可增强网络的可管理性。

相比其他IPv6地址分配方式,DHCPv6具有以下优点:


·便于管理,可以更好地控制分配IPv6地址,不仅可以为IPv6主机分配地址,还可以为特定的IPv6主机分配特定的地址。

·支持为IPv6主机分配IPv6前缀,便于网络的自动配置和管理。

·除了可以给IPv6主机分配IPv6地址/前缀外,还可以分配DNS地址等网络配置参数。

3.NAT-PT

NAT-PT(Network Address Translator-Protocol Translator)是最常用的协议转换技术。它是一种带有协议转换器的网络地址转换器,能够使得IPv6和纯IPv4实现相互通信。

NAT-PT分为两种模式:静态和动态。

1)静态模式

静态模式指的是IPv6地址和IPv4地址一对一的映射关系。IPv6网络内的设备要访问IPv4网络内的设备,都必须在NAT-PT设备中做好配置。每一个IPv4地址在NAT-PT设备中都被映射成一个NAT-PT前缀的IPv6地址。

2)动态模式

动态模式也是一种一对一的模式,但是使用一个IPv4地址池。池中的源IPv4地址数量决定了并发的IPv6到IPv4转换的最大数目。在IPv6网络中IPv6单协议网络节点动态地把预定义的NAT-PT前缀增加到目的IPv4地址。这种模式需要一个IPv4地址池来执行动态的地址转换,动态NAT-PT模式和IPv4中的动态NAT类似。