• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

03 三层技术-IP业务配置指导

目录

08-IPv6基础配置

本章节下载 08-IPv6基础配置  (371.78 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S6800/S6800/Configure/Operation_Manual/H3C_S6800_CG-Release_2407-6W100/03/201312/810770_30005_0.htm

08-IPv6基础配置


1 IPv6基础

1.1  IPv6简介

IPv6(Internet Protocol Version 6,互联网协议版本6)是网络层协议的第二代标准协议,也被称为IPng(IP Next Generation,下一代互联网),它是IETF(Internet Engineering Task Force,互联网工程任务组)设计的一套规范,是IPv4的升级版本。IPv6和IPv4之间最显著的区别为:IP地址的长度从32比特增加到128比特。

1.1.1  IPv6协议特点

1. 简化的报文头格式

通过将IPv4报文头中的某些字段裁减或移入到扩展报文头,减小了IPv6基本报文头的长度。IPv6使用固定长度的基本报文头,从而简化了转发设备对IPv6报文的处理,提高了转发效率。尽管IPv6地址长度是IPv4地址长度的四倍,但IPv6基本报文头的长度只有40字节,为IPv4报文头长度(不包括选项字段)的两倍。

图1-1 IPv4报文头和IPv6基本报文头格式比较

 

2. 充足的地址空间

IPv6的源地址与目的地址长度都是128比特(16字节)。它可以提供超过3.4×1038种可能的地址空间,完全可以满足多层次的地址划分需要,以及公有网络和机构内部私有网络的地址分配。

3. 层次化的地址结构

IPv6的地址空间采用了层次化的地址结构,有利于路由快速查找,同时可以借助路由聚合,有效减少IPv6路由表占用的系统资源。

4. 地址自动配置

为了简化主机配置,IPv6支持有状态地址配置和无状态地址配置:

·     有状态地址配置是指从服务器(如DHCPv6服务器)获取IPv6地址及相关信息。

·     无状态地址配置是指主机根据自己的链路层地址及路由器发布的前缀信息自动配置IPv6地址及相关信息。

同时,主机也可根据自己的链路层地址及默认前缀(FE80::/10)形成链路本地地址,实现与本链路上其他主机的通信。

5. 内置安全性

IPv6将IPsec作为它的标准扩展头,可以提供端到端的安全特性。这一特性也为解决网络安全问题提供了标准,并提高了不同IPv6应用之间的互操作性。

6. 支持QoS

IPv6报文头的流标签(Flow Label)字段实现流量的标识,允许设备对某一流中的报文进行识别并提供特殊处理。

7. 增强的邻居发现机制

IPv6的邻居发现协议是通过一组ICMPv6(Internet Control Message Protocol for IPv6,IPv6的互联网控制报文协议)消息实现的,管理着邻居节点间(即同一链路上的节点)信息的交互。它代替了ARP(Address Resolution Protocol,地址解析协议)、ICMPv4路由器发现和ICMPv4重定向消息,并提供了一系列其他功能。

8. 灵活的扩展报文头

IPv6取消了IPv4报文头中的选项字段,并引入了多种扩展报文头,在提高处理效率的同时还大大增强了IPv6的灵活性,为IP协议提供了良好的扩展能力。IPv4报文头中的选项字段最多只有40字节,而IPv6扩展报文头的大小只受到IPv6报文大小的限制。

1.1.2  IPv6地址介绍

1. IPv6地址表示方式

IPv6地址被表示为以冒号(:)分隔的一连串16比特的十六进制数。每个IPv6地址被分为8组,每组的16比特用4个十六进制数来表示,组和组之间用冒号隔开,比如:2001:0000:130F:0000:0000:09C0:876A:130B。

为了简化IPv6地址的表示,对于IPv6地址中的“0”可以有下面的处理方式:

·     每组中的前导“0”可以省略,即上述地址可写为2001:0:130F:0:0:9C0:876A:130B。

·     如果地址中包含连续两个或多个均为0的组,则可以用双冒号“::”来代替,即上述地址可写为2001:0:130F::9C0:876A:130B。

说明

在一个IPv6地址中只能使用一次双冒号“::”,否则当设备将“::”转变为0以恢复128位地址时,将无法确定“::”所代表的0的个数。

 

IPv6地址由两部分组成:地址前缀与接口标识。其中,地址前缀相当于IPv4地址中的网络号码字段部分,接口标识相当于IPv4地址中的主机号码部分。

地址前缀的表示方式为:IPv6地址/前缀长度。其中,前缀长度是一个十进制数,表示IPv6地址最左边多少位为地址前缀。

2. IPv6的地址分类

IPv6主要有三种类型的地址:单播地址、组播地址和任播地址。

·     单播地址:用来唯一标识一个接口,类似于IPv4的单播地址。发送到单播地址的数据报文将被传送给此地址所标识的接口。

·     组播地址:用来标识一组接口(通常这组接口属于不同的节点),类似于IPv4的组播地址。发送到组播地址的数据报文被传送给此地址所标识的所有接口。

·     任播地址:用来标识一组接口(通常这组接口属于不同的节点)。发送到任播地址的数据报文被传送给此地址所标识的一组接口中距离源节点最近(根据使用的路由协议进行度量)的一个接口。

IPv6中没有广播地址,广播地址的功能通过组播地址来实现。

IPv6地址类型是由地址前面几位(称为格式前缀)来指定的,主要地址类型与格式前缀的对应关系如表1-1所示。

表1-1 地址类型与格式前缀的对应关系

地址类型

格式前缀(二进制)

IPv6前缀标识

单播地址

未指定地址

00...0  (128 bits)

::/128

环回地址

00...1  (128 bits)

::1/128

链路本地地址

1111111010

FE80::/10

全球单播地址

其他形式

-

组播地址

11111111

FF00::/8

任播地址

从单播地址空间中进行分配,使用单播地址的格式

 

3. 单播地址的类型

IPv6单播地址的类型可有多种,包括全球单播地址、链路本地地址等。

·     全球单播地址等同于IPv4公网地址,提供给网络服务提供商。这种类型的地址允许路由前缀的聚合,从而限制了全球路由表项的数量。

·     链路本地地址用于邻居发现协议和无状态自动配置中链路本地上节点之间的通信。使用链路本地地址作为源或目的地址的数据报文不会被转发到其他链路上。

·     环回地址:单播地址0:0:0:0:0:0:0:1(简化表示为::1)称为环回地址,不能分配给任何物理接口。它的作用与在IPv4中的环回地址相同,即节点用来给自己发送IPv6报文。

·     未指定地址:地址“::”称为未指定地址,不能分配给任何节点。在节点获得有效的IPv6地址之前,可在发送的IPv6报文的源地址字段填入该地址,但不能作为IPv6报文中的目的地址。

4. 组播地址

表1-2所示的组播地址,是预留的特殊用途的组播地址。

表1-2 预留的IPv6组播地址列表

地址

应用

FF01::1

表示节点本地范围所有节点的组播地址

FF02::1

表示链路本地范围所有节点的组播地址

FF01::2

表示节点本地范围所有路由器的组播地址

FF02::2

表示链路本地范围所有路由器的组播地址

 

另外,还有一类组播地址:被请求节点(Solicited-Node)地址。该地址主要用于获取同一链路上邻居节点的链路层地址及实现重复地址检测。每一个单播或任播IPv6地址都有一个对应的被请求节点地址。其格式为:

FF02:0:0:0:0:1:FFXX:XXXX

其中,FF02:0:0:0:0:1:FF为104位固定格式;XX:XXXX为单播或任播IPv6地址的后24位。

5. IEEE EUI-64格式的接口标识符

IPv6单播地址中的接口标识符用来标识链路上的一个唯一的接口。目前IPv6单播地址基本上都要求接口标识符为64位。

不同接口的IEEE EUI-64格式的接口标识符的生成方法不同,分别介绍如下:

·     所有IEEE 802接口类型(例如,以太网接口、VLAN接口):IEEE EUI-64格式的接口标识符是从接口的链路层地址(MAC地址)变化而来的。IPv6地址中的接口标识符是64位,而MAC地址是48位,因此需要在MAC地址的中间位置(从高位开始的第24位后)插入十六进制数FFFE(1111111111111110)。为了表示这个从MAC地址得到的接口标识符是全球唯一的,还要将Universal/Local (U/L)位(从高位开始的第7位)设置为“1”。最后得到的这组数就作为EUI-64格式的接口标识符。

图1-2 MAC地址到EUI-64格式接口标识符的转换过程

 

·     Tunnel接口:IEEE EUI-64格式的接口标识符的低32位为Tunnel接口的源IPv4地址,ISATAP隧道的接口标识符的高32位为0000:5EFE,其他隧道的接口标识符的高32位为全0。关于各种隧道的介绍,请参见“三层技术-IP业务配置指导”中的“隧道”。

·     其他接口类型(例如,Serial接口):IEEE EUI-64格式的接口标识符由设备随机生成。

1.1.3  IPv6邻居发现协议介绍

IPv6邻居发现(Neighbor Discovery,ND)协议使用五种类型的ICMPv6消息,实现下面一些功能:地址解析、验证邻居是否可达、重复地址检测、路由器发现/前缀发现、地址自动配置和重定向等功能。

邻居发现协议使用的ICMPv6消息的类型及作用如表1-3所示。

表1-3 邻居发现协议使用的ICMPv6消息类型及作用

ICMPv6消息

类型号

作用

邻居请求消息NS(Neighbor Solicitation)

135

获取邻居的链路层地址

验证邻居是否可达

进行重复地址检测

邻居通告消息NA(Neighbor Advertisement)

136

对NS消息进行响应

节点在链路层变化时主动发送NA消息,向邻居节点通告本节点的变化信息

路由器请求消息RS(Router Solicitation)

133

节点启动后,通过RS消息向路由器发出请求,请求前缀和其他配置信息,用于节点的自动配置

路由器通告消息RARouter Advertisement

134

对RS消息进行响应

在没有抑制RA消息发布的条件下,路由器会周期性地发布RA消息,其中包括前缀信息选项和一些标志位的信息

重定向消息Redirect

137

当满足一定的条件时,缺省网关通过向源主机发送重定向消息,使主机重新选择正确的下一跳地址进行后续报文的发送

 

邻居发现协议提供的主要功能如下:

1. 地址解析

获取同一链路上邻居节点的链路层地址(与IPv4的ARP功能相同),通过邻居请求消息NS和邻居通告消息NA实现。如图1-3所示,节点A要获取节点B的链路层地址。

图1-3 地址解析示意图

 

(1)     节点A以组播方式发送NS消息。NS消息的源地址是节点A的接口IPv6地址,目的地址是节点B的被请求节点组播地址,消息内容中包含了节点A的链路层地址和请求的目标地址。

(2)     节点B收到NS消息后,判断报文的目标地址是否为自己的IPv6地址。如果是,则节点B可以学习到节点A的链路层地址,并以单播方式返回NA消息,其中包含了自己的链路层地址。

(3)     节点A从收到的NA消息中就可获取到节点B的链路层地址。

2. 验证邻居是否可达

在获取到邻居节点的链路层地址后,通过邻居请求消息NS和邻居通告消息NA可以验证邻居节点是否可达。

(1)     节点发送NS消息,其中目的地址是邻居节点的IPv6地址。

(2)     如果收到邻居节点的确认报文,则认为邻居可达;否则,认为邻居不可达。

3. 重复地址检测

当节点获取到一个IPv6地址后,需要使用重复地址检测功能确定该地址是否已被其他节点使用(与IPv4的免费ARP功能相似)。通过NS和NA可以实现重复地址检测,如图1-4所示。

图1-4 重复地址检测示意图

 

(1)     节点A发送NS消息,NS消息的源地址是未指定地址::,目的地址是待检测的IPv6地址对应的被请求节点组播地址,消息内容中包含了待检测的IPv6地址。

(2)     如果节点B已经使用这个IPv6地址,则会返回NA消息。其中包含了自己的IPv6地址。

(3)     节点A收到节点B发来的NA消息,就知道该IPv6地址已被使用。反之,则说明该地址未被使用,节点A就可使用此IPv6地址。

4. 路由器发现/前缀发现及地址无状态自动配置

路由器发现/前缀发现是指节点从收到的RA消息中获取邻居路由器及所在网络的前缀,以及其他配置参数。

地址无状态自动配置是指节点根据路由器发现/前缀发现所获取的信息,自动配置IPv6地址。

路由器发现/前缀发现通过路由器请求消息RS和路由器通告消息RA来实现,具体过程如下:

(1)     节点启动时,通过RS消息向路由器发出请求,请求前缀和其他配置信息,以便用于节点的配置。

(2)     路由器返回RA消息,其中包括前缀信息选项(路由器也会周期性地发布RA消息)。

(3)     节点利用路由器返回的RA消息中的地址前缀及其他配置参数,自动配置接口的IPv6地址及其他信息。

前缀信息选项中不仅包括地址前缀的信息,还包括该地址前缀的首选生命期(preferred lifetime)和有效生命期(valid lifetime)。节点收到周期性发送的RA消息后,会根据该消息更新前缀的首选生命期和有效生命期。

有效生命期:表示前缀有效期。在有效生命期内,通过该前缀自动生成的地址可以正常使用;有效生命期过期后,通过该前缀自动生成的地址变为无效,将被删除。

首选生命期:表示首选通过该前缀无状态自动配置地址的时间。首选生命期过期后,节点通过该前缀自动配置的地址将被废止。节点不能使用被废止的地址建立新的连接,但是仍可以接收目的地址为被废止地址的报文。首选生命期必须小于或等于有效生命期。

5. 重定向功能

当主机启动时,它的路由表中可能只有一条到缺省网关的缺省路由。当满足一定的条件时,缺省网关会向源主机发送ICMPv6重定向消息,通知主机选择更好的下一跳进行后续报文的发送(与IPv4的ICMP重定向消息的功能相同)。

同时满足下列条件时,设备会发送ICMPv6重定向报文:

·     接收和转发数据报文的接口是同一接口;

·     被选择的路由本身没有被ICMPv6重定向报文创建或修改过;

·     被选择的路由不是设备的缺省路由;

·     被转发的IPv6数据报文中不包含路由扩展头。

1.1.4  IPv6 PMTU发现

报文从源端到目的端的传输路径中所经过的链路可能具有不同的MTU。在IPv6中,当报文的长度大于链路的MTU时,报文的分片将在源端进行,从而减轻中间转发设备的处理压力,合理利用网络资源。

PMTU(Path MTU,路径MTU)发现机制的目的就是要找到从源端到目的端的路径上最小的MTU。PMTU的工作过程如图1-5所示。

图1-5 PMTU发现工作过程

 

(1)     源端主机按照自己的MTU对报文进行分片,之后向目的主机发送报文。

(2)     中间转发设备接收到该报文进行转发时,如果发现转发报文的接口支持的MTU值小于报文长度,则会丢弃报文,并给源端返回一个ICMPv6差错报文,其中包含了转发失败的接口的MTU。

(3)     源主机收到该差错报文后,将按照报文中所携带的MTU重新对报文进行分片并发送。

(4)     如此反复,直到目的端主机收到这个报文,从而确定报文从源端到目的端路径中的最小MTU。

1.1.5  IPv6过渡技术介绍

在IPv6成为主流协议之前,首先使用IPv6协议栈的网络希望能与当前仍被IPv4支撑着的互联网进行正常通信,因此必须开发出IPv4和IPv6互通技术以保证IPv4能够平稳过渡到IPv6。互通技术应该对信息传递做到高效无缝。目前已经出现了多种过渡技术,这些技术各有特点,用于解决不同过渡时期、不同环境的通信问题。

1. 双协议栈

双协议栈是一种最简单直接的过渡机制。同时支持IPv4协议和IPv6协议的网络节点称为双协议栈节点。当双协议栈节点配置IPv4地址和IPv6地址后,就可以在相应接口上转发IPv4和IPv6报文。当一个上层应用同时支持IPv4和IPv6协议时,根据协议要求可以选用TCP或UDP作为传输层的协议,但在选择网络层协议时,它会优先选择IPv6协议栈。双协议栈技术适合IPv4网络节点之间或者IPv6网络节点之间通信,是所有过渡技术的基础。但是,这种技术要求运行双协议栈的节点有一个全球唯一的地址,实际上没有解决IPv4地址资源匮乏的问题。

2. 隧道技术

隧道是一种封装技术,它利用一种网络协议来传输另一种网络协议,即利用一种网络传输协议,将其他协议产生的数据报文封装在它自己的报文中,然后在网络中传输。关于隧道技术的详细介绍,请参见“三层技术-IP业务配置指导”中的“隧道”。

1.1.6  协议规范

与IPv6基础相关的协议规范有:

·     RFC 1881:IPv6 Address Allocation Management

·     RFC 1887:An Architecture for IPv6 Unicast Address Allocation

·     RFC 1981:Path MTU Discovery for IP version 6

·     RFC 2375:IPv6 Multicast Address Assignments

·     RFC 2460:Internet Protocol, Version 6 (IPv6) Specification

·     RFC 2463:Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification

·     RFC 2464:Transmission of IPv6 Packets over Ethernet Networks

·     RFC 2526:Reserved IPv6 Subnet Anycast Addresses

·     RFC 3307:Allocation Guidelines for IPv6 Multicast Addresses

·     RFC 4191:Default Router Preferences and More-Specific Routes

·     RFC 4291:IP Version 6 Addressing Architecture

·     RFC 4861:Neighbor Discovery for IP Version 6 (IPv6)

·     RFC 4862:IPv6 Stateless Address Autoconfiguration

1.2  IPv6基础配置任务简介

表1-4 IPv6基础配置任务简介

配置任务

说明

详细配置

配置IPv6基本功能

配置IPv6全球单播地址

三者至少选其一

1.3.1 

配置IPv6链路本地地址

1.3.2 

配置IPv6任播地址

1.3.3 

配置IPv6邻居发现协议

配置静态邻居表项

可选

1.4.1 

配置接口上允许动态学习的邻居的最大个数

可选

1.4.2 

配置STALE状态ND表项的老化时间

可选

1.4.3 

配置链路本地ND表项资源占用最小化

可选

1.4.4 

配置RA消息的相关参数

可选

1.4.5 

配置重复地址检测时发送邻居请求消息的次数

可选

1.4.6 

 

1.3  配置IPv6基本功能

1.3.1  配置IPv6全球单播地址

IPv6全球单播地址可以通过下面三种方式配置:

·     采用EUI-64格式形成:当配置采用EUI-64格式形成IPv6地址时,接口的IPv6地址的前缀需要手工配置,而接口标识符则由接口自动生成。

·     手工配置:用户手工配置IPv6全球单播地址。

·     无状态自动配置:根据接收到的RA报文中携带的地址前缀信息,自动生成IPv6全球单播地址。

每个接口可以有多个全球单播地址。

手工配置的全球单播地址(包括采用EUI-64格式形成的全球单播地址)的优先级高于自动生成的全球单播地址。如果在接口已经自动生成全球单播地址的情况下,手工配置前缀相同的全球单播地址,不会覆盖之前自动生成的全球单播地址。如果删除手工配置的全球单播地址,设备还可以使用自动生成的全球单播地址进行通信。

1. 采用EUI-64格式形成IPv6地址

表1-5 采用EUI-64格式形成IPv6地址

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

采用EUI-64格式形成IPv6地址

ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } eui-64

