• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

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

目录

06-IPv6基础配置

本章节下载 06-IPv6基础配置  (428.98 KB)

06-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地址及相关信息,详细介绍请参见“三层技术-IP业务配置指导”中的“DHCPv6”。

·     无状态地址配置是指主机根据自己的链路层地址及路由器发布的前缀信息自动配置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 802接口类型(例如,VLAN接口)的接口,IEEE EUI-64格式的接口标识符是从接口的链路层地址(MAC地址)变化而来的。IPv6地址中的接口标识符是64位,而MAC地址是48位,因此需要在MAC地址的中间位置(从高位开始的第24位后)插入十六进制数FFFE(1111111111111110)。为了使接口标识符的作用范围与原MAC地址一致,还要将Universal/Local (U/L)位(从高位开始的第7位)进行取反操作。最后得到的这组数就作为EUI-64格式的接口标识符。

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

 

1.1.3  IPv6 PMTU发现

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

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

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

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

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

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

图1-3 PMTU发现工作过程

 

1.1.4  协议规范

相关的协议规范有:

·     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 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 4443:Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification

·     RFC 4862:IPv6 Stateless Address Autoconfiguration

1.2  IPv6基础配置任务简介

IPv6基础配置任务如下:

(1)     配置IPv6地址

请选择以下至少一项任务进行配置:

¡     配置IPv6全球单播地址

¡     配置IPv6链路本地地址

¡     配置IPv6任播地址

(2)     (可选)配置PMTU发现

¡     配置接口MTU

¡     配置动态PMTU的老化时间

¡     配置指定地址的静态PMTU

(3)     (可选)配置ICMPv6报文发送/接收功能

¡     配置发送ICMPv6差错报文对应的令牌桶容量和令牌刷新周期

¡     配置允许回复组播形式的Echo request报文

¡     配置ICMPv6目的不可达差错报文发送功能

¡     配置ICMPv6超时差错报文发送功能

¡     配置ICMPv6报文指定源地址功能

(4)     (可选)配置IPv6基于带宽的负载分担

(5)     (可选)在接口未配置IPv6地址时,开启接口的IPv6报文转发功能

1.3  配置IPv6全球单播地址

1.3.1  功能简介

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

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

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

·     引用前缀生成IPv6地址:引用前缀生成IPv6地址时,接口的IPv6地址的前缀可以通过手工配置或DHCPv6动态获取,同时该前缀还会分配给终端设备。

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

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

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

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

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     采用EUI-64格式形成IPv6地址。

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

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

1.3.3  手工指定IPv6地址

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     手工指定IPv6地址。

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

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

1.3.4  无状态自动配置IPv6地址

1. 功能简介

在配置了无状态自动配置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前缀中的有效生命期”和“配置的临时地址有效生命期”。

2. 配置限制和指导

如果RA报文携带的前缀长度不是64位,则该接口自动生成IPv6全球单播地址失败。

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

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

在接口上开启无状态地址自动配置功能后,接口通过无状态自动配置方式生成全球单播地址。如果通过undo ipv6 address auto命令关闭该功能,将删除该接口上所有自动生成的全球单播地址和链路本地地址。

3. 开启无状态自动配置IPv6地址功能

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     开启无状态地址自动配置功能,使接口通过无状态自动配置方式生成全球单播地址。

ipv6 address auto

缺省情况下,接口上无状态地址自动配置功能处于关闭状态。

4. 配置系统生成临时地址,并优先选择临时地址作为报文的源地址

(1)     进入系统视图。

system-view

(2)     配置系统生成临时地址。

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

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

(3)     优先选择临时地址作为报文的源地址。

ipv6 prefer temporary-address

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

1.3.5  引用前缀生成接口上的IPv6地址,并将此前缀分配给终端设备

(1)     进入系统视图。

system-view

(2)     配置IPv6前缀。请选择其中一项进行配置。

¡     手工配置静态的IPv6前缀。

ipv6 prefix prefix-number ipv6-prefix/prefix-length

缺省情况下,未配置静态IPv6前缀。

¡     配置设备作为DHCPv6客户端动态获取IPv6前缀,并生成指定编号的IPv6前缀。

配置方法请参见“三层技术-IP业务配置指导”中的“DHCPv6客户端”。

(3)     进入接口视图。

interface interface-type interface-number

