12-IPv6配置操作
本章节下载 (1.15 MB)
& 说明:
在以下介绍中出现的路由器及路由器图标,代表了一般意义下的路由器以及运行了路由协议的三层交换机。为提高可读性,在手册的描述中将不另行说明。
IPv6(Internet Protocol Version 6,因特网协议版本6)是网络层协议的第二代标准协议,也被称为IPng(IP Next Generation,下一代因特网),它是IETF(Internet Engineering Task Force,Internet工程任务组)设计的一套规范,是IPv4的升级版本。IPv6和IPv4之间最显著的区别为:IP地址的长度从32比特增加到128比特。
通过将IPv4报文头中的某些字段裁减或移入到扩展报文头,减小了IPv6基本报文头的负载,从而简化了转发设备对IPv6报文的处理,提高了转发效率。尽管IPv6地址长度是IPv4地址长度的四倍,但IPv6基本报文头的长度只有40字节,为IPv4报文头长度(不包括选项字段)的两倍。
图1-1 IPv4报文头和IPv6基本报文头格式比较
IPv6的源地址与目的地址长度都是128比特(16字节)。它可以提供超过3.4×1038种可能的地址空间,完全可以满足多层次的地址划分需要,以及公有网络和机构内部私有网络的地址分配。
IPv6的地址空间采用了层次化的地址结构,有利于路由快速查找,同时可以借助路由聚合,有效减少IPv6路由表占用的系统资源。
为了简化主机配置,IPv6支持有状态地址配置和无状态地址配置:
l 有状态地址配置是指从服务器(如DHCP服务器)获取IPv6地址及相关信息;
l 无状态地址配置是指主机根据自己的链路层地址及路由器发布的前缀信息自动配置IPv6地址及相关信息。
同时,主机也可根据自己的链路层地址及默认前缀(FE80::/64)形成链路本地地址,实现与本链路上其他主机的通信。
IPv6将IPSec作为它的标准扩展头,可以提供端到端的安全特性。这一特性也为解决网络安全问题提供了标准,并提高了不同IPv6应用之间的互操作性。
IPv6报文头的流标签(Flow Label)字段实现流量的标识,允许设备对某一流中的报文进行识别并提供特殊处理。
IPv6的邻居发现协议就是一组ICMPv6(Internet Control Message Protocol for IPv6,IPv6的因特网控制报文协议)消息,管理着邻居节点间(即同一链路上的节点)信息的交互。它代替了ARP(Address Resolution Protocol,地址解析协议)、ICMPv4路由器发现和ICMPv4重定向消息,并提供了一系列其他功能。
IPv6取消了IPv4报文头中的选项字段,并引入了多种扩展报文头,在提高处理效率的同时还大大增强了IPv6的灵活性,为IP协议提供了良好的扩展能力。IPv4报文头中的选项字段最多只有40字节,而IPv6扩展报文头的大小只受到IPv6报文大小的限制。
IPv6地址被表示为以冒号(:)分隔的一连串16比特的十六进制数。每个IPv6地址被分为8组,每组的16比特用4个十六进制数来表示,组和组之间用冒号隔开,比如:2001:0000:130F:0000:0000:09C0:876A:130B。
为了简化IPv6地址的表示,对于IPv6地址中的“0”可以有下面的处理方式:
l 每组中的前导“0”可以省略,即上述地址可写为2001:0:130F:0:0:9C0:876A:130B。
l 如果地址中包含连续两个或多个均为0的组,则可以用双冒号“::”来代替,即上述地址可写为2001:0:130F::9C0:876A:130B。
注意:
在一个IPv6地址中只能使用一次双冒号“::”,否则当设备将“::”解析为0以恢复128位地址时,就无法确定“::”所代表的0的个数。
IPv6地址由两部分组成:地址前缀与接口标识。其中,地址前缀相当于IPv4地址中的网络号码字段部分,接口标识相当于IPv4地址中的主机号码部分。
地址前缀的表示方式为:IPv6地址/前缀长度。其中,IPv6地址是前面所列出的任一形式,而前缀长度是一个十进制数,表示IPv6地址最左边多少位为地址前缀。
IPv6主要有三种类型的地址:单播地址、组播地址和任播地址。
l 单播地址:用来唯一标识一个接口,类似于IPv4的单播地址。发送到单播地址的数据报文将被传送给此地址所标识的接口。
l 组播地址:用来标识一组接口(通常这组接口属于不同的节点),类似于IPv4的组播地址。发送到组播地址的数据报文被传送给此地址所标识的所有接口。
l 任播地址:用来标识一组接口(通常这组接口属于不同的节点)。发送到任播地址的数据报文被传送给此地址所标识的一组接口中距离源节点最近(根据使用的路由协议进行度量)的一个接口。
& 说明:
IPv6中没有广播地址,广播地址的功能通过组播地址来实现。
IPv6地址类型是由地址前面几位(称为格式前缀)来指定的,主要地址类型与格式前缀的对应关系如表1-1所示。
地址类型 |
格式前缀(二进制) |
IPv6前缀标识 |
|
单播地址 |
未指定地址 |
00...0 (128 bits) |
::/128 |
环回地址 |
00...1 (128 bits) |
::1/128 |
|
链路本地地址 |
1111111010 |
FE80::/10 |
|
站点本地地址 |
1111111011 |
FEC0::/10 |
|
全球单播地址 |
其他形式 |
- |
|
组播地址 |
11111111 |
FF00::/8 |
|
任播地址 |
从单播地址空间中进行分配,使用单播地址的格式 |
IPv6单播地址的类型可有多种,包括全球单播地址、链路本地地址和站点本地地址等。
l 全球单播地址等同于IPv4公网地址,提供给网络服务提供商。这种地址类型的结构允许路由前缀的聚合,从而限制了全球路由表项的数量。
l 链路本地地址用于邻居发现协议和无状态自动配置中本地链路上节点之间的通信。使用链路本地地址作为源或目的地址的数据报文不会被转发到其他链路上。
l 站点本地地址与IPv4中的私有地址类似。使用站点本地地址作为源或目的地址的数据报文不会被转发到本站点(相当于一个私有网络)外的其它站点。
l 环回地址:单播地址0:0:0:0:0:0:0:1(简化表示为::1)称为环回地址,不能分配给任何物理接口。它的作用与在IPv4中的环回地址相同,即节点用来给自己发送IPv6报文。
l 未指定地址:地址::称为未指定地址,不能分配给任何节点。在节点获得有效的IPv6地址之前,可在发送的IPv6报文的源地址字段填入该地址,但不能作为IPv6报文中的目的地址。
表1-2所示的组播地址,是预留的特殊用途的组播地址。
表1-2 预留的IPv6组播地址列表
地址 |
应用 |
FF01::1 |
节点本地范围所有节点组播地址 |
FF02::1 |
链路本地范围所有节点组播地址 |
FF01::2 |
节点本地范围所有路由器组播地址 |
FF02::2 |
链路本地范围所有路由器组播地址 |
FF05::2 |
站点本地范围所有路由器组播地址 |
另外,还有一类组播地址:被请求节点(Solicited-Node)地址。该地址主要用于获取同一链路上邻居节点的链路层地址及实现重复地址检测。每一个单播或任播IPv6地址都有一个对应的被请求节点地址。其格式为:
FF02:0:0:0:0:1:FFXX:XXXX
其中,FF02:0:0:0:0:1:FF为104位固定格式;XX:XXXX为单播或任播IPv6地址的后24位。
IPv6单播地址中的接口标识符用来标识链路上的一个唯一的接口。目前IPv6单播地址基本上都要求接口标识符为64位。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格式的接口标识符的转换过程
IPv6邻居发现协议使用五种类型的ICMPv6消息,实现下面一些功能:地址解析、验证邻居是否可达、重复地址检测、路由器发现/前缀发现及地址自动配置、重定向等功能。
邻居发现协议使用的ICMPv6消息的类型及作用如表1-3所示。
表1-3 邻居发现协议使用的ICMPv6消息类型及作用
ICMPv6消息 |
作用 |
邻居请求消息NS(Neighbor Solicitation) |
获取邻居的链路层地址 |
验证邻居是否可达 |
|
进行重复地址检测 |
|
邻居通告消息NA(Neighbor Advertisement) |
对NS消息进行响应 |
节点在链路层变化时主动发送NA消息,向邻居节点通告本节点的变化信息 |
|
路由器请求消息RS(Router Solicitation) |
主机启动后,通过RS消息向路由器发出请求,请求前缀和其他配置信息,用于主机的自动配置 |
路由器通告消息RA(Router Advertisement) |
对RS消息进行响应 |
在没有抑制RA消息发布的条件下,路由器会周期性地发布RA消息,其中包括前缀和一些标志位的信息 |
|
重定向消息(Redirect) |
当满足一定的条件时,缺省网关通过向源主机发送重定向消息,使主机重新选择正确的下一跳地址进行后续报文的发送 |
邻居发现协议提供的主要功能如下:
获取同一链路上邻居节点的链路层地址(与IPv4的ARP功能相同),通过邻居请求消息NS和邻居通告消息NA实现。如图1-3所示,节点A要获取节点B的链路层地址。
(1) 节点A以组播方式发送NS消息。NS消息的源地址是发送NS消息的节点A的接口IPv6地址,目的地址是节点B的被请求节点组播地址,消息内容中包含了节点A的链路层地址。
(2) 节点B收到NS消息后,判断报文的目的地址是否为自己的IPv6地址对应的被请求节点组播地址。如果是,则以单播方式返回NA消息,其中包含了自己的链路层地址。
(3) 节点A从收到的NA消息中就可获取到节点B的链路层地址。之后双方即可通信。
在获取到邻居节点的链路层地址后,通过邻居请求消息NS和邻居通告消息NA可以验证邻居节点是否可达。
(1) 节点发送NS消息,其中目的地址是邻居节点的IPv6地址。
(2) 如果收到邻居的确认报文,则认为邻居可达;否则,认为邻居不可达。
当节点获取到一个IPv6地址后,需要使用重复地址检测功能确定该地址是否已被其他节点使用(与IPv4的免费ARP功能相似)。通过邻居请求消息NS和邻居通告消息NA实现,如图1-4所示。
(1) 节点A发送NS消息,NS消息的源地址是未指定地址::,目的地址是想要检测的IPv6地址对应的被请求节点组播地址,消息内容中包含了想要检测的IPv6地址。
(2) 如果节点B已经使用这个IPv6地址,则会返回NA消息。其中包含了自己的IPv6地址。
(3) 节点A收到节点B发来的NA消息,就知道该IPv6地址已被使用。反之,则说明该地址未被使用,节点A就可使用此IPv6地址。
路由器发现及前缀发现是指主机从收到的RA消息中获取邻居路由器及所在网络的前缀,以及其他配置参数。
地址无状态自动配置是指主机根据路由器发现/前缀发现所获取的信息,自动配置IPv6地址。
路由器发现/前缀发现通过路由器请求消息RS和路由器通告消息RA来实现,具体过程如下:
(1) 主机启动时,通过RS消息向路由器发出请求,请求前缀和其他配置信息,以便用于主机的配置。
(2) 路由器返回RA消息,其中包括前缀和一些标志位的信息(路由器也会周期性地发布RA消息)。
(3) 主机利用路由器返回的RA消息中的地址前缀及其他配置参数,自动配置接口的IPv6地址及其他信息。
当主机启动时,它的路由表中可能只有一条到缺省网关的缺省路由。当满足一定的条件时,缺省网关会向源主机发送ICMPv6重定向消息,通知主机选择更好的下一跳进行后续报文的发送(与IPv4的ICMP重定向消息的功能相同)。
设备在满足下列条件时会发送对主机重定向的ICMPv6重定向报文:
l 接收和转发数据报文的接口是同一接口;
l 被选择的路由本身没有被ICMPv6重定向报文创建或修改过;
l 被选择的路由不是缺省路由;
l 被转发的IPv6数据报文中不包含路由扩展头。
报文从源端到目的端的传输路径中所经过的链路可能具有不同的MTU。在IPv6中,当报文的长度大于链路的MTU时,报文的分片将在源端进行,从而减轻中间转发设备的处理压力,合理利用网络资源。
PMTU(Path MTU,路径MTU)发现机制的目的就是要找到从源端到目的端的路径上最小的MTU。PMTU发现的工作过程如图1-5所示。
图1-5 PMTU发现的工作过程
(1) 源端主机使用自己的MTU对报文进行分片,之后向目的主机发送报文。
(2) 中间转发设备接收到该报文进行转发时,如果发现转发报文的接口支持的MTU值小于报文长度,则会丢弃报文,并给源端返回一个ICMPv6差错报文,其中包含了转发失败的接口的MTU。
(3) 源主机收到该差错报文后,将使用报文中所携带的MTU重新对报文进行分片并发送。
(4) 如此反复,直到目的端主机收到这个报文,从而确定报文从源端到目的端路径中的最小MTU。
在IPv6网络中,通过支持IPv6的DNS(Domain Name System,域名系统)实现域名与IPv6地址的转换。IPv6 DNS与IPv4 DNS的区别只是将域名转换为IPv6地址,而非IPv4地址。
IPv6 DNS与IPv4 DNS相同,也分为静态域名解析和动态域名解析。两种域名解析的作用和实现方式也与IPv4 DNS一样。具体描述请参见“域名解析”模块的介绍。
通常,连接IPv4和IPv6网络的DNS服务器中既包含A记录(IPv4地址)也包含AAAA记录(IPv6地址),可以进行域名与IPv4地址的转换,也可以进行域名与IPv6地址的转换。此时,DNS服务器兼具IPv6 DNS和IPv4 DNS的功能。
与IPv6基础相关的协议规范有:
l RFC 1881:IPv6 Address Allocation Management
l RFC 1887:An Architecture for IPv6 Unicast Address Allocation
l RFC 1981:Path MTU Discovery for IP version 6
l RFC 2375:IPv6 Multicast Address Assignments
l RFC 2460:Internet Protocol, Version 6 (IPv6) Specification.
l RFC 2461:Neighbor Discovery for IP Version 6 (IPv6)
l RFC 2462:IPv6 Stateless Address Autoconfiguration
l RFC 2463:Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
l RFC 2464:Transmission of IPv6 Packets over Ethernet Networks
l RFC 2526:Reserved IPv6 Subnet Anycast Addresses
l RFC 3307:Allocation Guidelines for IPv6 Multicast Addresses
l RFC 3513:Internet Protocol Version 6 (IPv6) Addressing Architecture
l RFC 3596:DNS Extensions to Support IP Version 6
在进行IPv6的相关配置以前,必须先使能IPv6功能。否则即使在接口上配置了IPv6地址,仍无法转发IPv6的报文,造成IPv6网络无法互通。
表1-4 使能IPv6报文转发功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能IPv6功能 |
ipv6 |
必选 缺省情况下,IPv6功能处于关闭状态 |
IPv6站点本地地址和全球单播地址可以通过下面两种方式配置:
l 采用EUI-64格式形成:当配置采用EUI-64格式形成IPv6地址时,接口的IPv6地址的前缀是所配置的前缀,而接口标识符则由接口的链路层地址转化而来。
l 手工配置:用户手工配置IPv6站点本地地址或全球单播地址。
IPv6的链路本地地址可以通过两种方式获得:
l 自动生成:设备根据链路本地地址前缀(FE80::/64)及接口的链路层地址,自动为接口生成链路本地地址;
l 手动指定:用户手工配置IPv6链路本地地址。
表1-5 配置IPv6单播地址
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface interface-type interface-number |
- |
|
配置IPv6全球单播地址或站点本地地址 |
手工指定IPv6地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
二者必选其一 缺省情况下,接口没有配置站点本地地址和全球单播地址 |
采用EUI-64格式形成IPv6地址 |
ipv6 address ipv6-address/prefix-length eui-64 |
||
配置IPv6链路本地地址 |
配置自动生成链路本地地址 |
ipv6 address auto link-local |
可选 缺省情况下,当接口配置了IPv6站点本地地址或全球单播地址后,同时会自动生成链路本地地址 |
手工指定接口的链路本地地址 |
ipv6 address ipv6-address link-local |
& 说明:
l 当接口配置了IPv6站点本地地址或全球单播地址后,同时会自动生成链路本地地址。且与采用ipv6 address auto link-local命令生成的链路本地地址相同。此时如果手工指定接口的链路本地地址,则手工指定的有效。如果删除手工指定的链路本地地址,则接口的链路本地地址恢复为系统自动生成的地址。
l 配置链路本地地址时,手工指定方式的优先级高于自动生成方式。即如果先采用自动生成方式,之后手工指定,则手工指定的地址会覆盖自动生成的地址;如果先手工指定,之后采用自动生成的方式,则自动配置不生效,接口的链路本地地址仍是手工指定的。此时如果想要改为自动配置,则必须先删除手工指定的地址,再配置采用自动生成的方式。
l 只有使用ipv6 address auto link-local命令后,才能使用undo ipv6 address auto link-local命令。但如果此时已经配置了IPv6站点本地地址或全球单播地址,由于系统会自动生成链路本地地址,所以接口仍有链路本地地址。如果此时没有配置IPv6站点本地地址或全球单播地址,则接口没有链路本地地址。
l 在LoopBack接口视图下配置IPv6站点本地地址或全球单播地址时,只能配置128位的前缀长度。
将邻居节点的IPv6地址解析为链路层地址,可以通过邻居请求消息NS及邻居通告消息NA来动态实现,也可以通过手工静态配置实现。设备根据IPv6地址及三层接口号来唯一标识一个静态邻居表项。
用户可以配置三层接口对应IPv6地址、链路层地址。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置静态邻居表项 |
ipv6 neighbor ipv6-address mac-address { vlan-id port-type port-number | interface interface-type interface-number } |
必选 |
设备可以通过NS消息和NA消息来动态获取邻居节点的链路层地址。如果动态获取的邻居表过大,将可能导致设备的转发性能下降。为此,可以通过设置接口上允许动态学习的邻居的最大个数来进行限制。如果接口上动态学习的邻居个数达到所设置的最大值时,该接口将不再学习邻居信息。
表1-7 配置接口上允许动态学习的邻居的最大个数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口上允许动态学习的邻居的最大个数 |
ipv6 neighbors max-learning-num number |
可选 缺省情况下,接口上允许动态学习的邻居的最大个数为2560 |
用户可以根据实际情况,配置接口是否发送RA消息及发送RA消息的时间间隔,同时可以配置RA消息中的相关参数以通告给主机。当主机接收到RA消息后,就可以采用这些参数进行相应操作。可以配置的RA消息中的参数及含义如表1-8所示。
表1-8 RA消息中的参数及描述
参数 |
描述 |
跳数限制(Cur Hop Limit) |
主机在发送IPv6报文时,将使用该参数值填充IPv6报文头中的Hop Limit字段,同时该参数值也作为设备应答报文中的Hop Limit字段值 |
前缀信息(Prefix Information) |
在同一链路上的主机收到设备发布的前缀信息后,可以进行无状态自动配置等操作 |
被管理地址配置标志位(M flag) |
用于确定主机是否采用有状态自动配置获取IPv6地址 如果设置该标志位为1,主机将通过有状态自动配置(例如DHCP服务器)来获取IPv6地址;否则,将通过无状态自动配置获取IPv6地址,即根据自己的链路层地址及路由器发布的前缀信息生成IPv6地址 |
其他配置标志位(O flag) |
用于确定主机是否采用有状态自动配置获取除IPv6地址外的其他信息 如果设置其他配置标志位为1,主机将通过有状态自动配置(例如DHCP服务器)来获取除IPv6地址外的其他信息;否则,将通过无状态自动配置获取其他信息 |
路由器生存时间(Router Lifetime) |
用于设置发布RA消息的路由器作为主机的默认路由器的时间,主机根据接收到的RA消息中的路由器生存时间参数值,就可以确定是否将发布该RA消息的路由器作为默认路由器 |
邻居请求消息重传时间间隔(Retrans Timer) |
设备发送NS消息后,如果未在指定的时间间隔内收到响应,则会重新发送NS消息 |
保持邻居可达状态的时间(Reachable Time) |
当通过邻居可达性检测确认邻居可达后,在所设置的可达时间内,设备认为邻居可达;超过设置的时间后,如果需要向邻居发送报文,会重新确认邻居是否可达 |
& 说明:
在接口上配置的邻居请求消息重传时间间隔及保持邻居可达状态的时间,既可作为RA消息中的信息发布给主机,也可作为本接口发送邻居请求消息的时间间隔及保持邻居可达状态的时间。
表1-9 配置RA消息的相关参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置跳数限制 |
ipv6 nd hop-limit value |
可选 缺省情况下,跳数限制为64跳 |
进入接口视图 |
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倍;RA消息发布的最大实际间隔应该小于或等于RA消息中路由器的生存时间 |
配置RA消息中的前缀信息 |
ipv6 nd ra prefix { ipv6-address prefix-length | ipv6-address/prefix-length } valid-lifetime preferred-lifetime [ no-autoconfig | off-link ]* |
可选 缺省情况下,没有配置RA消息中的前缀信息,此时将使用发送RA消息的接口IPv6地址作为RA消息中的前缀信息 |
配置被管理地址配置标志位为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秒 RA消息中路由器的生存时间应该大于或等于RA消息的发布时间间隔 |
配置邻居请求消息重传时间间隔 |
ipv6 nd ns retrans-timer value |
可选 缺省情况下,接口发送NS消息的间间隔为1000毫秒,接口发布的RA消息中Retrans Timer字段的值为0 |
配置保持邻居可达状态的时间 |
ipv6 nd nud reachable-time value |
可选 缺省情况下,接口保持邻居可达状态的时间为30000毫秒,接口发布的RA消息中Reachable Timer字段的值为0 |
注意:
RA消息发布的最大间隔时间应该小于或等于RA消息中路由器的生存时间。
接口获得IPv6地址后,将发送邻居请求消息进行重复地址检测,如果在指定的时间内(通过ipv6 nd ns retrans-timer命令配置)没有收到响应,则继续发送邻居请求消息,当发送的次数达到所配置的次数后,仍未收到响应,则认为该地址可用。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置重复地址检测时发送邻居请求消息的次数 |
ipv6 nd dad attempts value |
可选 缺省情况下,重复地址检测时发送邻居请求报文的次数为1,当value值为0时,表示禁止重复地址检测 |
用户可以为指定的目的IPv6地址配置静态的PMTU值。当源端主机从接口发送报文时,将比较该接口的MTU与指定目的IPv6地址的静态PMTU,如果报文长度大于二者中的最小值,则采用此最小值对报文进行分片。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置指定IPv6地址对应的静态PMTU值 |
ipv6 pathmtu ipv6-address [ value ] |
必选 缺省情况下,没有配置静态PMTU值 |
通过“1.1.4 IPv6 PMTU发现”中的方法动态确定源端主机到目的端主机的PMTU后,源端主机将使用这个MTU值发送后续报文到目的端主机。当PMTU老化时间超时后,动态确定的PMTU值将会被删除,源端主机会通过PMTU机制重新确定发送报文的MTU值。
该配置对静态配置的PMTU不起作用。
表1-12 配置PMTU老化时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置PMTU老化时间 |
ipv6 pathmtu age age-time |
可选 缺省情况下,PMTU的老化时间是10分钟 |
可以配置的TCP6属性包括:
l synwait定时器:当发送SYN报文时,TCP6启动synwait定时器,如果synwait超时前未收到回应报文,则TCP6连接建立不成功。
l finwait定时器:当TCP6的连接状态为FIN_WAIT_2时,启动finwait定时器,如果在定时器超时前没有收到报文,则TCP6连接终止;如果收到FIN报文,则TCP6连接状态变为TIME_WAIT状态;如果收到非FIN报文,则从收到的最后一个非FIN报文开始重新计时,在超时后中止连接。
l TCP6的接收和发送缓冲区的大小。
表1-13 配置TCP6
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置TCP6的finwait定时器 |
tcp ipv6 timer fin-timeout wait-time |
可选 缺省情况下,finwait定时器的值为675秒 |
配置TCP6的synwait定时器 |
tcp ipv6 timer syn-timeout wait-time |
可选 缺省情况下,synwait定时器的值75秒 |
配置TCP6的接收和发送缓冲区大小 |
tcp ipv6 window size |
可选 缺省情况下,TCP6的接收和发送缓冲区大小为8KB |
在使能IPv6的FIB缓存功能后,当报文进行转发时将会查找FIB缓存,这样缩短了IP报文查找时间,从而提高了转发效率。
通过配置IPv6 FIB的负载分担方式,可以决定在转发报文时,对于等价路由如何选择。目前支持两种方式:
l 基于hash算法的方式:根据源IP地址、目的IP地址等信息,采用一定的算法,决定报文转发时将使用哪一条等价路由。根据算法可以保证源IP地址相同的报文在转发时使用同一条等价路由。
l 轮询方式:在转发报文时,轮流使用每条等价路由。
表1-14 配置IPv6 FIB转发功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能IPv6 FIB缓存功能 |
ipv6 fibcache |
必选 缺省情况下,IPv6 FIB缓存功能处于关闭状态 |
|
配置IPv6 FIB负载分担方式 |
配置采用基于hash算法的方式 |
ipv6 fib-loadbalance-type hash-based |
可选 缺省情况下,采用轮询方式,即在转发报文时,轮流使用每条等价路由 |
配置采用轮询方式 |
undo ipv6 fib-loadbalance-type hash-based |
如果网络中短时间内发送的ICMPv6差错报文过多,将可能导致网络拥塞。为了避免这种情况,可以控制在指定时间内发送ICMPv6差错报文的最大个数,目前采用令牌桶算法来实现。
用户可以设置令牌桶的容量,即令牌桶中可以容纳的令牌数;同时可以设置令牌桶的刷新周期,即每隔多长时间将令牌桶内的令牌个数刷新为所配置的容量。一个令牌表示允许发送一个ICMPv6差错报文,每当发送一个ICMPv6差错报文,则令牌桶中减少一个令牌。如果连续发送的ICMPv6差错报文超过了令牌桶的容量,则后续的ICMPv6差错报文将不能被发送出去,直到按照所设置的刷新频率将新的令牌放入令牌桶中。
表1-15 配置指定时间内发送ICMPv6差错报文的最大个数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置控制ICMPv6差错报文发送的令牌桶容量和刷新周期 |
ipv6 icmp-error { bucket bucket-size | ratelimit interval }* |
可选 缺省情况下,令牌桶容量为10,令牌桶的刷新周期为100毫秒,即每一个刷新周期内最多可以发送10个ICMPv6差错报文 |
可以通过下面的配置将主机名与IPv6地址相对应。当使用Telnet等应用时,可以直接使用主机名,由系统解析为IPv6地址。每个主机名最多可对应1个IPv6地址。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置主机名和对应的IPv6地址 |
ipv6 host hostname ipv6-address |
必选 |
如果用户需要使用动态域名解析功能,可以使用下面的命令使能动态域名解析功能,并配置域名服务器,这样才能将查询请求报文发送到正确的服务器进行解析。系统最多支持6个DNS服务器。
用户还可以配置域名后缀,以便实现只输入域名的部分字段,而由系统自动加上预先设置的后缀进行解析。系统最多支持10个域名后缀。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能动态域名解析功能 |
dns resolve |
必选 缺省情况下,动态域名解析功能处于关闭状态 |
配置IPv6的DNS服务器 |
dns server ipv6 ipv6-address [ interface-type interface-number ] |
必选 当DNS服务器的IPv6地址为链路本地地址时,需要指定参数interface-type和interface-number |
配置域名后缀 |
dns domain domain-name |
必选 缺省情况下,没有配置域名后缀,即只根据用户输入的域名信息进行解析 |
& 说明:
dns resolve和dns domain命令与IPv4 DNS的命令相同,详细信息请参见“域名解析”模块中的介绍。
完成上述配置后,在任意视图下执行display命令,可以显示配置IPv6后的运行情况。通过查看显示信息,用户可以验证配置的效果。
在用户视图下,执行reset命令可以清除相应的统计信息。
表1-18 IPv6显示和维护
操作 |
命令 |
显示DNS域名后缀信息 |
display dns domain [ dynamic ] |
显示IPv6动态域名缓存信息 |
display dns ipv6 dynamic-host |
显示DNS服务器的信息 |
display dns server [ dynamic ] |
显示FIB转发信息表项 |
display ipv6 fib [ ipv6-address ] |
显示FIB缓存中的路由总数 |
display ipv6 fibcache |
显示主机名与IPv6地址的对应关系 |
display ipv6 host |
显示接口的IPv6信息 |
display ipv6 interface [ interface-type interface-number | brief ] |
显示邻居信息 |
display ipv6 neighbors { ipv6-address | all | dynamic | interface interface-type interface-number | static | vlan vlan-id } [ | { begin | exclude | include } text ] |
显示符合指定条件的邻居表项的总个数 |
display ipv6 neighbors { all | dynamic | static | interface interface-type interface-number | vlan vlan-id } count |
显示IPv6的PMTU信息 |
display ipv6 pathmtu { ipv6-address | all | dynamic | static } |
显示指定套接字的相关信息 |
display ipv6 socket [ socktype socket-type ] [ task-id socket-id ] |
显示IPv6报文及ICMPv6报文的统计信息 |
display ipv6 statistics |
显示TCP6连接的统计信息 |
display tcp ipv6 statistics |
查看TCP6连接的状态信息 |
display tcp ipv6 status |
显示UDP6的统计信息 |
display udp ipv6 statistics |
清除IPv6动态域名缓存信息 |
reset dns ipv6 dynamic-host |
清除FIB缓存项 |
reset ipv6 fibcache |
清除IPv6邻居信息 |
reset ipv6 neighbors { all | dynamic | interface interface-type interface-number | static } |
清除PMTU值 |
reset ipv6 pathmtu { all | static | dynamic} |
清除IPv6报文统计信息 |
reset ipv6 statistics |
清除所有TCP6连接的统计信息 |
reset tcp ipv6 statistics |
清除所有UDP6统计信息 |
reset udp ipv6 statistics |
& 说明:
display dns domain和display dns server命令与IPv4 DNS的命令相同,详细信息请参见“域名解析”模块中的介绍。
两台交换机通过以太网端口直接相连,以太网端口属于VLAN2,给VLAN接口2配置不同类型的IPv6地址,验证它们之间的互通性。其中EUI-64前缀为2001::/64,SwitchA的全球单播网络地址为3001::1/64,SwitchB的全球单播网络地址为3001::2/64。
图1-6 IPv6地址配置组网图
(1) 配置SwitchA
# 使能交换机的IPv6转发功能。
<SwitchA> system-view
[SwitchA] ipv6
# 配置VLAN接口2的自动链路本地地址。
[SwitchA] interface Vlan-interface 2
[SwitchA-Vlan-interface2] ipv6 address auto link-local
# 配置VLAN接口2的EUI-64地址。
[SwitchA-Vlan-interface2] ipv6 address 2001::/64 eui-64
# 配置VLAN接口2的全球单播地址。
[SwitchA-Vlan-interface2] ipv6 address 3001::1/64
(2) 配置SwitchB
# 使能交换机的IPv6转发功能。
<SwitchB> system-view
[SwitchB] ipv6
# 配置VLAN接口2的自动链路本地地址。
[SwitchB] interface Vlan-interface 2
[SwitchB-Vlan-interface2] ipv6 address auto link-local
# 配置VLAN接口2的EUI-64地址。
[SwitchB-Vlan-interface2] ipv6 address 2001::/64 eui-64
# 配置VLAN接口2的全球单播地址。
[SwitchB-Vlan-interface2] ipv6 address 3001::2/64
# 显示SwitchA的接口信息。
[SwitchA-Vlan-interface2] 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:FE49:8048
Global unicast address(es):
2001::20F:E2FF:FE49:8048, subnet is 2001::/64
3001::1, subnet is 3001::/64
Joined group address(es):
FF02::1:FF00:1
FF02::1:FF49:8048
FF02::2
FF02::1
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
# 显示SwitchB的接口信息。
[SwitchB-Vlan-interface2] 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:1
Global unicast address(es):
2001::20F:E2FF:FE00:1, subnet is 2001::/64
3001::2, subnet is 3001::/64
Joined group address(es):
FF02::1:FF00:2
FF02::1:FF00:1
FF02::2
FF02::1
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
# 从SwitchA上分别Ping SwitchB的链路本地地址、EUI格式的地址及全球单播地址。如果配置正确,则三种类型的IPv6地址都可以Ping通。
注意:
在Ping链路本地地址时,需要使用-i参数,来指定链路本地地址的接口。
[SwitchA-Vlan-interface2] ping ipv6 FE80::20F:E2FF:FE00:1 -i Vlan-interface 2
PING FE80::20F:E2FF:FE00:1 : 56 data bytes, press CTRL_C to break
Reply from FE80::20F:E2FF:FE00:1
bytes=56 Sequence=1 hop limit=255 time = 80 ms
Reply from FE80::20F:E2FF:FE00:1
bytes=56 Sequence=2 hop limit=255 time = 60 ms
Reply from FE80::20F:E2FF:FE00:1
bytes=56 Sequence=3 hop limit=255 time = 60 ms
Reply from FE80::20F:E2FF:FE00:1
bytes=56 Sequence=4 hop limit=255 time = 70 ms
Reply from FE80::20F:E2FF:FE00:1
bytes=56 Sequence=5 hop limit=255 time = 60 ms
--- FE80::20F:E2FF:FE00:1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 60/66/80 ms
[SwitchA-Vlan-interface2] ping ipv6 2001::20F:E2FF:FE00:1
PING 2001::20F:E2FF:FE00:1 : 56 data bytes, press CTRL_C to break
Reply from 2001::20F:E2FF:FE00:1
bytes=56 Sequence=1 hop limit=255 time = 40 ms
Reply from 2001::20F:E2FF:FE00:1
bytes=56 Sequence=2 hop limit=255 time = 70 ms
Reply from 2001::20F:E2FF:FE00:1
bytes=56 Sequence=3 hop limit=255 time = 60 ms
Reply from 2001::20F:E2FF:FE00:1
bytes=56 Sequence=4 hop limit=255 time = 60 ms
Reply from 2001::20F:E2FF:FE00:1
bytes=56 Sequence=5 hop limit=255 time = 60 ms
--- 2001::20F:E2FF:FE00:1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 40/58/70 ms
[SwitchA-Vlan-interface2] ping ipv6 3001::2
PING 3001::2 : 56 data bytes, press CTRL_C to break
Reply from 3001::2
bytes=56 Sequence=1 hop limit=255 time = 50 ms
Reply from 3001::2
bytes=56 Sequence=2 hop limit=255 time = 60 ms
Reply from 3001::2
bytes=56 Sequence=3 hop limit=255 time = 60 ms
Reply from 3001::2
bytes=56 Sequence=4 hop limit=255 time = 70 ms
Reply from 3001::2
bytes=56 Sequence=5 hop limit=255 time = 60 ms
--- 3001::2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 50/60/70 ms
随着IPv6的发展,它的应用也越来越广泛。IPv6大部分应用基本上与IPv4相同,S3610&S5510系列以太网交换机支持的应用主要有:
l Ping
l Traceroute
l TFTP
l Telnet
ping ipv6命令是检验目的主机是否可达的首选测试方法,它首先向目的主机发送ICMPv6报文,然后记录响应报文返回的时间。关于ping命令的详细介绍请参见“系统调试与维护”模块。
操作 |
命令 |
说明 |
Ping IPv6操作 |
ping ipv6 [ -a source-ipv6 | -c count | -m interval | -s packet-size | -t timeout ]* remote-system [ -i interface-type interface-number ] |
必选 在任意视图下执行 |
注意:
当目的地址是链路本地地址时,必须指定-i参数。
Traceroute IPv6操作用于记录IPv6报文从源端到目的端所经过的路径,从而检查网络连接是否可用,并定位网络中故障的发生地点。
如图2-1所示,Traceroute IPv6的操作过程如下:
l 源端首先发送一个Hop Limit为1的IPv6数据报文(其中承载的UDP报文的UDP端口号是目的端的任何一个应用程序都不可能使用的端口号)。
l 收到该报文的第一个设备判断Hop Limit为1,则丢弃该报文,并返回一个ICMPv6超时错误消息,这样源端就可以得到该路径中第一个设备的地址。
l 之后源端发送一个Hop Limit为2的数据报文,同样第二跳设备也返回ICMPv6超时错误消息,这样就可以得到第二个设备的地址。
l 这个过程不断进行,直到该数据报文到达目的主机,因目的端没有应用程序使用该UDP端口,目的端返回一个端口不可达的ICMPv6错误消息。
l 当源端收到这个端口不可达的ICMPv6错误消息后,就知道报文已经到达了目的端,从而得到数据报文从源端到目的端所经历的路径。
操作 |
命令 |
说明 |
Traceroute IPv6操作 |
tracert ipv6 [ -f first-ttl | -m max-ttl | -p port | -q packet-num | -w timeout ]* remote-system |
必选 在任意视图下执行 |
IPv6支持TFTP(Trivial File Transfer Protocol,简单文件传输协议)应用。设备作为客户端可以从TFTP服务器下载文件,或向TFTP服务器上传文件。关于TFTP的详细介绍请参见“文件系统管理”模块。
启动TFTP服务,并指定待下载文件的路径或上传文件的存放路径。具体操作请参见TFTP服务器端的配置说明。
用户可以将事先已配置的ACL与TFTP应用相关联,通过IPv6 ACL配置规则可以允许或禁止对网络中特定TFTP服务器的使用。关于ACL的定义请参见“ACL”模块的相关内容。
表2-3 设置ACL与TFTP应用相关联
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置ACL与TFTP应用关联,允许或禁止用户对特定TFTP服务器的访问 |
tftp-server ipv6 acl acl-number |
必选 缺省情况下,没有ACL与TFTP应用关联 |
可以使用下面的命令将TFTP服务器上的指定源文件下载到本地或将本地的指定源文件上传到TFTP服务器。
表2-4 通过TFTP下载/上传文件
操作 |
命令 |
说明 |
通过TFTP下载文件 |
tftp ipv6 remote-system [ -i interface-type interface-number ] get source-filename [ destination-filename ] |
必选 在用户视图下执行 |
通过TFTP上传文件 |
tftp ipv6 remote-system [-i interface-type interface-number ] put source-filename [ destination-filename ] |
注意:
当目的地址是链路本地地址时,必须指定-i参数。
Telnet协议属于TCP/IP协议族的应用层协议,可以提供远程登录和虚拟终端功能。设备可以作为Telnet客户端,也可以作为Telnet服务器。
如下图所示,Host运行IPv6的Telnet客户端程序,与Device A建立IPv6 Telnet连接,此时Device A作为Telnet服务器端。如果Device A再通过Telnet连接到Device B上,则Device A作为Telnet客户端,Device B作为Telnet服务器端。
启动Telnet服务,并配置Telnet用户的认证方式,具体操作请参见“登录以太网交换机”模块的相关内容。
操作 |
命令 |
说明 |
在Telnet客户端上执行Telnet命令登录并管理其他设备 |
telnet ipv6 remote-system [ -i interface-type interface-number ] [ port-number ] |
必选 在用户视图下执行 |
注意:
当目的地址是链路本地地址时,必须指定-i参数。
完成上述配置后,在任意视图下执行display命令,可以显示使用Telnet方式登录的用户信息。通过查看显示信息,用户可以验证配置的效果。
操作 |
命令 |
显示用户界面的用户信息 |
display users [ all ] |
如图2-3所示,SWA、SWB和SWC分别代表三台交换机。在同一局域网中连接有Telnet和TFTP服务器,分别为交换机提供Telnet和TFTP服务。
图2-3 IPv6应用组网图
& 说明:
在进行下面的配置之前,需要在交换机和服务器的接口上配置IPv6地址,并保证交换机和服务器之间的路由可达。
# 在SWA上Ping SWB的IPv6地址。
<SWA> ping ipv6 3003::1
PING 3003::1 : 64 data bytes, press CTRL_C to break
Reply from 3003::1
bytes=56 Sequence=1 hop limit=64 time = 110 ms
Reply from 3003::1
bytes=56 Sequence=2 hop limit=64 time = 31 ms
Reply from 3003::1
bytes=56 Sequence=3 hop limit=64 time = 31 ms
Reply from 3003::1
bytes=56 Sequence=4 hop limit=64 time = 31 ms
Reply from 3003::1
bytes=56 Sequence=5 hop limit=64 time = 31 ms
--- 3003::1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 31/46/110 ms
# 跟踪SWA到SWC的IPv6路由。
<SWA> tracert ipv6 3002::1
traceroute to 3002::1 30 hops max,60 bytes packet
1 3003::1 30 ms 0 ms 0 ms
2 3002::1 10 ms 10 ms 0 ms
# SWC从TFTP服务器3001::3上下载文件。
<SWC> tftp ipv6 3001::3 get filetoget flash:/filegothere
.
File will be transferred in binary mode
Downloading file from remote tftp server, please wait....
TFTP: 13 bytes received in 0 second(s)
File downloaded successfully.
# SWA连接到Telnet服务器3001::2。
<SWA> telnet ipv6 3001::2
Trying 3001::2...
Press CTRL+K to abort
Connected to 3001::2 ...
Telnet Server>
# 建立SWA到SWC的Telnet连接。
<SWA> telnet ipv6 3002::1
Trying 3002::1 ...
Press CTRL+K to abort
Connected to 3002::1 ...
*************************************************************************
* Copyright(c) 2004-2006 Hangzhou H3C Technologies Co., Ltd. *
* Without the owner's prior written consent, *
* no decompiling or reverse-engineering shall be allowed. *
*************************************************************************
<SWC>
无法Ping通远端的目的地址,返回错误消息。
l 使用display ipv6 interface命令确认源地址和目的地址的接口是up状态,且源地址与目的地址之间的链路层协议是处于up状态。
l 使用display current-configuration命令检查是否使能了IPv6转发功能。如果没有,通过ipv6命令使能。
l 通过ping ipv6 -t timeout remote-system [ -i interface-type interface-number ]命令增大响应超时时间,从而判断是否由于所设置的响应超时时间过小导致Ping不通的现象。
进行Traceroute操作,跟踪不到路径信息。
l 判断是否可以Ping通目的主机。
l 如果可以Ping通,则查看Traceroute使用的UDP端口号在目的主机上是否有应用程序使用。如果有应用程序使用,则在tracert ipv6命令中指定一个不可达的目的UDP端口号。
进行TFTP操作时,无法完成下载和上传文件操作。
l 确认为TFTP服务器配置的ACL没有阻碍TFTP服务器的连接。
l 确认设备的文件系统是否可用,可以通过在用户视图下执行dir命令来检查。
l 确认设备和TFTP服务器之间路由可达。
进行Telnet操作时,无法登录Telnet服务器。
l 确认设备的Telnet服务已经启动。
l 确认设备和Telnet客户端之间路由可达。
随着Internet的日益膨胀,现有的IPv4地址已经十分紧缺,虽然使用分配临时IPv4地址或NAT(Network Address Translator,网络地址转换)等技术,在一定程度上缓解了IPv4地址不足的状况,但也增加了地址解析和处理方面的开销,同时导致某些高层应用失效,而且仍然无法回避IPv4地址即将被分配殆尽这个问题。采用128位地址长度的IPv6协议,彻底解决了IPv4地址不足的难题,并且在地址容量、安全性、网络管理、移动性以及服务质量等方面有明显的改进,是下一代互联网络协议采用的核心标准之一。IPv6与IPv4不兼容,但它同所有的TCP/IP协议族中的其他协议兼容,即IPv6完全可以取代IPv4。
在IPv6成为主流协议之前,首先使用IPv6协议栈的网络希望能与当前仍被IPv4支撑着的Internet进行正常通信,因此必须开发出IPv4和IPv6互通技术以保证IPv4能够平稳过渡到IPv6。此外,互通技术应该对信息传递做到高效无缝。国际上IETF组建了专门的NGTRANS工作组,开展对IPv4和IPv6过渡问题和高效无缝互通问题的研究。目前已经出现了多种过渡技术和互通方案,这些技术各有特点,用于解决不同过渡时期、不同环境的通信问题。
目前解决过渡问题的基本技术主要有3种:双协议栈(RFC2893),隧道技术(RFC2893)和NAT-PT(RFC2766)。
& 说明:
S3610&S5510系列以太网交换机支持双协议栈和隧道技术。
对于IPv6节点来说,兼容IPv4的最直接有效的办法就是保留一个完整的IPv4协议栈。同时支持IPv4协议和IPv6协议的网络节点即成为双协议栈节点。当双协议栈节点配置IPv4地址和IPv6地址后,就可以在相应接口上转发IPv4和IPv6报文。
当一个上层的应用支持IPv4和IPv6协议时,根据协议要求可以选用TCP或UDP作为传输层的协议,但在选择网络层协议时,它会优先选择IPv6协议栈。图3-1所示为IPv4单协议栈和IPv4/IPv6双协议栈的结构图。
图3-1 IPv4单协议栈与IPv4/IPv6双协议栈结构
表3-1 配置设备运行时支持IPv4/IPv6双协议栈模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
切换设备运行时支持的协议栈模式 |
switch-mode { default | dual-ipv4-ipv6 } |
必选 缺省情况下,设备运行时仅支持IPv4协议栈 |
& 说明:
l 执行switch-mode命令切换的协议栈只有在重启设备后才能生效。
l 在启动双协议栈功能之前,必须先将设备运行模式切换到IPv4/IPv6双协议栈模式,即执行switch-mode dual-ipv4-ipv6命令;否则,即使启动双协议栈,设备也不支持IPv6报文的转发。
为了实现双协议栈功能,必须先使能IPv6功能。否则即使配置了接口的IPv6地址,仍无法转发IPv6的报文。
表3-2 配置双协议栈
命令 |
说明 |
|||
进入系统视图 |
system-view |
- |
||
使能IPv6功能 |
ipv6 |
必选 缺省情况下, IPv6功能处于关闭状态 |
||
进入接口视图 |
interface interface-type interface-number |
- |
||
配置接口的IPv4地址 |
ip address ip-address { mask | mask-length } [ sub ] |
必选 缺省情况下,接口没有配置IPv4地址 |
||
配置接口的IPv6地址 |
配置IPv6全球单播地址或站点本地地址 |
手工指定IPv6地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
二者必选其一 缺省情况下,接口没有配置IPv6站点本地地址和全球单播地址 |
采用EUI-64格式形成IPv6地址 |
ipv6 address ipv6-address/prefix-length eui-64 |
|||
配置IPv6链路本地地址 |
配置自动生成链路本地地址 |
ipv6 address auto link-local |
可选 缺省情况下,当接口配置了IPv6站点本地地址或全球单播地址后,同时会自动生成链路本地地址 |
|
手工指定接口的链路本地地址 |
ipv6 address ipv6-address link-local |
在任意视图下执行display switch-mode命令,可以显示设备的运行模式设置。
表3-3 显示设备运行模式
操作 |
命令 |
显示当前及下一次设备启动后的系统运行模式及相关系统信息 |
display switch-mode |
Tunnel(隧道)技术是VPN(Virtual Private Network)中广泛采用的一种第三层隧道协议。Tunnel是一个虚拟的点对点的连接,在实际应用中仅支持点对点连接的虚拟接口为Tunnel接口。一个Tunnel提供了一条使封装的数据报文能够传输的通路,并且在一个Tunnel的两端可以分别对数据报进行封装及解封装。
S3610&S5510系列以太网交换机支持配置IPv6 in IPv4隧道。
IPv6 in IPv4隧道机制是将IPv6数据报文封装上IPv4的报文头,通过隧道(Tunnel)使IPv6报文穿越IPv4网络,实现隔离的IPv6网络的互通,如图4-1所示。
注意:
IPv6 in IPv4隧道两端的设备必须支持IPv4/IPv6双协议栈。
图4-1 IPv6 in IPv4隧道原理图
IPv6 in IPv4隧道对报文的处理过程如下:
l IPv6网络中的设备发送IPv6报文,到达隧道的源端设备;
l 隧道的源端设备根据路由表判定该报文要通过隧道进行转发,将会在IPv6报文前封装上IPv4的报文头,通过隧道的实际物理接口将报文转发出去;
l 封装报文通过隧道到达隧道目的端设备,目的端设备判断该封装报文的目的地是本设备后,将对报文进行解封装。
l 目的端设备根据解封装后的IPv6报文的目的地址将报文进行转发;如果目的地就是本设备,则将IPv6报文转给上层协议处理。
IPv6 in iPv4隧道可以建立在主机-主机、主机-设备、设备-主机、设备-设备之间。隧道的终点可能是IPv6报文的最终目的地,也可能需要进一步转发。
根据隧道终点的IPv4地址的获取方式不同,隧道分为“配置隧道”及“自动隧道”。
l 如果隧道的终点不是IPv6报文的最终目的地,当IPv6报文通过隧道到达隧道终点后,隧道终点设备(通常为路由器)会对封装的IPv6报文进行解封装,并转发IPv6报文到最终目的地。在这种情况下,不能从IPv6报文的目的地址中自动获取到隧道终点的IPv4地址,需要进行手工配置。这样的隧道即为“配置隧道”。
l 如果隧道的终点就是IPv6报文的最终目的地,则可以采用内嵌IPv4地址的特殊IPv6地址形式,实现从IPv6报文的目的地址中自动获取隧道终点的IPv4地址。这样的隧道即为“自动隧道”。
根据对IPv6报文的封装方式的不同,IPv6 in IPv4隧道分为以下几种模式:
l 手动隧道
l IPv4兼容IPv6自动隧道
l 6to4隧道
l ISATAP(Intra-Site Automatic Tunnel Addressing Protocol,站点内自动隧道寻址协议)隧道
在上面列出的隧道模式中,手动隧道为配置隧道;IPv4兼容IPv6自动隧道、6to4隧道及ISATAP隧道为自动隧道。
手动隧道是点到点之间的链路,一条链路就是一个单独的隧道。主要用于边缘路由器-边缘路由器或主机-边缘路由器之间定期安全通信的稳定连接,可实现与远端IPv6网络的连接。
IPv4兼容IPv6自动隧道是点到多点的链路。隧道两端采用特殊的IPv6地址:IPv4兼容IPv6地址,其格式为:0:0:0:0:0:0:a.b.c.d/96,其中a.b.c.d是IPv4地址。通过这个嵌入的IPv4地址可以自动确定隧道的终点,使IPv6隧道的建立非常方便。但由于它必须使用IPv4兼容IPv6地址,仍依赖于IPv4地址,在使用时有一定的局限性。
6to4隧道是点到多点的自动隧道,主要用于将多个IPv6孤岛通过IPv4网络连接到IPv6网络。6to4隧道通过IPv6报文的目的地址中嵌入的IPv4地址,可以自动获取隧道的终点。6to4隧道采用特殊的地址:6to4地址,其格式为:2002:abcd:efgh:子网号::接口ID/64,其中abcd:efgh表示该6to4隧道对应的32位IPv4源地址,用16进制表示(如1.1.1.1可以表示为0101:0101)。通过这个嵌入的IPv4地址可以自动确定隧道的终点,使隧道的建立非常方便。
由于6to4地址的64位地址前缀中的16位子网号可以由用户自定义,前缀中的前48位已由固定数值、隧道起点或终点设备的IPv4地址确定,使IPv6报文通过隧道进行转发成为可能。6to4隧道可以实现IPv6网络的互连,克服了IPv4兼容IPv6自动隧道使用的局限性。
随着IPv6技术的推广,现有的IPv4网络中将会出现越来越多的IPv6主机,ISATAP隧道技术为这种应用提供了一个较好的解决方案。ISATAP隧道是点到点的自动隧道技术,通过在IPv6报文的目的地址中嵌入的IPv4地址,可以自动获取隧道的终点。使用ISATAP隧道时,IPv6报文的目的地址和隧道接口的IPv6地址都要采用特殊的地址:ISATAP地址。ISATAP地址格式为:Prefix(64bit):0:5EFE:ip-address。ip-address形式为a.b.c.d 或者abcd:efgh,其中abcd:efgh表示32位IPv4源地址。通过这个嵌入的IPv4地址就可以自动建立隧道,完成IPv6报文的传送。ISATAP隧道主要用于在IPv4网络中IPv6路由器-IPv6路由器、主机-路由器的连接。
对于到达本机的隧道报文,如果报文的源IP地址与快速终结子网地址匹配,则将此隧道报文送到IPv6引擎进行转发或者上送CPU进行处理。
如果是需要转发的报文,则由IPv6引擎去掉隧道报文的IP封装,取得原始入隧道IPv6报文后直接进行转发。
快速终结功能支持的隧道类型为IPv6 in IPv4隧道,分为以下两种情况:
l 对于配置隧道(如手动隧道),当使能快速终结后,系统自动将隧道目的地址作为快速终结子网地址,掩码为255.255.255.255,因此没有用于指定快速终结子网和掩码的expediting subnet命令。
l 对于自动隧道(如IPv4兼容IPv6自动隧道、6to4隧道、ISATAP隧道),在配置了expediting enable命令后,需要配置expediting subnet命令指定快速终结子网和掩码。
当用户需要在手动隧道上运行OSPFv3等动态路由协议,或者需要Ping通隧道接口上配置的链路本地地址,以及使用ISATAP隧道时自动获取全局IPv6地址时,必须使能快速终结功能。
表4-1 隧道技术配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置IPv6 in IPv4隧道 |
配置手动隧道 |
可选 根据具体组网应用配置 |
|
配置IPv4兼容IPv6自动隧道 |
可选 根据具体组网应用配置 |
||
配置6to4隧道 |
可选 根据具体组网应用配置 |
||
配置ISATAP隧道 |
可选 根据具体组网应用配置 |
设备上的接口(如VLAN接口,Loopback接口)已经配置IP地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
表4-2 配置手动隧道
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能IPv6报文转发功能 |
ipv6 |
必选 缺省情况下,IPv6报文转发功能处于关闭状态 |
|
创建Tunnel接口并进入Tunnel接口视图 |
interface Tunnel number |
必选 缺省情况下,设备上无Tunnel接口 |
|
配置Tunnel接口的IPv6地址 |
配置IPv6全球单播地址或站点本地地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
二者必选其一 缺省情况下,Tunnel接口上没有配置IPv6全球单播地址或站点本地地址 |
ipv6 address ipv6-address/prefix-length eui-64 |
|||
配置IPv6链路本地地址 |
ipv6 address auto link-local |
可选 缺省情况下,当接口配置了IPv6站点本地地址或全球单播地址后,同时会自动生成链路本地地址 |
|
ipv6 address ipv6-address link-local |
|||
配置为手动隧道模式 |
tunnel-protocol ipv6-ipv4 |
可选 缺省情况下,为手动隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
|
配置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有配置源端地址和接口 |
|
配置Tunnel接口的目的端地址 |
destination ip-address |
必选 缺省情况下,Tunnel接口上没有配置目的端地址 |
|
配置Tunnel接口引用的业务环回组ID |
aggregation-group aggregation-group-id |
必选 缺省情况下,隧道未引用任何业务环回组 关于业务环回组的配置请参见“端口相关配置”模块中的端口汇聚部分 |
|
使能快速终结功能 |
expediting enable |
可选 缺省情况下,未使能快速终结功能 |
注意:
l 以上各项Tunnel接口下进行的功能特性配置,在删除Tunnel接口后,该接口上的所有配置也将被删除。
l 如果隧道两端Tunnel接口的地址不在同一个网段,则必须配置通过隧道到达对端的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,也可以配置动态路由,详细情况请参见本手册中的“IPv4路由”或“IPv6路由”模块。
l 配置静态路由时,需要手动配置到达目的地址(不是隧道的终点IPv4地址,而是封装前报文的目的IPv6地址)的路由,并将下一跳配置为隧道本端的Tunnel接口号或者网络地址。在隧道的两端都要进行此项配置。
l 配置动态路由时,需要在隧道两端的Tunnel接口使能动态路由协议。在隧道的两端都要进行此项配置。
两个IPv6网络要通过SwitchA和SwitchB之间的手动隧道相连。如图4-3,SwitchA的Vlan-interface100和SwitchB的Vlan-interface100可以正常通讯,IPv4报文路由可达。
下面的例子配置SwitchA和SwitchB之间的手动隧道。需要手动指定隧道的起点和终点地址。
(1) 配置交换机SwitchA:
# 配置接口Vlan-interface100的地址。
<SwitchA> system-view
[SwitchA] interface Vlan-interface 100
[SwitchA-Vlan-interface100] ip address 192.168.100.1 255.255.255.0
[SwitchA-Vlan-interface100] quit
# 使能IPv6转发功能。
[SwitchA] ipv6
# 配置业务环回组。需要注意的是,将端口加入到业务环回组时,需要在端口上关闭STP功能。
[SwitchA] link-aggregation group 1 mode manual
[SwitchA] link-aggregation group 1 service-type tunnel
[SwitchA] interface Ethernet 1/0/1
[SwitchA-Ethernet1/0/1] stp disable
[SwitchA-Ethernet1/0/1] port link-aggregation group 1
[SwitchA-Ethernet1/0/1] quit
# 配置手动隧道。
[SwitchA] interface Tunnel 0
[SwitchA-Tunnel0] ipv6 address 3001::1/64
[SwitchA-Tunnel0] source Vlan-interface 100
[SwitchA-Tunnel0] destination 192.168.50.1
[SwitchA-Tunnel0] tunnel-protocol ipv6-ipv4
# 在Tunnel接口视图下配置隧道引用业务环回组1。
[SwitchA-Tunnel0] aggregation-group 1
(2) 配置交换机SwitchB:
# 配置接口Vlan-interface100的地址。
<SwitchB> system-view
[SwitchB] interface Vlan-interface 100
[SwitchB-Vlan-interface100] ip address 192.168.50.1 255.255.255.0
[SwitchB-Vlan-interface100] quit
# 使能IPv6转发功能。
[SwitchB] ipv6
# 配置业务环回组。需要注意的是,将端口加入到业务环回组时,需要在端口上关闭STP功能。
[SwitchB] link-aggregation group 2 mode manual
[SwitchB] link-aggregation group 2 service-type tunnel
[SwitchB] interface Ethernet 1/0/1
[SwitchB-Ethernet1/0/1] stp disable
[SwitchB-Ethernet1/0/1] port link-aggregation group 2
[SwitchB-Ethernet1/0/1] quit
# 配置手动隧道。
[SwitchB] interface Tunnel 0
[SwitchB-Tunnel0] ipv6 address 3001::2/64
[SwitchB-Tunnel0] source Vlan-interface 100
[SwitchB-Tunnel0] destination 192.168.100.1
[SwitchB-Tunnel0] tunnel-protocol ipv6-ipv4
# 在Tunnel接口视图下配置隧道引用业务环回组2。
[SwitchB-Tunnel0] aggregation-group 2
完成以上配置之后,从其中一台交换机上可以Ping通对端Tunnel接口上的IPv6地址。
设备上的接口(如VLAN接口,Loopback接口)已经配置IP地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
表4-3 配置IPv4兼容IPv6自动隧道
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能IPv6报文转发功能 |
ipv6 |
必选 缺省情况下,IPv6报文转发功能处于关闭状态 |
|
创建Tunnel接口并进入Tunnel接口视图 |
interface Tunnel number |
必选 缺省情况下,设备上无Tunnel接口 |
|
配置Tunnel接口的IPv6地址 |
配置IPv6全球单播地址或站点本地地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
二者必选其一 缺省情况下,Tunnel接口上没有配置IPv6全球单播地址或站点本地地址 |
ipv6 address ipv6-address/prefix-length eui-64 |
|||
配置IPv6链路本地地址 |
ipv6 address auto link-local |
可选 缺省情况下,当接口配置了IPv6站点本地地址或全球单播地址后,同时会自动生成链路本地地址 |
|
ipv6 address ipv6-address link-local |
|||
配置为IPv4兼容IPv6自动隧道模式 |
tunnel-protocol ipv6-ipv4 auto-tunnel |
必选 缺省情况下,为手动隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
|
配置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有配置源端地址和接口 |
|
配置Tunnel接口引用的业务环回组ID |
aggregation-group aggregation-group-id |
必选 缺省情况下,隧道未引用任何业务环回组 关于业务环回组的配置请参见“端口相关配置”模块中的端口汇聚部分 |
|
使能快速终结功能 |
expediting enable |
可选 缺省情况下,未使能快速终结功能 |
|
配置快速终结子网地址和掩码 |
expediting subnet ip-address mask |
可选 缺省情况下,未配置快速终结子网 |
注意:
l 同一隧道起点只能创建一条自动隧道。
l IPv4兼容IPv6自动隧道不需要配置目的地址。
l 如果隧道两端Tunnel接口的地址不在同一个网段,则必须配置通过隧道到达对端的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,详细情况请参见本手册中的“IPv4路由”或“IPv6路由”模块。
l 配置静态路由时,需要手动配置到达目的地址(不是隧道的终点IPv4地址,而是封装前报文的目的IPv6地址)的路由,并将下一跳配置为隧道本端的Tunnel接口号或者网络地址。在隧道的两端都要进行此项配置。
SwitchA和SwitchB之间是IPv4网络,要求两台双栈交换机通过自动隧道建立IPv6连接。
图4-4 IPv4兼容IPv6自动隧道组网图
下面的例子配置SwitchA和SwitchB之间的IPv4兼容IPv6自动隧道。隧道的终点无需手动指定,通过IPv4兼容IPv6地址中嵌入的IPv4地址自动获得。
(1) SwitchA的配置
# 使能IPv6转发功能。
<SwitchA> system-view
[SwitchA] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchA] interface Vlan-interface 100
[SwitchA-Vlan-interface100] ip address 2.1.1.1 255.0.0.0
[SwitchA-Vlan-interface100] quit
# 配置业务环回组。需要注意的是,将端口加入到业务环回组时,需要在端口上关闭STP功能。
[SwitchA] link-aggregation group 1 mode manual
[SwitchA] link-aggregation group 1 service-type tunnel
[SwitchA] interface Ethernet 1/0/1
[SwitchA-Ethernet1/0/1] stp disable
[SwitchA-Ethernet1/0/1] port link-aggregation group 1
[SwitchA-Ethernet1/0/1] quit
# 配置IPv4兼容IPv6自动隧道。
[SwitchA] interface Tunnel 0
[SwitchA-Tunnel0] ipv6 address ::2.1.1.1/96
[SwitchA-Tunnel0] source Vlan-interface 100
[SwitchA-Tunnel0] tunnel-protocol ipv6-ipv4 auto-tunnel
# 在Tunnel接口视图下配置隧道引用业务环回组1。
[SwitchA-Tunnel0] aggregation-group 1
(2) SwitchB的配置
# 使能IPv6转发功能。
<SwitchB> system-view
[SwitchB] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchB] interface Vlan-interface 100
[SwitchB-Vlan-interface100] ip address 2.1.1.2 255.0.0.0
[SwitchB-Vlan-interface100] quit
# 配置业务环回组。需要注意的是,将端口加入到业务环回组时,需要在端口上关闭STP功能。
[SwitchB] link-aggregation group 2 mode manual
[SwitchB] link-aggregation group 2 service-type tunnel
[SwitchB] interface Ethernet 1/0/1
[SwitchB-Ethernet1/0/1] stp disable
[SwitchB-Ethernet1/0/1] port link-aggregation group 2
[SwitchB-Ethernet1/0/1] quit
# 配置IPv4兼容IPv6自动隧道。
[SwitchB] interface Tunnel 0
[SwitchB-Tunnel0] ipv6 address ::2.1.1.2/96
[SwitchB-Tunnel0] source Vlan-interface 100
[SwitchB-Tunnel0] tunnel-protocol ipv6-ipv4 auto-tunnel
# 在Tunnel接口视图下配置隧道引用业务环回组2。
[SwitchB-Tunnel0] aggregation-group 2
完成以上配置之后,从其中一台交换机上可以Ping通对端Tunnel接口上的IPv4兼容IPv6地址。
# 从SwitchA可以Ping通对端的IPv4兼容IPv6地址。
[SwitchA] ping ipv6 ::2.1.1.2
PING ::2.1.1.2 : 56 data bytes, press CTRL_C to break
Reply from ::2.1.1.2
bytes=56 Sequence=1 hop limit=255 time = 219 ms
Reply from ::2.1.1.2
bytes=56 Sequence=2 hop limit=255 time = 15 ms
Reply from ::2.1.1.2
bytes=56 Sequence=3 hop limit=255 time = 31 ms
Reply from ::2.1.1.2
bytes=56 Sequence=4 hop limit=255 time = 31 ms
Reply from ::2.1.1.2
bytes=56 Sequence=5 hop limit=255 time = 32 ms
--- ::2.1.1.2 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 15/65/219 ms
设备上的接口(如VLAN接口,Loopback接口)已经配置IP地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
表4-4 配置6to4隧道
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能IPv6报文转发功能 |
ipv6 |
必选 缺省情况下, IPv6报文转发功能处于关闭 |
|
创建Tunnel接口并进入Tunnel接口视图 |
interface Tunnel number |
必选 缺省情况下,设备上无Tunnel接口 |
|
配置Tunnel接口的IPv6地址 |
配置IPv6全球单播地址或站点本地地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
二者必选其一 缺省情况下,Tunnel接口上没有配置IPv6全球单播地址或站点本地地址 |
ipv6 address ipv6-address/prefix-length eui-64 |
|||
配置IPv6链路本地地址 |
ipv6 address auto link-local |
可选 缺省情况下,当接口配置了IPv6站点本地地址或全球单播地址后,同时会自动生成链路本地地址 |
|
ipv6 address ipv6-address link-local |
|||
配置为6to4隧道模式 |
tunnel-protocol ipv6-ipv4 6to4 |
必选 缺省情况下,为手动隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
|
配置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有配置源端地址和接口 |
|
配置Tunnel接口引用的业务环回组ID |
aggregation-group aggregation-group-id |
必选 缺省情况下,隧道未引用任何业务环回组 关于业务环回组的配置请参见“端口相关配置”模块中的端口汇聚部分 |
|
使能快速终结功能 |
expediting enable |
可选 缺省情况下,未使能快速终结功能 |
|
配置快速终结子网地址和掩码 |
expediting subnet ip-address mask |
可选 缺省情况下,未配置快速终结子网 |
注意:
l 同一隧道起点只能创建一条自动隧道。
l 自动隧道不需要配置目的地址,因为自动隧道的目的地址可以通过IPv4兼容IPv6地址中嵌入的IPv4地址自动获得。
l 如果隧道两端Tunnel接口的地址不在同一个网段,则必须配置通过隧道到达对端的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,详细情况请参见本手册中的“IPv4路由”或“IPv6路由”模块。
l 配置静态路由时,需要手动配置到达目的地址(不是隧道的终点IPv4地址,而是封装前报文的目的IPv6地址)的路由,并将下一跳配置为隧道本端的Tunnel接口号或者网络地址。在隧道的两端都要进行此项配置。
IPv6孤岛网络通过在IPv4网络中建立6to4隧道进行互联。
图4-5 6to4隧道组网图
下面的例子在隔离的IPv6网络边缘交换机上配置了6to4隧道。IPv4地址2.1.1.1转换成IPv6地址后使用前缀2002:0201:0101::/64。配置的静态路由将所有发往IPv6前缀2002::/16的流量定向到自动隧道的Tunnel接口。
(1) 交换机SwitchA的配置
# 使能IPv6转发功能。
<SwitchA> system-view
[SwitchA] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchA] interface Vlan-interface 100
[SwitchA-Vlan-interface100] ip address 2.1.1.1 24
[SwitchA-Vlan-interface100] quit
# 配置接口Vlan-interface100的地址到SwitchB上接口Vlan-interface100的路由(此处的静态路由下一跳地址以[nexthop]代替,真实组网时请配置实际的下一跳地址)。
[SwitchA] ip route-static 5.1.1.1 24 [nexthop]
# 配置接口Vlan-interface101的地址。
[SwitchA] interface Vlan-interface 101
[SwitchA-Vlan-interface101] ipv6 address 2002:0201:0101:1::1/64
[SwitchA-Vlan-interface101] quit
# 配置业务环回组。需要注意的是,将端口加入到业务环回组时,需要在端口上关闭STP功能。
[SwitchA] link-aggregation group 1 mode manual
[SwitchA] link-aggregation group 1 service-type tunnel
[SwitchA] interface Ethernet 1/0/1
[SwitchA-Ethernet1/0/1] stp disable
[SwitchA-Ethernet1/0/1] port link-aggregation group 1
[SwitchA-Ethernet1/0/1] quit
# 配置6to4隧道。
[SwitchA] interface Tunnel 0
[SwitchA-Tunnel0] ipv6 address 2002:0201:0101::1/64
[SwitchA-Tunnel0] source Vlan-interface 100
[SwitchA-Tunnel0] tunnel-protocol ipv6-ipv4 6to4
# 在Tunnel接口视图下配置隧道引用业务环回组1。
[SwitchA-Tunnel0] aggregation-group 1
[SwitchA-Tunnel0] quit
# 配置到目的地址2002::/16,下一跳为Tunnel接口的静态路由。
[SwitchA] ipv6 route-static 2002:: 16 Tunnel 0
(2) 交换机SwitchB的配置
# 使能IPv6转发功能。
<SwitchB> system-view
[SwitchB] ipv6
# 配置接口Vlan-interface100的地址。
[SwitchB] interface Vlan-interface 100
[SwitchB-Vlan-interface100] ip address 5.1.1.1 24
[SwitchB-Vlan-interface100] quit
# 配置接口Vlan-interface100的地址到SwitchA上接口Vlan-interface100的路由(此处的静态路由下一跳地址以[nexthop]代替,真实组网时请配置实际的下一跳地址)。
[SwitchB] ip route-static 2.1.1.1 24 [nexthop]
# 配置接口Vlan-interface101的地址。
[SwitchB] interface Vlan-interface 101
[SwitchB-Vlan-interface101] ipv6 address 2002:0501:0101:1::1/64
[SwitchB-Vlan-interface101] quit
# 配置业务环回组。需要注意的是,将端口加入到业务环回组时,需要在端口上关闭STP功能。
[SwitchB] link-aggregation group 2 mode manual
[SwitchB] link-aggregation group 2 service-type tunnel
[SwitchB] interface Ethernet 1/0/1
[SwitchB-Ethernet1/0/1] stp disable
[SwitchB-Ethernet1/0/1] port link-aggregation group 2
[SwitchB-Ethernet1/0/1] quit
# 配置6to4隧道。
[SwitchB] interface Tunnel 0
[SwitchB-Tunnel0] ipv6 address 2002:0501:0101::1/64
[SwitchB-Tunnel0] source Vlan-interface 100
[SwitchB-Tunnel0] tunnel-protocol ipv6-ipv4 6to4
# 在Tunnel接口视图下配置隧道引用业务环回组2。
[SwitchB-Tunnel0] aggregation-group 2
[SwitchB-Tunnel0] quit
# 配置到目的地址2002::/16,下一跳为Tunnel接口的静态路由。
[SwitchB] ipv6 route-static 2002:: 16 Tunnel 0
完成以上配置之后,PC1与PC2可以互相Ping通。
设备上的接口(如VLAN接口,Loopback接口)已经配置IP地址,能够进行正常通讯。这些接口将作为Tunnel接口的源接口,以保证隧道目的地址路由可达。
表4-5 配置ISATAP隧道
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
使能IPv6报文转发功能 |
ipv6 |
必选 缺省情况下,IPv6报文转发功能处于关闭状态 |
|
创建Tunnel接口并进入Tunnel接口视图 |
interface Tunnel number |
必选 缺省情况下,设备上无Tunnel接口 |
|
配置Tunnel接口的IPv6地址 |
配置IPv6全球单播地址或站点本地地址 |
ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length } |
二者必选其一 缺省情况下,Tunnel接口上没有配置IPv6全球单播地址或站点本地地址 |
ipv6 address ipv6-address/prefix-length eui-64 |
|||
配置IPv6链路本地地址 |
ipv6 address auto link-local |
可选 缺省情况下,当接口配置了IPv6站点本地地址或全球单播地址后,同时会自动生成链路本地地址 |
|
ipv6 address ipv6-address link-local |
|||
配置为ISATAP隧道模式 |
tunnel-protocol ipv6-ipv4 isatap |
必选 缺省情况下,为手动隧道模式 在隧道的两端应配置相同的隧道模式,否则可能造成报文传输失败 |
|
配置Tunnel接口的源端地址或接口 |
source { ip-address | interface-type interface-number } |
必选 缺省情况下,Tunnel接口上没有配置源端地址和接口 |
|
配置Tunnel接口引用的业务环回组ID |
aggregation-group aggregation-group-id |
必选 缺省情况下,隧道未引用任何业务环回组 关于业务环回组的配置请参见“端口相关配置”模块中的端口汇聚部分 |
|
使能快速终结功能 |
expediting enable |
可选 缺省情况下,未使能快速终结功能 |
|
配置快速终结子网地址和掩码 |
expediting subnet ip-address mask |
可选 缺省情况下,未配置快速终结子网 |
注意:
l 如果隧道两端Tunnel接口的地址不在同一个网段,则必须配置通过隧道到达对端的转发路由,以便需要进行封装的报文能正常转发。用户可以配置静态路由,详细情况请参见本手册中的“IPv4路由”或“IPv6路由”模块。
l 配置静态路由时,需要手动配置到达目的地址(不是隧道的终点IPv4地址,而是封装前报文的目的IPv6地址)的路由,并将下一跳配置为隧道本端的Tunnel接口号或者网络地址。在隧道的两端都要进行此项配置。
隧道的目的地址是ISATAP地址,要求将IPv4网络中的IPv6主机通过ISATAP隧道接入到IPv6网络。
图4-6 ISATAP隧道组网图
下面的例子在交换机与ISATAP主机上配置了ISATAP隧道,允许把单独的ISATAP主机接入到IPv6网络中。
(1) 交换机的配置
# 使能IPv6转发功能。
<Sysname> system-view
[Sysname] ipv6
# 配置各接口地址。
[Sysname] interface Vlan-interface 100
[Sysname-Vlan-interface100] ipv6 address 3001::1/64
[Sysname-Vlan-interface100] quit
[Sysname] interface Vlan-interface 101
[Sysname-Vlan-interface101] ip address 2.1.1.1 255.0.0.0
[Sysname-Vlan-interface100] quit
# 配置业务环回组。需要注意的是,将端口加入到业务环回组时,需要在端口上关闭STP功能。
[Sysname] link-aggregation group 1 mode manual
[Sysname] link-aggregation group 1 service-type tunnel
[Sysname] interface Ethernet 1/0/1
[Sysname-Ethernet1/0/1] stp disable
[Sysname-Ethernet1/0/1] port link-aggregation group 1
[Sysname-Ethernet1/0/1] quit
# 配置ISATAP隧道。
[Sysname] interface Tunnel 0
[Sysname-Tunnel0] ipv6 address 2001::1/64 eui-64
[Sysname-Tunnel0] source Vlan-interface 101
[Sysname-Tunnel0] tunnel-protocol ipv6-ipv4 isatap
# 在Tunnel接口视图下配置隧道引用业务环回组1。
[Sysname-Tunnel0] aggregation-group 1
# 取消对RA消息发布的抑制,使主机可以通过交换机发布的RA消息获取地址前缀等信息。
[Sysname-Tunnel0] undo ipv6 nd ra halt
(2) ISATAP主机的配置
ISATAP主机上的具体配置与主机的操作系统有关,下面仅以Windows XP操作系统为例进行说明。
# 在Windows XP上,ISATAP接口通常为接口2,只要在该接口上配置ISATAP路由器的IPv4地址即可完成主机侧的配置。首先查看ISATAP接口的信息:
C:\> ipv6 if 2
Interface 2: Automatic Tunneling Pseudo-Interface
{48FCE3FC-EC30-E50E-F1A7-71172AEEE3AE}
does not use Neighbor Discovery
does not use Router Discovery
routing preference 1
EUI-64 embedded IPv4 address: 0.0.0.0
router link-layer address: 0.0.0.0
preferred link-local fe80::5efe:2.1.1.2, life infinite
link MTU 1280 (true link MTU 65515)
current hop limit 128
reachable time 42500ms (base 30000ms)
retransmission interval 1000ms
DAD transmits 0
# 以上信息表明接口2自动生成了一个ISATAP格式的link-local地址(fe80::5efe:2.1.1.2)。我们需要配置这个接口上的ISATAP路由器的IPv4地址:
C:\> ipv6 rlu 2 2.1.1.1
# 配置完成之后,再次查看这个ISATAP接口的信息:
C:\> ipv6 if 2
Interface 2: Automatic Tunneling Pseudo-Interface
{48FCE3FC-EC30-E50E-F1A7-71172AEEE3AE}
does not use Neighbor Discovery
uses Router Discovery
routing preference 1
EUI-64 embedded IPv4 address: 2.1.1.2
router link-layer address: 2.1.1.1
preferred global 2001::5efe:2.1.1.2, life 29d23h59m46s/6d23h59m46s (public)
preferred link-local fe80::5efe:2.1.1.2, life infinite
link MTU 1500 (true link MTU 65515)
current hop limit 255
reachable time 42500ms (base 30000ms)
retransmission interval 1000ms
DAD transmits 0
# 对比前后的区别,可以看到主机获取了2001::/64的前缀,自动生成地址2001::5efe:2.1.1.2,同时“uses Router Discovery”信息表明主机启用了路由器发现, 此时可以Ping通交换机上隧道接口的IPv6地址,表明ISATAP隧道已经成功建立。
完成以上配置之后,ISATAP主机就可访问IPv6网络中的主机。
完成上述配置后,在任意视图下执行display命令,可以显示配置IPv6隧道后的运行情况。通过查看显示信息,用户可以验证配置的效果。
操作 |
命令 |
显示指定Tunnel接口的相关信息 |
display interface Tunnel number |
显示指定Tunnel接口的IPv6相关信息 |
display ipv6 interface Tunnel number |
故障现象:在Tunnel接口上配置了相关的参数后(例如隧道的起点、终点地址和隧道模式)仍未处于Up状态。
故障排除:可以按照如下步骤进行。
(1) Tunnel接口未处于Up状态的最常见原因是隧道起点的物理接口没有处于Up状态。使用display interface Tunnel和display ipv6 interface Tunnel命令查看隧道起点的物理接口状态为Up还是Down。
(2) Tunnel接口未处于Up状态的另一个可能的原因是隧道的终点地址不可达。使用display ipv6 routing-table和display ip routing-table命令查看是否终点地址通过路由可达。如果路由表中没有保证隧道通讯的路由项,请配置相关路由。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!