缺省情况下,接口上没有配置IPv6全球单播地址

 

2. 手工指定IPv6地址

表1-6 手工指定IPv6地址

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

手工指定IPv6地址

ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length }

缺省情况下,接口上没有配置IPv6全球单播地址

 

3. 无状态自动配置IPv6地址

表1-7 无状态自动配置IPv6地址

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

无状态自动配置IPv6地址

ipv6 address auto

缺省情况下,接口上没有配置IPv6全球单播地址

在接口上执行undo ipv6 address auto命令,将删除该接口上所有自动生成的全球单播地址

 

在配置了无状态自动配置IPv6地址功能后,接口会根据接收到的RA报文中携带的地址前缀信息和接口ID,自动生成IPv6全球单播地址。如果接口是IEEE 802类型的接口(例如,以太网接口、VLAN接口),其接口ID是由MAC地址根据一定的规则生成,此接口ID具有全球唯一性。对于不同的前缀,接口ID部分始终不变,攻击者通过接口ID可以很方便的识别出通信流量是由哪台设备产生的,并分析其规律,会造成一定的安全隐患。

如果在地址无状态自动配置时,自动生成接口ID不断变化的IPv6地址,就可以加大攻击的难度,从而保护网络。为此,设备提供了临时地址功能,使得系统可以生成临时地址。配置该功能后,通过地址无状态自动配置,IEEE 802类型的接口可以同时生成两类地址:

·     公共地址:地址前缀采用RA报文携带的前缀,接口ID由MAC地址产生。接口ID始终不变。

·     临时地址:地址前缀采用RA报文携带的前缀,接口ID由系统根据MD5算法计算产生。接口ID不断变化。

在配置了优先选择临时地址功能前提下发送报文,系统将优先选择临时地址作为报文的源地址。当临时地址的有效生命期过期后,这个临时地址将被删除,同时,系统会通过MD5算法重新生成一个接口ID不同的临时地址。所以,该接口发送报文的源地址的接口ID总是在不停变化。如果生成的临时地址因为DAD冲突不可用,就采用公共地址作为报文的源地址。

临时地址的首选生命期和有效生命期的确定原则如下:

·     首选生命期是如下两个值之中的较小者:“RA前缀中的首选生命期”和“配置的临时地址首选生命期减去DESYNC_FACTOR”。DESYNC_FACTOR是一个0~600秒的随机值。

·     有效生命期是如下两个值之中的较小者:“RA前缀中的有效生命期”和“配置的临时地址有效生命期”。

表1-8 配置系统生成临时地址,并优先选择临时地址作为报文的源地址

操作

命令

说明

进入系统视图

system-view

-

配置系统生成临时地址

ipv6 temporary-address [ valid-lifetime preferred-lifetime ]