(4)     引用前缀生成接口上的IPv6地址,并将此前缀分配给终端设备。

ipv6 address prefix-number sub-prefix/prefix-length

缺省情况下,接口上未引用前缀,也不会向终端设备分配该前缀。

1.4  配置IPv6链路本地地址

1.4.1  功能简介

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

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

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

1.4.2  配置限制和指导

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

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

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

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

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

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     配置自动生成链路本地地址。

ipv6 address auto link-local

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

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

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     手工指定接口的链路本地地址。

ipv6 address { ipv6-address [ prefix-length ] | ipv6-address/prefix-length } link-local

缺省情况下,未指定接口的链路本地地址。

1.5  配置IPv6任播地址

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     配置IPv6任播地址。

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

缺省情况下,接口上未配置任播地址。

1.6  配置PMTU发现

1.6.1  配置接口MTU

1. 功能简介

当设备作为中间设备转发报文时,会根据接口MTU值对报文进行转发。如果发现报文长度比转发接口的MTU值大,则会将其丢弃,同时将转发接口的MTU值通过ICMPv6报文的“Packet Too Big”消息发给源端。

2. 配置限制和指导

为减少报文被丢弃带来的额外流量开销,请根据实际组网环境设置合适的接口MTU值。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     配置接口MTU。

ipv6 mtu size

缺省情况下,接口MTU取值为1280字节。

1.6.2  配置动态PMTU的老化时间

1. 功能简介

动态PMTU是设备通过“1.1.3  IPv6 PMTU发现”中的方法学习到设备作为源端到目的端的路径上的最小接口MTU。设备学习到动态PMTU后,会使用动态PMTU指导后续报文的转发。当动态PMTU老化时间超时后,源设备会通过PMTU发现机制重新确定发送报文的PMTU。

2. 配置限制与指导

配置动态PMTU的老化时间只对之后学习到的动态PMTU生效,不改变配置前生成的动态PMTU的老化时间。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置PMTU老化时间。

ipv6 pathmtu age age-time

缺省情况下,PMTU的老化时间是10分钟。

1.6.3  配置指定地址的静态PMTU

1. 功能简介

在IPv6网络中,中间转发设备不对报文进行分片,报文分片由源设备完成。这样能保证报文在整个传输过程中不分片,减轻了中间转发设备的工作压力。

通常情况下,源设备使用“1.1.3  IPv6 PMTU发现”中的方法确定PMTU,即动态PMTU,源设备根据动态PMTU对报文进行分片、发送。但在特殊情况下,为了保护网络设备的安全,避免受到长度超大的报文的攻击,需要使用ipv6 pathmtu命令对指定IPv6地址配置静态PMTU,控制源端到目的端可转发报文的最大长度。

当设备作为源端向目的端发送报文时,如果判断出对目的IPv6地址配置了静态的PMTU,则取发送接口的MTU和静态PMTU值中的较小值和报文长度进行比较:

·     如果报文长度小于/等于较小值时,不对报文进行分片,直接发送。

·     如果报文长度大于较小值,则根据较小值对报文进行分片,然后发送第一个分片。

发送过程中,如果源设备接收到中间设备返回的“Packet Too Big”消息,则本次报文发送失败。

2. 配置限制和指导

静态PMTU的优先级高于动态PMTU的优先级,静态PMTU永远不会老化。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置指定IPv6地址对应的静态PMTU值。

ipv6 pathmtu [ vpn-instance vpn-instance-name ] ipv6-address value

缺省情况下,未配置静态PMTU值。

1.7  配置ICMPv6报文发送/接收功能

 

1.7.1  配置发送ICMPv6差错报文对应的令牌桶容量和令牌刷新周期

1. 功能简介

如果网络中短时间内发送的ICMPv6差错报文过多,将可能导致网络拥塞。为了避免这种情况,用户可以控制在指定时间内发送ICMPv6差错报文的最大个数,目前采用令牌桶算法来实现。

用户可以设置令牌桶的容量,即令牌桶中可以同时容纳的令牌数;同时可以设置令牌桶的刷新周期,即每隔多长时间发放一个令牌到令牌桶中,直到令牌桶中的令牌数达到配置的容量。一个令牌表示允许发送一个ICMPv6差错报文,每当发送一个ICMPv6差错报文,则令牌桶中减少一个令牌。如果连续发送的ICMPv6差错报文超过了令牌桶的容量,则后续的ICMPv6差错报文将不能被发送出去,直到按照所设置的刷新频率将新的令牌放入令牌桶中。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置发送ICMPv6差错报文对应的令牌桶容量和令牌刷新周期。

