1. IPv6特性
支持即插即用:
-
- 路由器发现(Router Discovery):当一个节点连接到一个IPv6的链路上时,它能够发现本地的路由器,而不必借助动态主机配置协议(DHCP)。
- 前缀发现(Prefix):当一个节点连接到一个IPv6的链路上时,它能够发现分配给该链路的前缀。
- 参数发现(Parameter Discovery):节点能够发现它所相连的链路的参数,例如链路跳数限制等。
IPv6的无状态自动配置,即SLAAC
主机可以通过RA(Router-Advertisement)消息ICMP type134中携带的前缀得到地址的前缀部分,同时通过该接口自动生成接口ID部分,从而得到一个完整的128位的IPV6地址,该消息默认情况下每200S发送一次。当然主机(或路由器)也可以主动发送RS(Router Solicit)消息ICMP Type=133来主动请求该前缀。
2. IPv6的无状态自动配置,即SLAAC过程
首先,为配置接口,主机需要前缀信息(类似于IPV4地址的网络部分),因此它会发送一条路由器请求(RouterSolicitation,RS)消息。该消息以组播方式发送给所有路由器。这实际上是一种ICMP消息,并用编号进行标识。RS消息的ICMP类型为133。
路由器使用一条路由器通告(Router-Advertisement,RA)消息进行应答,其中包含请求的前级信息。RA消息也是组播分组,被发送到表示所有节点的组播地址,其ICMP类型为134。RA消息是定期发送的,但主机发送RS消息后,可立即得到响应,因此无需等待下一条定期发送的RA消息,就能获得所需的信息。
发现链路上使用的前缀:发送周期RA
产生一个接口ID:二层寻址(基于MAC的EUI-64ID)
验证所产生IPv6地址的唯一性:重复地址检测(DAD)
图15-2说明了这两个步骤。
要在路由器上启用IPV6,必须使用全局配置命令ipv6unicast-routing:
Corp ( config ) #ipv6 unicast-routing
默认情况下,转发IPv6数据流的功能被禁用,因此需要使用上述命令启用它。默认不会在任何接口上启用IPv6,因此必须进入每个接口并启用这项功能。
为此,可使用多种方式,但最简单的方式是,使用命令ipv6 address<ipv6prefix>/<prefix-length> [eui-64]给接口配置一个地址。
下面是一个例子:
Corp(config-if)#ipv6 address 2001:dbB:3c4d:1:0260:d6FF.FE73:1987/64
可指定一个完整的128位IPV6全局地址,也可使用eui-64选项。eui-64格式允许设备对其MAC地址进行转换,以生成接口ID,如下所示:
Corp(config-if)#ipv6 address 2001:db8:3c4d:1: :/64 eui-64
为在路由器接口上启用IPV6,也可不输入IPV6地址,而让其自动使用链路本地地址。
如果只有链路本地地址,则只能在本地子网中通信。
要配置路由器接口,使其只使用链路本地址,可使用按口配置命令ipv6enable:
Corp(config-if)#ipv6 enable
过程说明:
R3
R3#debug ipv6 nd
R3(config)#ipv6 unicast-routing
R3(config)#int e0/1
R3(config-if)#ipv6 add 2034::3/64
R3(config-if)#no sh
地址解析使用邻居发现协议(NDP)。这个过程是使用被称为请求节点地址(solicited node address)的组播地址完成的,每台主机连接到网络时都会加入这个组播组。为生成请求节点地址,在FF02:0:0:0:0:1:FF/104末尾加上目标主机的IPV6地址的最后24位。查询请求节点地址时,相应的主机将返回其第2层地址。网络设备也以类似的方式发现和跟踪相邻设备。前面介绍RA和RS消息时说过,它们使用组播来请求和发送地址信息,这也是ICMPv6的邻居发现功能。
在IPV4中,主机使用IGMP协议来告诉本地路由器,它要加入特定的组播组并接收发送给该组播组的数据流。这种IGMP功能已被ICMPv6取代,并被重命名为组播侦听者发现
路由器使用NDP获得其自己的地址时,以组播(::)方式发送领居请求NS(将IPV6非指定地址(::)用做分组的SA请求的一个源地址),发送到被请求节点组播地址ff02::1:ff00:2010【具有链路本地范围如:下面报文所体现的目的地址ff02::16(所有支持MLDv2的路由器),ff02::1:ffXX:XXXX(被请求节点地址,FF02:0:0:0:0:1:FF/104末尾加上目标主机的IPV6地址的最后24位)】;
通过与二层寻址,产生的链路本地地址,再以组播(ff02::1)方式向节点发送一条领居公告NA;
以非指定地址(::)作源向被请求节点的组播地址fff02::1:ff00:3发送领居请求NS查找领居主机;
链路本地地址发送组播 (ff02::1),消息类型路由器公告RA;
全局单播地址2034::3发送组播 (ff02::1),消息类型领居公告NA;