缺省情况下,系统不生成临时地址

优先选择临时地址作为报文的源地址

ipv6 prefer temporary-address

缺省情况下,不会用临时地址作为接口发送报文的源地址

 

设备的接口必须启用地址无状态自动配置功能才能生成临时地址,而且临时地址不会覆盖公共地址,因此会出现一个接口下有多个前缀相同但是接口ID不同的地址。

如果公共地址生成失败,例如前缀冲突,则不会生成临时地址。

1.3.2  配置IPv6链路本地地址

IPv6的链路本地地址可以通过两种方式获得:

·     自动生成:设备根据链路本地地址前缀(FE80::/10)及接口的链路层地址,自动为接口生成链路本地地址;

·     手工指定:用户手工配置IPv6链路本地地址。

每个接口只能有一个链路本地地址,为了避免链路本地地址冲突,推荐使用链路本地地址的自动生成方式。

配置链路本地地址时,手工指定方式的优先级高于自动生成方式。即如果先采用自动生成方式,之后手工指定,则手工指定的地址会覆盖自动生成的地址;如果先手工指定,之后采用自动生成的方式,则自动配置不生效,接口的链路本地地址仍是手工指定的。此时,如果删除手工指定的地址,则自动生成的链路本地地址会生效。

表1-9 配置自动生成链路本地地址

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置自动生成链路本地地址