ipv6 icmpv6 error-interval interval [ bucketsize ]

缺省情况下,令牌桶容量为10,令牌刷新周期为100毫秒。

刷新周期为0时,表示不限制ICMPv6差错报文的发送。

1.7.2  配置允许回复组播形式的Echo request报文

(1)     进入系统视图。

system-view

(2)     配置设备允许回复组播形式的Echo request报文。

ipv6 icmpv6 multicast-echo-reply enable

缺省情况下,不允许设备回复组播形式的Echo request报文。

1.7.3  配置ICMPv6目的不可达差错报文发送功能

1. 功能简介

ICMPv6目的不可达报文(报文Type字段值为1,详见RFC4443)发送功能是在设备收到IPv6数据报文后,如果发生目的不可达的差错,则将报文丢弃并给源端发送ICMPv6目的不可达差错报文。

设备在满足下列任一条件时会发送目的不可达报文:

·     设备在转发报文时,如果在路由表中没有找到对应的转发路由,且路由表中没有缺省路由,则给源端发送“没有到达目的地址的路由”ICMPv6差错报文;

·     设备在转发报文时,如果是因为管理策略(例如防火墙过滤、ACL等)导致无法发送报文时,则给源端发送“与目的地址的通信被管理策略禁止”ICMPv6差错报文;

·     设备在转发报文时,如果报文的目的IPv6地址超出源IPv6地址的范围(例如,报文的源IPv6地址为链路本地地址,报文的目的IPv6地址为全球单播地址),会导致报文无法到达目的端,此时要给源端发送“超出源地址范围”ICMPv6差错报文;

·     设备在转发报文时,如果不能解析目的IPv6地址对应的链路层地址,则给源端发送“地址不可达”ICMPv6差错报文;

·     设备收到目的地址为本地、传输层协议为UDP的数据报文时,如果报文的目的端口号与正在使用的进程不匹配,则给源端发送“端口不可达”ICMPv6差错报文。

2. 配置限制和指导

由于ICMPv6目的不可达报文传递给用户进程的信息为不可达信息,如果有用户恶意攻击,可能会影响终端用户的正常使用。为了避免上述现象发生,可以关闭设备的ICMPv6目的不可达报文发送功能,从而减少网络流量、防止遭到恶意攻击。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启设备的ICMPv6目的不可达报文的发送功能。

ipv6 unreachables enable

缺省情况下,ICMPv6目的不可达报文发送功能处于关闭状态。

1.7.4  配置ICMPv6超时差错报文发送功能

1. 功能简介

ICMPv6超时报文(报文Type字段值为3,详见RFC4443)发送功能是在设备收到IPv6数据报文后,如果发生超时差错,则将报文丢弃并给源端发送ICMPv6超时差错报文。

设备在满足下列任一条件时会发送ICMPv6超时报文:

·     设备收到IPv6数据报文后,如果报文的目的地不是本地且报文的Hop limit字段是1,则发送“Hop limit超时”ICMPv6差错报文;

·     设备收到目的地址为本地的IPv6数据报文的第一个分片后,启动定时器,如果所有分片报文到达之前定时器超时,则会发送“重组超时”ICMPv6差错报文。

如果接收到大量需要发送ICMPv6差错报文的恶意攻击报文,设备会因为处理大量该类报文而导致性能降低。

2. 配置限制和指导

为了避免上述现象发生,可以关闭设备的ICMPv6超时报文发送功能,从而减少网络流量、防止遭到恶意攻击。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启设备的ICMPv6超时报文的发送功能。

ipv6 hoplimit-expires enable

缺省情况下,ICMPv6超时报文发送功能处于开启状态。

1.7.5  配置ICMPv6报文指定源地址功能

1. 功能简介

在网络中IPv6地址配置较多的情况下,收到ICMPv6报文时,用户很难根据报文的源IPv6地址判断报文来自哪台设备。为了简化这一判断过程,可以配置ICMPv6报文指定源地址功能。用可配置特定地址(如环回口地址)为ICMPv6报文的源地址,可以简化判断。

设备发送ICMPv6差错报文(TTL超时、报文过大、端口不可达和参数错误等)和ping echo request报文时,都可以通过上述命令指定报文的源地址。