ipv6 address auto link-local

缺省情况下,接口上没有链路本地地址。当接口配置了IPv6全球单播地址后,会自动生成链路本地地址

 

表1-10 手工指定接口的链路本地地址

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

手工指定接口的链路本地地址

ipv6 address ipv6-address link-local

缺省情况下,接口上没有链路本地地址。当接口配置了IPv6全球单播地址后,会自动生成链路本地地址

 

当接口配置了IPv6全球单播地址后,同时会自动生成链路本地地址。且与采用ipv6 address auto link-local命令生成的链路本地地址相同。此时如果手工指定接口的链路本地地址,则手工指定的有效。如果删除手工指定的链路本地地址,则接口的链路本地地址恢复为系统自动生成的地址。

undo ipv6 address auto link-local命令只能删除使用ipv6 address auto link-local命令生成的链路本地地址。即如果此时已经配置了IPv6全球单播地址,由于系统会自动生成链路本地地址,则接口仍有链路本地地址;如果此时没有配置IPv6全球单播地址,则接口没有链路本地地址。

1.3.3  配置IPv6任播地址

用户需要手工配置接口的IPv6任播地址。

表1-11 配置IPv6任播地址

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置IPv6任播地址

ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } anycast

缺省情况下,接口上没有配置任播地址

 

1.4  配置IPv6邻居发现协议

1.4.1  配置静态邻居表项

将邻居节点的IPv6地址解析为链路层地址,可以通过邻居请求消息NS及邻居通告消息NA来动态实现,也可以通过手工配置静态邻居表项来实现。

设备根据邻居节点的IPv6地址和与此邻居节点相连的三层接口号来唯一标识一个静态邻居表项。目前,静态邻居表项有两种配置方式:

·     配置本节点的三层接口对应的邻居节点的IPv6地址、链路层地址;

·     配置本节点VLAN中的端口对应的邻居节点的IPv6地址、链路层地址。

表1-12 配置静态邻居表项

操作

命令

说明

进入系统视图

system-view

-

配置静态邻居表项

ipv6 neighbor ipv6-address mac-address { vlan-id port-type port-number | interface interface-type interface-number } [ vpn-instance vpn-instance-name ]

缺省情况下,设备上不存在静态邻居表项

 

对于VLAN接口,可以采用上述两种方式来配置静态邻居表项:

·     采用第一种方式配置静态邻居表项后,设备还需要解析VLAN对应的二层端口信息。

·     采用第二种方式配置静态邻居表项后,需要保证VLAN所对应的VLAN接口已经存在,且port-type port-number指定的二层端口属于vlan-id指定的VLAN。在配置后,设备会将VLAN所对应的VLAN接口与IPv6地址相对应来唯一标识一个静态邻居表项。

1.4.2  配置接口上允许动态学习的邻居的最大个数

设备可以通过NS消息和NA消息来动态获取邻居节点的链路层地址,并将其加入到邻居表中。为了防止部分接口下的用户占用过多的资源,可以通过设置接口学习动态邻居表项的最大个数来进行限制。当接口学习到的动态邻居表项的个数达到所设置的最大值时,该接口将不再学习动态邻居表项。

表1-13 配置接口上允许学习的动态邻居表项的最大个数

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置接口上允许学习的动态邻居表项的最大个数

ipv6 neighbors max-learning-num number

缺省情况下,接口上允许动态学习的邻居的最大个数为8192

 

1.4.3  配置STALE状态ND表项的老化时间

为适应网络的变化,ND表需要不断更新。在ND表中,处于STALE状态的ND表项并非永远有效,而是有一个老化时间。到达老化时间的STALE状态ND表项将迁移到DELAY状态。5秒钟后DELAY状态超时,ND表项将迁移到PROBE状态,并且设备会发送3次NS报文进行可达性探测。若邻居已经下线,则收不到回应的NA报文,此时设备会将该ND表项删除。用户可以根据网络实际情况调整老化时间。

表1-14 配置STALE状态ND表项的老化时间

操作

命令

说明

进入系统视图

system-view

-

配置STALE状态ND表项的老化时间

ipv6 neighbor stale-aging aging-time

缺省情况下,STALE状态ND表项的老化时间为240分钟

 

1.4.4  配置链路本地ND表项资源占用最小化

本功能可以对链路本地ND表项(该ND表项的IPv6地址为链路本地地址)占用的资源进行优化。

缺省情况下,所有ND表项均会下发硬件表项。配置本功能后,新学习的、未被引用的链路本地ND表项(该ND表项的链路本地地址不是某条路由的下一跳)不下发硬件表项,以节省资源。

本功能只对后续新学习的ND表项生效,已经存在的ND表项不受影响。

表1-15 配置链路本地ND表项资源占用最小化

操作

命令

说明

进入系统视图

system-view

-

配置链路本地ND表项资源占用最小化

ipv6 neighbor link-local minimize

缺省情况下,所有ND表项均会下发硬件表项

 

1.4.5  配置RA消息的相关参数

用户可以根据实际情况,配置接口是否发送RA消息及发送RA消息的时间间隔,同时可以配置RA消息中的相关参数以通告给主机。当主机接收到RA消息后,就可以采用这些参数进行相应操作。可以配置的RA消息中的参数及含义如表1-16所示。

表1-16 RA消息中的参数及描述