2. 配置限制与指导

用户发送ping echo request报文时,如果ping命令中已经指定源地址,则使用该源地址,否则使用ipv6 icmpv6 source配置的源地址。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启ICMPv6报文指定源地址功能。

ipv6 icmpv6 source [ vpn-instance vpn-instance-name ] ipv6-address

缺省情况下,ICMPv6报文指定源地址功能处于关闭状态。

1.8  配置IPv6基于带宽的负载分担

1. 功能简介

在设备上配置了IPv6基于带宽的负载分担后,如果IPv6报文转发时查到多个出接口/下一跳,则按照接口的带宽值计算出各个接口应该分配的报文比例,然后按照带宽比例对报文进行转发。

支持负载分担协议(如LISP)的设备,无论是否配置了负载分担命令,负载分担比例都以协议定义的负载分担比例为准。

2. 配置限制和指导

当使能IPv4/IPv6等价路由增强模式时,本功能无法生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启IPv6基于带宽的负载分担功能。

ipv6 bandwidth-based-sharing

缺省情况下,IPv6基于带宽的负载分担功能处于关闭状态。

(3)     进入接口视图。

interface interface-type interface-number

(4)     配置接口的期望带宽值。

bandwidth bandwidth

缺省情况下,接口负载带宽为接口的物理带宽。

有关bandwidth命令的详细介绍,请参见“接口管理命令参考”中的“接口公共命令”。

1.9  在接口未配置IPv6地址时,开启接口的IPv6报文转发功能

1. 功能简介

在同时支持IPv4协议和IPv6协议的设备上,IPv6路由的下一跳可以是IPv6地址或IPv4地址。如果出接口上未配置IPv6地址,IPv6报文将无法在该接口上进行转发。通过配置本命令,可以在接口未配置IPv6地址的情况下,实现IPv6报文在接口上的转发功能。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     在接口未配置IPv6地址时,开启接口的IPv6报文转发功能。

ipv6 forwarding

缺省情况下,在接口未配置IPv6地址时,接口的IPv6报文转发功能处于关闭状态。

1.10  IPv6基础显示和维护

1.10.1  显示IPv6基础配置

可在任意视图下执行以下命令:

·     显示接口的IPv6信息。

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

·     显示接口的IPv6前缀信息。

display ipv6 interface interface-type interface-number prefix

·     显示IPv6前缀信息。

display ipv6 prefix [ prefix-number ]

1.10.2  显示和清除IPv6协议统计信息

1. 显示IPv6协议统计信息

可在任意视图下执行以下命令:

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

display ipv6 statistics [ slot slot-number ]

·     显示IPv6 ICMP流量统计信息。

display ipv6 icmp statistics [ slot slot-number ]

·     显示IPv6 UDP流量统计信息。

display udp statistics [ slot slot-number ]

本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IP性能优化”。

2. 清除IPv6协议统计信息

请在用户视图下执行以下命令:

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

reset ipv6 statistics [ slot slot-number ]

·     清除IPv6 UDP流量统计信息。

reset udp statistics

本命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“IP性能优化”。

1.10.3  显示和清除IPv6的PMTU信息

1. 显示IPv6的PMTU信息

可在任意视图下执行以下命令,显示IPv6的PMTU信息。

display ipv6 pathmtu [ vpn-instance vpn-instance-name ] { ipv6-address | { all | dynamic | static } [ count ] }

2. 清除IPv6的PMTU信息

请在用户视图下执行以下命令,清除IPv6的PMTU信息。

reset ipv6 pathmtu { all | dynamic | static }

1.10.4  显示IPv6 FIB表项信息

可在任意视图下执行以下命令,显示IPv6 FIB信息。

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

1.11  IPv6基础典型配置举例

1.11.1  IPv6基本组网配置举例

1. 组网需求

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

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

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

2. 组网图

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

 

3. 配置准备

交换机上已经创建相应的VLAN接口。

4. 配置步骤

(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上查看端口HundredGigE1/0/2的邻居信息。

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

Type: S-Static    D-Dynamic    R-Rule    IS-Invalid static

IPv6 address              MAC address    VLAN/VSI   Interface     State T  Aging

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

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

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

5. 验证配置

# 显示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:2

    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,证明它们是互通的。

 

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

新华三官网
联系我们