参数

描述

跳数限制(Hop Limit

在RA消息中发布本设备的跳数限制,收到该RA消息之后,主机在发送IPv6报文时,将使用该跳数值填充IPv6报文头中的Hop Limit字段。

前缀信息(Prefix Information

在同一链路上的主机收到设备发布的前缀信息后,可以进行无状态自动配置等操作。

MTU

发布链路的MTU,可以用于确保同一链路上的所有节点采用相同的MTU值。

被管理地址配置标志位(M flag

用于确定主机是否采用有状态自动配置获取IPv6地址。

如果设置该标志位为1,主机将通过有状态自动配置(例如DHCPv6服务器)来获取IPv6地址;否则,将通过无状态自动配置获取IPv6地址,即根据自己的链路层地址及路由器发布的前缀信息生成IPv6地址。

其他信息配置标志位(O flag

用于确定主机是否采用有状态自动配置获取除IPv6地址外的其他信息。

如果设置其他信息配置标志位为1,主机将通过有状态自动配置(例如DHCPv6服务器)来获取除IPv6地址外的其他信息;否则,将通过无状态自动配置获取其他信息。

路由器生存时间(Router Lifetime

用于设置发布RA消息的路由器作为主机的默认路由器的时间。主机根据接收到的RA消息中的路由器生存时间参数值,就可以确定是否将发布该RA消息的路由器作为默认路由器。发布RA消息中路由器生存时间为0的路由器不能作为默认路由器。

邻居请求消息重传时间间隔(Retrans Timer

设备发送NS消息后,如果未在指定的时间间隔内收到响应,则会重新发送NS消息。

保持邻居可达状态的时间(Reachable Time

当通过邻居可达性检测确认邻居可达后,在所设置的可达时间内,设备认为邻居可达;超过设置的时间后,如果需要向邻居发送报文,会重新确认邻居是否可达。

配置路由优先级

( Router Preference )

用于设置发布RA消息的路由器的路由器优先级,主机根据接收到的RA消息中的路由器优先级,可以选择优先级最高的路由器作为默认网关。在路由器的优先级相同的情况下,遵循“先来先用”的原则,优先选择先接收到的RA消息对应的发送路由器作为默认网关。

 

表1-17 配置允许发布RA消息

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

取消对RA消息发布的抑制

undo ipv6 nd ra halt

缺省情况下,抑制发布RA消息

配置RA消息发布的最大时间间隔和最小时间间隔

ipv6 nd ra interval max-interval-value min-interval-value

缺省情况下,RA消息发布的最大间隔时间为600秒,最小时间间隔为200秒

RA消息周期性发布时,相邻两次的时间间隔是在最大时间间隔与最小时间间隔之间随机选取一个值作为周期性发布RA消息的时间间隔

配置的最小时间间隔应该小于等于最大时间间隔的0.75

 

表1-18 配置RA消息中的相关参数

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置RA消息中的前缀信息

ipv6 nd ra prefix { ipv6-prefix prefix-length | ipv6-prefix/prefix-length } valid-lifetime preferred-lifetime [ no-autoconfig | off-link ] *

缺省情况下,没有配置RA消息中的前缀信息,此时将使用发送RA消息的接口IPv6地址作为RA消息中的前缀信息,其手工配置地址的有效生命期是2592000秒(30天),首选生命期是604800(7天);其他自动分配地址(如DHCPv6分配地址)的有效生命期和首选生命期与地址本身的生命期相同

配置RA消息中不携带MTU选项

ipv6 nd ra no-advlinkmtu

缺省情况下,RA消息中携带MTU选项

配置RA消息中不指定跳数限制

ipv6 nd ra hop-limit unspecified

缺省情况下,RA消息中发布本设备的跳数限制。本设备的跳数限制默认为64跳

设置被管理地址配置标志位为1

ipv6 nd autoconfig managed-address-flag

缺省情况下,被管理地址标志位为0,即主机通过无状态自动配置获取IPv6地址

设置其他配置标志位为1

ipv6 nd autoconfig other-flag

缺省情况下,其他配置标志位为0,即主机通过无状态自动配置获取其他信息

配置RA消息中路由器的生存时间

ipv6 nd ra router-lifetime value

缺省情况下,RA消息中路由器的生存时间为1800秒

配置邻居请求消息重传时间间隔

ipv6 nd ns retrans-timer value

缺省情况下,接口发送NS消息的时间间隔为1000毫秒;接口发布的RA消息中Retrans Timer字段的值为0,即不对主机进行指定

配置RA消息中路由器的优先级

ipv6 nd router-preference  { high | low | medium }

缺省情况下,RA消息中路由器的优先级为medium

配置保持邻居可达状态的时间

ipv6 nd nud reachable-time value

缺省情况下,接口保持邻居可达状态的时间为30000毫秒;接口发布的RA消息中Reachable Timer字段的值为0,即不对主机进行指定

 

RA消息发布的最大间隔时间应该小于或等于RA消息中路由器的生存时间,以保证在路由器失效之前得到更新的RA消息。

在接口上配置的邻居请求消息重传时间间隔及保持邻居可达状态的时间,既可作为RA消息中的信息发布给主机,也可作为本接口发送邻居请求消息的时间间隔及保持邻居可达状态的时间。

1.4.6  配置重复地址检测时发送邻居请求消息的次数

接口获得IPv6地址后,将发送邻居请求消息进行重复地址检测。如果在指定的时间内(通过ipv6 nd ns retrans-timer命令配置)没有收到响应,则继续发送邻居请求消息,当发送的次数达到所设置的次数后,仍未收到响应,则认为该地址可用。

表1-19 配置重复地址检测时发送邻居请求消息的次数

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置重复地址检测时发送邻居请求消息的次数

ipv6 nd dad attempts value

缺省情况下,重复地址检测时发送邻居请求报文的次数为1,当value值为0时,表示禁止重复地址检测

 

1.5  IPv6基础显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示IPv6配置后的运行情况,用户可以通过查看显示信息验证配置的效果。

在用户视图下,执行reset命令可以清除相应的统计信息。

表1-20 IPv6基础显示和维护

操作

命令

显示IPv6 FIB信息

display ipv6 fib [ vpn-instance vpn-instance-name ] [ ipv6-address [ prefix-length ] ]

显示接口的IPv6信息

display ipv6 interface [ interface-type [ interface-number ] ] [ brief ]

显示接口的IPv6前缀信息

display ipv6 interface interface-type interface-number prefix

显示邻居信息

display ipv6 neighbors { { ipv6-address | all | dynamic | static } [ slot slot-number ] | interface interface-type interface-number | vlan vlan-id } [ verbose ]

显示邻居表项的个数

display ipv6 neighbors { { all | dynamic | static } [ slot slot-number ] | interface interface-type interface-number | vlan vlan-id } count

显示指定VPN实例的邻居信息

display ipv6 neighbors vpn-instance vpn-instance-name [ count ]

显示IPv6报文及ICMPv6报文的统计信息

display ipv6 statistics [ slot slot-number ]

显示IPv6 RawIP连接摘要信息

display ipv6 rawip [ slot slot-number ]

显示IPv6 RawIP连接详细信息

display ipv6 rawip verbose [ slot slot-number [ pcb pcb-index ] ]

显示IPv6 TCP连接摘要信息

display ipv6 tcp [ slot slot-number ]

显示IPv6 TCP连接详细信息

display ipv6 tcp verbose [ slot slot-number [ pcb pcb-index ] ]

显示IPv6 UDP连接摘要信息

display ipv6 udp [ slot slot-number ]

显示IPv6 UDP连接详细信息

display ipv6 udp verbose [ slot slot-number [ pcb pcb-index ] ]

显示IPv6 ICMP流量统计信息

display ipv6 icmp statistics [ slot slot-number ]

显示IPv6 TCP连接的流量统计信息

display tcp statistics [ slot slot-number ]

显示IPv6 UDP流量统计信息

display udp statistics [ slot slot-number ]

清除IPv6邻居信息

reset ipv6 neighbors { all | dynamic | interface interface-type interface-number | slot slot-number | static }

清除IPv6报文及ICMPv6报文的统计信息

reset ipv6 statistics [ slot slot-number ]

清除IPv6 TCP连接的流量统计信息

reset tcp statistics

清除IPv6 UDP流量统计信息

reset udp statistics

 

display tcp statisticsdisplay udp statisticsreset tcp statisticsreset udp statistics命令的详细介绍请参见“三层技术-IP业务命令参考”中的“IP性能优化”。

1.6  IPv6基础典型配置举例

1. 组网需求

·     如图1-6所示,Host、Switch A和Switch B之间通过以太网端口相连,将以太网端口分别加入相应的VLAN里,在VLAN接口上配置IPv6地址,验证它们之间的互通性。

·     Switch B有可以到Host的路由。

·     在Host上安装IPv6,根据IPv6邻居发现协议自动配置IPv6地址,有可以到Switch B的路由。

2. 组网图

图1-6 IPv6地址配置组网图

说明

 

3. 配置步骤

(1)     配置Switch A

# 手工指定VLAN接口2的全球单播地址。

<SwitchA> system-view

[SwitchA] interface vlan-interface 2

[SwitchA-Vlan-interface2] ipv6 address 3001::1/64

[SwitchA-Vlan-interface2] quit

# 手工指定VLAN接口1的全球单播地址,并允许其发布RA消息。(缺省情况下,所有的接口不会发布RA消息)

[SwitchA] interface vlan-interface 1

[SwitchA-Vlan-interface1] ipv6 address 2001::1/64

[SwitchA-Vlan-interface1] undo ipv6 nd ra halt

[SwitchA-Vlan-interface1] quit

(2)     配置Switch B

# 配置VLAN接口2的全球单播地址。

<SwitchB> system-view

[SwitchB] interface vlan-interface 2

[SwitchB-Vlan-interface2] ipv6 address 3001::2/64

[SwitchB-Vlan-interface2] quit

# 配置IPv6静态路由,该路由的目的地址为2001::/64,下一跳地址为3001::1。

[SwitchB] ipv6 route-static 2001:: 64 3001::1

(3)     配置Host

在Host上安装IPv6,根据IPv6邻居发现协议自动配置IPv6地址。

# 从Switch A上查看端口Ethernet1/2的邻居信息。

[SwitchA] display ipv6 neighbors interface FortyGig 1/0/2

                       Type: S-Static    D-Dynamic    I-Invalid

IPv6 Address                 Link Layer      VID  Interface    State T Age

FE80::215:E9FF:FEA6:7D14      0015-e9a6-7d14  1     FGE1/0/2    STALE D 1238

2001::15B:E0EA:3524:E791      0015-e9a6-7d14  1     FGE1/0/2    STALE D 1248

通过上面的信息可以知道Host上获得的IPv6全球单播地址为2001::15B:E0EA:3524:E791

4. 验证配置

# 显示Switch A的接口信息,可以看到各接口配置的IPv6全球单播地址。

[SwitchA] display ipv6 interface vlan-interface 2

Vlan-interface2 current state: UP

Line protocol current state: UP

IPv6 is enabled, link-local address is FE80::20F:E2FF:FE00:2

  Global unicast address(es):

    3001::1, subnet is 3001::/64

  Joined group address(es):

    FF02::1

    FF02::2

    FF02::1:FF00:1

    FF02::1:FF00:2

  MTU is 1500 bytes

  ND DAD is enabled, number of DAD attempts: 1

  ND reachable time is 30000 milliseconds

  ND retransmit interval is 1000 milliseconds

  Hosts use stateless autoconfig for addresses

IPv6 Packet statistics:

  InReceives:                    25829

  InTooShorts:                   0

  InTruncatedPkts:               0

  InHopLimitExceeds:             0

  InBadHeaders:                  0

  InBadOptions:                  0

  ReasmReqds:                    0

  ReasmOKs:                      0

  InFragDrops:                   0

  InFragTimeouts:                0

  OutFragFails:                  0

  InUnknownProtos:               0

  InDelivers:                    47

  OutRequests:                   89

  OutForwDatagrams:              48

  InNoRoutes:                    0

  InTooBigErrors:                0

  OutFragOKs:                    0

  OutFragCreates:                0

  InMcastPkts:                   6

  InMcastNotMembers:             25747

  OutMcastPkts:                  48

  InAddrErrors:                  0

  InDiscards:                    0

  OutDiscards:                   0

 

[SwitchA] display ipv6 interface vlan-interface 1

Vlan-interface1 current state: UP

Line protocol current state: UP

IPv6 is enabled, link-local address is FE80::20F:E2FF:FE00:1C0

  Global unicast address(es):

    2001::1, subnet is 2001::/64

  Joined group address(es):

    FF02::1

    FF02::2

    FF02::1:FF00:1

    FF02::1:FF00:1C0

  MTU is 1500 bytes

  ND DAD is enabled, number of DAD attempts: 1

  ND reachable time is 30000 milliseconds

  ND retransmit interval is 1000 milliseconds

  ND advertised reachable time is 0 milliseconds

  ND advertised retransmit interval is 0 milliseconds

  ND router advertisements are sent every 600 seconds

  ND router advertisements live for 1800 seconds

  Hosts use stateless autoconfig for addresses

IPv6 Packet statistics:

  InReceives:                    272

  InTooShorts:                   0

  InTruncatedPkts:               0

  InHopLimitExceeds:             0

  InBadHeaders:                  0

  InBadOptions:                  0

  ReasmReqds:                    0

  ReasmOKs:                      0

  InFragDrops:                   0

  InFragTimeouts:                0

  OutFragFails:                  0

  InUnknownProtos:               0

  InDelivers:                    159

  OutRequests:                   1012

  OutForwDatagrams:              35

  InNoRoutes:                    0

  InTooBigErrors:                0

  OutFragOKs:                    0

  OutFragCreates:                0

  InMcastPkts:                   79

  InMcastNotMembers:             65

  OutMcastPkts:                  938

  InAddrErrors:                  0

  InDiscards:                    0

  OutDiscards:                   0

 

# 显示Switch B的接口信息,可以看到接口配置的IPv6全球单播地址。

[SwitchB] display ipv6 interface vlan-interface 2

Vlan-interface2 current state: UP

Line protocol current state: UP

IPv6 is enabled, link-local address is FE80::20F:E2FF:FE00:1234

  Global unicast address(es):

    3001::2, subnet is 3001::/64

  Joined group address(es):

    FF02::1

    FF02::2

    FF02::1:FF00:1

    FF02::1:FF00:1234

  MTU is 1500 bytes

  ND DAD is enabled, number of DAD attempts: 1

  ND reachable time is 30000 milliseconds

  ND retransmit interval is 1000 milliseconds

  Hosts use stateless autoconfig for addresses

IPv6 Packet statistics:

  InReceives:                    117

  InTooShorts:                   0

  InTruncatedPkts:               0

  InHopLimitExceeds:             0

  InBadHeaders:                  0

  InBadOptions:                  0

  ReasmReqds:                    0

  ReasmOKs:                      0

  InFragDrops:                   0

  InFragTimeouts:                0

  OutFragFails:                  0

  InUnknownProtos:               0

  InDelivers:                    117

  OutRequests:                   83

  OutForwDatagrams:              0

  InNoRoutes:                    0

  InTooBigErrors:                0

  OutFragOKs:                    0

  OutFragCreates:                0

  InMcastPkts:                   28

  InMcastNotMembers:             0

  OutMcastPkts:                  7

  InAddrErrors:                  0

  InDiscards:                    0

  OutDiscards:                   0

 

# 在Host上使用Ping测试和Switch A及Switch B的互通性;在Switch B上使用Ping测试和Switch A及Host的互通性。

说明

Ping链路本地地址时,需要使用-i参数来指定链路本地地址的接口。

 

[SwitchB] ping ipv6 -c 1 3001::1

Ping6(56 data bytes) 3001::2 --> 3001::1, press CTRL_C to break

56 bytes from 3001::1, icmp_seq=0 hlim=64 time=4.404 ms

 

--- Ping6 statistics for 3001::1 ---

1 packet(s) transmitted, 1 packet(s) received, 0.0% packet loss

round-trip min/avg/max/std-dev = 4.404/4.404/4.404/0.000 ms

[SwitchB] ping ipv6 -c 1 2001::15B:E0EA:3524:E791

Ping6(56 data bytes) 3001::2 --> 2001::15B:E0EA:3524:E791, press CTRL_C to break

56 bytes from 2001::15B:E0EA:3524:E791, icmp_seq=0 hlim=64 time=5.404 ms

 

--- Ping6 statistics for 2001::15B:E0EA:3524:E791 ---

1 packet(s) transmitted, 1 packet(s) received, 0.0% packet loss

round-trip min/avg/max/std-dev = 5.404/5.404/5.404/0.000 ms

从Host上也可以ping通Switch B和Switch A,证明它们是互通的。

1.7  常见配置错误举例

1. 故障现象

无法Ping通对端的IPv6地址。

2. 故障排除

·     在任意视图下使用display ipv6 interface命令检查接口配置的IPv6地址是否正确,接口状态是否为up。

·     在用户视图下使用debugging ipv6 packet命令打开IPv6报文调试开关,根据调试信息进行判断。

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们