1992年6月IETF公开征求对下一代IP(IPng)的建议,随后收到了若干个提案,到1994年就形成了Ipng的最后设计。1995年1月RFC 1752“下一代IP建议书”的发表是一个重要的里程碑。RFC1752概述了IPng 的需求,规定了PDU格式,突出了下一代IP在寻址、路由选择和保安等方面采用的方法。这个新一代的IP现在已正式地称作IPv6。
IPv6被设计成可以跟IPv4互操作,因为要花许多年的时间完成从第4版到第6版的过渡。因此IPv6应该保留IPv4提供的最基本的服务—无连接服务。在另一方面,由于IP对于新出现的诸如实时视频会议这类应用不能够很好地支持,所以对其一些功能应该加以改变。
在很长的过渡期内,IPv6和IPv4必须共存,IPv6地址和IPv4地址也必须共存。同时还必须使新安装的IPv6系统能够向后兼容。这就是说,IPv6系统能够接收和转发IPv4分组,并且能够为IPv4分组选择路由。
IPv4/IPv6过渡技术是用来在IPv4向IPv6演进的过渡期内,保证业务共存和互操作的。目前的各种IPv4/IPv6过渡技术, 从功能用途上可以分成两类:
l IPv4/IPv6业务共存技术
l IPv4/IPv6互操作技术
IPv4/IPv6业务共存技术用来保证这两种网络协议可以在公共互联网中共同工作,在IPv6发展过程中这些技术可以帮助IPv6业务在现有的IPv4网络基础架构上工作。 主要的IPv4/IPv6业务共存技术又可分为两类
l 双栈技术
n 双栈技术通过节点对IPv4和IPv6双协议栈的支持,支持两种业务的共存
l 隧道技术
n 隧道技术通过在IPv4网络中部署隧道,实现在IPv4网络上对IPv6业务的承载,保证业务的共存和过渡,已定义的隧道技术种类很多, 主要包括手工配置隧道、兼容地址自动配置隧道、6over4、6to 4、MPLS隧道、ISATAP、隧道代理等技术。
IPv4/IPv6互操作技术通过对数据包的转换实现在网络过渡期中IPv4节点和IPv6节点之间的相互访问。目前主要的技术包括SIIT、NAT-PT、BIS、BIA、DSTM等。
1.IPv4/IPv6业务共存技术 1.1. IPv6/IPv4双协议栈
双栈是指同时支持IPv4协议栈和IPv6协议栈。双栈节点同时支持与IPv4和IPv6节点的通信,当和IPv4节点通信时需要采用IPv4协议栈,当和IPv6节点通信时需要采用IPv6协议栈。双栈节点访问业务时支持通过DNS解析结果选择通信协议栈。即当域名解析结果返回IPv4或IPv6地址时,节点可用相应的协议栈与之通信。
双栈方式是一种比较直观的解决IPv4/IPv6共存问题的方式,但只有当通信双方数据包通路上的所有节点设备(路由器等)都支持双栈技术后,这种方式才能充分发挥其作用。
一个典型的IPv4/IPv6双协议栈结构如下图所示。在以太网中,数据报头的协议字段分别用值0x86dd和00x0800来区分所采用的是IPv6还是IPv4。
图1 IPv4/IPv6双协议栈结构
双栈方式的工作机制可以简单描述为:链路层解析出接收到的数据包的数据段,拆开并检查包头。如果IPv4/IPv6包头中的第一个字段,即IP包的版本号是4,该包就由IPv4的协议栈来处理;如果版本号是6,则由IPv6的协议栈处理。
IPv4/IPv6双协议栈的工作过程如下图所示。
图支持IPv4和IPv6的双协议栈应用
如下图所示,显示了一个双栈主机的工作的过程。
图双栈主机的工作过程
双栈机制是使IPv6节点与IPv4节点兼容的最直接的方式,互通性好,易于理解。但是双协议栈的使用将增加内存开销和CPU占用率,降低设备的性能,也不能解决地址紧缺问题。同时由于需要双路由基础设施,这种方式反而增加了网络的复杂度。
下面是基于Cisco IOS的双栈协议的配置。
1.2. 隧道技术
随着IPv6网络的发展,出现了许多局部的IPv6网络。为了实现这些孤立的IPv6网络之间的互通,采用隧道技术。隧道技术是在IPv6网络与IPv4网络间的隧道入口处,由路由器将IPv6的数据分组封装入到IPv4分组中。IPv4分组的源地址和目的地址分别是隧道入口和出口的IPv4地址。在隧道的出口处拆封IPv4分组并剥离出IPv6数据包。
隧道技术的优点在于隧道的透明性,IPv6主机之间的通信可以忽略隧道的存在,隧道只起到物理通道的作用。在IPv6发展初期,隧道技术穿越现存IPv4因特网实现了IPv6孤岛间的互通,从而逐步扩大了IPv6的实现范围,因而是IPv4向IPv6过渡初期最易于采用的技术。但是隧道技术不能实现IPv4主机与IPv6主机的直接通信。
IPv6网络边缘设备收到IPv6网络的IPv6报文后,将IPv6报文封装在IPv4报文中,成为一个IPv4报文,在IPv4网络中传输到目的IPv6网络的边缘设备后,解封装去掉外部IPv4头,恢复原来的IPv6报文,进行IPv6转发。
图12-16 IPv6穿越IPv4隧道
如下图所示,采集到手工配置隧道的报文。
根据隧道节点的组成情况,隧道可分为以下4种类型:路由器—路由器隧道、路由器—主机隧道、主机—主机隧道、主机—路由器隧道。在实践中,根据隧道建立的方式不同,隧道技术可分为:构造隧道、自动配置隧道、组播隧道以及IPv6toIPv4隧道。
隧道代理的主要功能是:根据用户(双栈结点)的要求建立、更改和拆除隧道;在多个隧道服务器中选择一个作为TEP(tunnelendpoint)IPv6地址,以实现负载均衡;负责将用户的IPv6地址和名字信息存放到DNS(域名服务器)里,实现节点IPv6的域名解析。
从这个意义上说,TB可以看作是一个虚拟的IPv6ISP,它为已经连接到IPv4网络上的用户即TB的客户提供了连接到IPv6网络的一种便捷方式。
用于IPv6穿越IPv4网络的隧道技术主要有:
? IPv6手工配置隧道
? 6to4自动隧道
? ISATAP自动隧道
? IPv6 over IPv4 GRE隧道
? 6PE隧道
1.2.1 IPv6手工配置隧道
IPv6手工配置隧道的源和目的地址是手工指定的,它提供了一个点到点的连接。IPv6手工配置隧道可以建立在两个边界路由器之间为被IPv4网络分离的IPv6网络提供稳定的连接,或建立在终端系统与边界路由器之间为终端系统访问IPv6网络提供连接。隧道的端点设备必须支持IPv6/IPv4双协议栈。其它设备只需实现单协议栈即可。
IPv6手工配置隧道要求在设备上手工配置隧道的源地址和目的地址,如果一个边界设备要与多个设备建立手工隧道,就需要在设备上配置多个隧道。所以手工隧道通常用于两个边界路由器之间,为两个IPv6网络提供连接。
一个手工隧道在设备上以一个虚接口存在,从IPv6侧收到一个IPv6报文后,根据IPv6报文的目的地址查找IPv6转发表,如果该报文是从此虚拟隧道接口转发出去,则根据隧道接口配置的隧道源端和目的端的IPv4地址进行封装。封装后的报文变成一个IPv4报文,交给IPv4协议栈处理。报文通过IPv4网络转发到隧道的终点。
隧道终点收到一个隧道协议报文后,进行隧道解封装。并将解封装后的报文交给IPv6协议栈处理。 一个设备上不能配置两个隧道源和目的都相同的IPv6手工隧道。如下图所示,在Cisco IOS上手动配置隧道。
在隧道接口上,IPv6地址需要手工配置,并且隧道的源IPv4地址(Tunnel Source)和目的IPv4地址(Tunnel Destination)必须手工配置。隧道两端的节点必须支持IPv6和IPv4协议栈。手工配置隧道在实际应用中总是成对配置的,即在两台边缘设备上同时配置,可以将其看作是一种点对点的隧道。
1.2.2 6to4自动隧道
6to4隧道也属于一种自动隧道,隧道也是使用内嵌在IPv6地址中的IPv4地址建立的。与IPv4兼容自动隧道不同,6to4自动隧道支持Router到Router、Host到Router、Router到Host、Host到Host。这是因为6to4地址是用IPv4地址做为网络标识,其地址格式如下:
图6to4隧道地址格式
其格式前缀(FP)为二进制的001,其为可聚合全局单播地址的格式前缀;TLA(Top Level Aggregator)为0x0002,其为顶级聚合标识符。也就是说,6to4地址可以表示为2002::/16,而一个6to4网络可以表示为2002:IPv4地址::/48。
通过6to4自动隧道,可以让孤立的IPv6网络之间通过IPv4网络连接起来。6to4自动隧道是通过Tunnel虚接口实现的,6to4隧道入口的IPv4地址手工指定,隧道的目的地址根据通过隧道转发的报文来决定。如果IPv6报文的目的地址是6to4地址,则从报文的目的地址中提取出IPv4地址做为隧道的目的地址;如果IPv6报文的目的地址不是6to4地址,但下一跳是6to4地址,则从下一跳地址中取出IPv4地址做为隧道的目的地址。后者也称为6to4中继。
6to4隧道常用的应用模型有两种:
? 简单应用模型
6to4隧道最简单、最常用的应用是用来多个IPv6站点之间的互联,每个站点至少必须有一个连接通向一个它们共享的IPv4网络。这个IPv4网络可以是Internet网络也可以是某个组织团体内部的主干网。关键是每个站点必须要一个全局唯一的IPv4地址,6to4隧道将使用该地址构照一个6to4/48的IPv6前缀:2002:IPV4地址/48。
IPv6报文在到达边界路由器后,根据报文的IPv6目的地址查找转发表,如果出接口是6to4自动隧道的Tunnel虚接口,且报文的目的地址是6to4地址或下一跳是6to4地址,则从6to4地址中取出IPv4地址做为隧道报文的目的地址,隧道报文的源地址是Tunnel接口上配置的。
图12-18 6to4隧道组网示意图
如下图是采集到报文。
如下图所示,是基于Cisco IOS配置6to4隧道。
? 混合应用模型
在上面所描述的应用的基础上,通过在纯IPv6网络的边缘提供6to4中继设备,实现其它6to4网络接入纯IPv6网络中,实现该功能的设备我们称之为 6to4中继路由器(6to4 Relay Router)。
随着IPv6网络的发展,普通IPv6网络需要与6to4网络通过IPv4网络互通,这可以通过6to4中继路由器方式实现。所谓6to4中继,就是通过6to4隧道转发的IPv6报文的目的地址不是6to4地址,但转发的下一跳是6to4地址,该下一跳为6to4中继。隧道的IPv4目的地址从下一跳的6to4地址中获得。如下图所示。
图12-19 6to4中继组网示意图
如果6to4网络中的主机要与IPv6网络互通,在其边界路由器上配置路由指向的下一跳为6to4中继路由器的6to4地址,中继路由器的6to4地址是与中继路由器的6to4隧道的源地址相匹配的。6to4网络中去往普通IPv6网络的报文都会按照路由表指示的下一跳发送到6to4中继路由器。6to4中继路由器再将此报文转发到纯IPv6网络中去。当报文返回时,6to4中继路由器根据返回报文的目的地址(为6to4地址)进行IPv4报文头封装,数据就能够顺利到达6to4网络中了。
注意:
6to4地址内嵌的IPv4地址不能为私有的IPv4地址(即12.0.0.0/8,172.16.0.0/12,192.168.0.0/16网段的地址)而必须是全局的IPv4地址。
1.2.3 ISATAP隧道
站内自动隧道寻址协议(ISATAP)是一种站点内部的IPv6体系架构将IPv4网络视为一个非广播型多路访问(NBMA)链路层的IPv6隧道技术,即将IPv4网络当作IPv6的虚拟链路层。
ISATAP主要是用在当一个站点内部的纯IPv6网络还不能用,但是又要在站点内部传输IPv6报文的情况,例如站点内部有少数测试用的IPv6主机要互相通讯。使用ISATAP隧道允许站点内部同一虚拟链路上的IPv4/IPv6双栈主机互相通讯。
在ISATAP站点上,ISATAP设备提供标准的路由器公告报文,从而允许站点内部的ISATAP主机进行自动配置;同时ISATAP设备也执行站点内的ISATAP主机和站点外的IPv6主机转发报文的功能。
ISATAP使用的IPv6地址前缀可以是任何合法的IPv6 单点传播的64 位前缀,包括全球地址前缀、链路本地前缀和站点本地前缀等,IPv4地址被置于IPv6地址最后的32比特上,从而允许自动建立隧道。
ISATAP很容易与其他过渡技术结合起来使用,尤其是在和6to4隧道技术相结合使用时,可以使内部网的双栈主机非常容易地接入IPv6主干网。
ISATAP 接口标识符
ISATAP使用的单播地址的形式是64比特的IPv6前缀加上64比特的接口标识符。64比特的接口标识符是由修正的EUI-64地址格式生成的,其中接口标识符的前32比特的值为0000:5EFE,这就意味着这是一个ISATAP的接口标识符。
ISATAP的地址结构
ISATAP地址是指接口标识符中包含ISATAP接口标识符的单播地址,下图显示了ISATAP的地址结构:
格式如下:
图ISATAP接口ID格式
如果IPv4地址是全局唯一的,则u位为1,否则u位为0。g位是IEEE群体/个体标志。ISATAP地址接口ID的形式看起来是00-00-5E-FE加IPv4地址的样子。5E-FE 是IANA分配的。
从上图中可以看到接口标识符中包含了IPv4的地址,该地址就是双栈主机的IPv4地址,在自动建立自动隧道时将被使用。
例如:IPv6的前缀是2001::/64,嵌入的IPv4的地址是192.168.1.1,在ISATAP地址中,IPv4地址用十六进制数表达为C0A8:0101,因此其对应的ISATAP地址为:2001::0000:5EFE:C0A8:0101
如下图采集到报文。
1.2.4 IPv6 over IPv4 GRE隧道
IPv6 over IPv4 GRE隧道使用标准的GRE隧道技术提供了点到点连接服务,需要手工指定隧道的端点地址。GRE隧道的传输协议是固定的,但乘客协议可以是协议中允许的任意协议(可以是IPv4、IPv6、OSI、MPLS等)。
图 IPv6 over IPv4 GRE隧道
1.2.5 6PE
如果ISP(服务提供商)想实现一个IPv6网络,对于网络核心是基于IP的情况,可以在支持IPv6协议的边缘路由器之间构造IP隧道,这些隧道可以充当支持IPv6协议的点到点的连接。在这些边缘路由器之间交换的IPv6分组可以封装在IP分组中透明的在骨干网上传输。这些方案在大规模网络可伸缩性方面不太好;MPLS技术则提供了另外的选择:在启动MPLS的IPv4骨干网上传输IPv6数据报。这个解决方案称为IPv6提供商边缘路由器(6PE),提供了一种可伸缩的IPv6早期部署的解决方法。它有以下一些特点:
IPv6协议仅仅在选择的PE路由器上实施。 PE路由器使用多协议BGP(MP-BGP)会话在骨干网上交换IPv6路由。MPLS标签被PE路由器赋给IPv6路由,并直接在PE路由器之间交换,类似×××路由。
使用两层MPLS标签在MPLS骨干网上传输IPv6数据报。标签栈中的第一标签是出口PE路由器的指定LDP标签。标签栈中第二个标签是指定PE IPv6标签。
6PE解决方案的整体结构如图所示:
图12-20 6PE网络示意图
ISP网络的IGP协议可以是OSPF或IS-IS,CE和6PE之间可以是静态路由、IGP协议或EBGP。6PE要求IPv6站点必须通过CE连接到一个或多个运行MP-BGP(多协议扩展-边界网关协议)的双栈PE上,这些PE之间通过MP-BGP来交换IPv6的路由可达信息,通过隧道来传送IPv6数据包。
6PE适合从边缘到核心的网络过渡策略。首先它在骨干网和城域核心网仍然可以保持原有的IPv4协议,而只是在网络边缘通过MPLS技术来实现IPv4数据包和IPv6数据包的传送。其次它扩展性较好,当原有网络已经实现了MPLS时,各个边缘网络可以自主选择网络过渡时间和组网方式(本地网的组网方式不受MPLS隧道机制的影响)。当ISP想利用自己原有的IPv4/MPLS网络,使其通过MPLS具有IPv6流量交换能力时,只需要升级PE路由器就可以了。所以对于运营商来说,使用6PE特性作为IPv6过渡机制无疑是一个高效的解决方案,其操作风险也会要小得多。
2. IPv6与IPv4互操作技术
IPv6穿越IPv4技术是为了实现IPv6节点之间的互通,而IPv6/IPv4互通技术是为了实现不同协议之间的互通。也就是使IPv6主机可以访问IPv4主机,IPv4主机可以访问IPv6主机。相关的技术有:
l SIIT(Stateless IP/ICMP Translation)
l NAT-PT
2.1.SIIT 技术
SIIT(Stateless IP/ICMP Translation),无状态IP/ICMP翻译技术用于对IP和ICMP报文进行协议转换,这种转换不记录流的状态,只根据单个报文将一个IPv6报文头转换为IPv4报文头,或将IPv4报文头转换为IPv6报文头。SIIT不需要IPv6主机获取一个IPv4地址,但对于SIIT设备来说,每一个IPv6主机有一个虚拟的临时IPv4地址。
在SIIT中,有以下几种地址类型:
IPv4-mapped:地址的形式为“0::FFFF:a.b.c.d”,表示不支持IPv6能力的节点,这种地址是IPv4节点在IPv6侧的映射地址。
IPv4-translated:地址的形式为“0::FFFF:0:a.b.c.d”,表示一个支持IPv6的节点。该地址在发送到IPv4侧时需要翻译为IPv4地址。
SIIT技术使用特定的地址空间来完成IPv4地址与IPv6地址的转换。因为SIIT无法进行地址复用,所以地址池的空间限制了IPv6节点的数量。在通讯过程中,当SIIT中IPv4地址池中地址分配完时,如果有新的IPv6节点需要同IPv4节点通信,就会因为没有剩余的IPv4地址空间而导致SIIT无法进行协议转换,造成通信失败。所以SIIT技术所能应用的网络规模不能很大。另外,由于无状态,所以,不能很好地支持应用层数据中内嵌地址的应用。
22.NAT-PT技术
NAT-PT(Network Address Translation-Protocol Translation),允许只支持IPv6协议的主机与只支持IPv4协议的主机进行互联,一个位于IPv4和IPv6网络边界的设备负责在IPv4报文与IPv6报文之间进行翻译转换。NAT-PT把SIIT协议转换技术和IPv4网络中动态地址转换技术(NAT)结合在一起,它利用了SIIT技术的工作机制,同时又利用传统的IPv4下的NAT技术来动态地给访问IPv4节点的IPv6节点分配IPv4地址,很好地解决了SIIT技术中全局IPv4地址池规模有限的问题。同时,通过传输层端口转换技术使多个IPv6主机共用一个IPv4地址。
NAT-PT设备上需要设置IPv4主机的转换规则、IPv6主机的转换规则、IPv6主机使用的IPv4地址。报文经过NAT-PT设备时,根据NAT-PT的转换规则对报文进行协议转换。转换规则分为如下几种:
IPv4主机的静态规则:
l 一个IPv4主机对应一个虚拟的IPv6地址。
IPv4主机的动态规则:
l 一组IPv4主机的地址如何映射成IPv6地址。通常是指定一个96位的前缀添加在原IPv4地址前面组成一个IPv6地址。
IPv6主机的静态转换规则:
l 一个IPv6主机对应一个虚拟IPv4地址。
IPv6主机的动态转换规则:
l 一组IPv6主机与IPv4地址的对应关系,IPv4地址是多个IPv6主机共享的资源。
静态NAT-PT 是由NAT-PT网关静态配置v6和v4地址绑定关系。当v4主机与v6主机之间互通时,其报文在经过NAT-PT网关时,由网关根据配置的绑定关系进行转换。不管是IPv6主机还是IPv4主机,如果配置了静态绑定关系,则另外一侧的主机可以主动向其发起连接。
静态配置对那些经常在线,或需要能提供稳定连接的主机比较适合。对于那些不经常使用的主机,可以采用动态配置的方法,这样可以配置简单。
如下图所示,IPv4侧主机采用了静态映射,而IPv6侧主机采用动态映射。当PC1向PC2发送报文时,其源地址为2001:db2::1,目的地址2001:ad::1。此报文在到达NAT-PT网关,目的地址符合IPv4静态规则,IPv4报文的目的地址为101.1.1.1。而IPv6报文的源地址符合IPv6主机的动态规则,则从规则的地址池中选择一个未使用的地址,假设是16.1.1.10,作为IPv4报文的源地址。那么转换后的IPv4报文就是源16.1.1.10,目的地址为101.1.1.1。
图 动态NAT-PT示意图
在动态NAT-PT中,IPv4地址池中的地址可以复用,也就是若干个IPv6地址可以转换为一个IPv4地址,它利用了上层协议(UDP/TCP的端口)映射的方法。
动态NAT-PT改进了静态NAT-PT配置复杂,消耗大量IPv4地址的缺点。由于它采用了上层协议映射的方法,所以只用很少的IPv4地址就可以支持大量的IPv6到IPv4的转换。但是,由于IPv6侧的映射是动态的,如果IPv4侧向IPv6发起连接,由于不知道IPv6主机应用映射后的结果,所以无法直接向IPv6主机连接。这需要结合DNS ALG来实现。
ALG(Application Level Gateway),是应用层网关的含义。有些应用,比如DNS、FTP等,在应用层载荷中包含IP地址、端口等信息,需要对报文中的某些IP地址进行转换。通过DNS ALG,可以做到IPv4与IPv6网络中任一方均可主动发起连接,只需要配置一个DNS服务器的静态映射即可。
IPv4主机要访问IPv6主机www.a.com,首先向IPv6网络中的DNS发出名字解析请求,报文类型为“A”类查询报文。这个请求到达NAT-PT后,NAT-PT对报文头部按普通报文进行转换。同时,由于DNS报文需要进行ALG处理,把“A”类查询请求转换成“AAAA”或“A6”类型,然后将此报文转发给IPv6网络内的DNS。
IPv6网络中的DNS服务器收到报文后,查询自己的记录表,解析出主机www.abc.com的IPv6地址是2001:db2::1,回应查询结果。此报文被NAT-PT对报文头进行转换后,同时,DNS ALG将其中的DNS应答部分也进行修改,把“AAAA”或“A6”类转成“A”类应答,并从IPv4地址池中分配一个地址17.1.1.11,替换应答中的IPv6地址2001:db2::1,并记录二者之间的映射信息。
图NAT-PT DNS ALG示意图
IPv4主机在收到此DNS应答之后,就知道了主机www.abc.com的IPv4地址是17.1.1.11。于是发起到主机www.abc.com的连接。由于在NAT-PT中已经记录了IPv4地址17.1.1.11与IPv6地址2001:db::1之间的映射信息,因此可以对地址进行转换。
NAT-PT 不必修改已存在的IPv4网络就可实现内部网络IPv4主机对外部网络IPv6主机的访问,且通过上层协议映射使大量的IPv6主机使用同一个IPv4地址,节省了宝贵的IPv4地址。所以是一个很优秀的IPv4与IPv6网络之间的过渡技术。但NAT-PT也有它的缺点,属于同一会话的请求和响应都要通过同一NAT-PT设备,对NAT-PT设备的性能要求很高。
3. 配置示例 3.1.手工配置隧道
如下拓扑图所示:
R1
配置
ipv6 unicast-routing
!
interface Tunnel0
no ip address
ipv6 address 2001:DB:1::1/64
ipv6 enable
tunnel source 172.16.1.1
tunnel destination 172.16.1.2
tunnel mode ipv6ip
!
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
duplex full
!
interface Ethernet1/0
no ip address
duplex half
ipv6 address 2001:2::1/64
!
logging alarm informational
ipv6 route ::/0 Tunnel0
!
R2
配置
!
ipv6 unicast-routing
!
interface Tunnel0
no ip address
ipv6 address 2001:DB:1::2/64
ipv6 enable
tunnel source 172.16.1.2
tunnel destination 172.16.1.1
tunnel mode ipv6ip
!
interface FastEthernet0/0
ip address 172.16.1.2 255.255.255.0
duplex full
!
interface Ethernet1/0
no ip address
duplex half
ipv6 address 2001:1::1/64
!
logging alarm informational
ipv6 route ::/0 Tunnel0
如下拓扑图所示
R1
配置
!
ipv6 unicast-routing
!
!
interface Tunnel0
no ip address
no ip redirects
ipv6 unnumbered Ethernet1/0
tunnel source FastEthernet0/0
tunnel mode ipv6ip 6to4
!
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
duplex full
!
interface Ethernet1/0
no ip address
duplex half
ipv6 address 2002:AC10:101:2::/64 eui-64
!
!
logging alarm informational
ipv6 route 2002::/16 Tunnel0
!
R2
配置
!
ipv6 unicast-routing
!
interface Tunnel0
no ip address
no ip redirects
ipv6 unnumbered Ethernet1/0
tunnel source FastEthernet0/0
tunnel mode ipv6ip 6to4
!
interface FastEthernet0/0
ip address 172.16.1.2 255.255.255.0
duplex full
!
interface Ethernet1/0
no ip address
duplex half
ipv6 address 2002:AC10:102:1::/64 eui-64
!
logging alarm informational
ipv6 route 2002::/16 Tunnel0
!
使用show
命令查看状态
R1#show int tunnel 0
Tunnel0 is up, line protocol is up
Hardware is Tunnel
MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive not set
Tunnel source 172.16.1.1 (FastEthernet0/0), destination UNKNOWN
Tunnel protocol/transport IPv6 6to4
Fast tunneling enabled
Tunnel transmit bandwidth 8000 (kbps)
Tunnel receive bandwidth 8000 (kbps)
Last input 00:23:23, output 00:23:23, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/0 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
34 packets input, 4760 bytes, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
38 packets output, 4464 bytes, 0 underruns
0 output errors, 0 collisions, 0 interface resets
0 output buffer failures, 0 output buffers swapped out
如下拓扑图所示
R1
配置
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
duplex full
!
interface Ethernet1/0
ip address 192.168.10.100 255.255.255.0
duplex half
!
ip classless
ip route 0.0.0.0 0.0.0.0 172.16.1.2
R2
配置
!
ipv6 unicast-routing
!
!
interface Tunnel1
no ip address
no ip redirects
ipv6 address 2001:2::/64 eui-64
ipv6 enable
no ipv6 nd ra suppress
tunnel source FastEthernet0/0
tunnel mode ipv6ip isatap
!
interface FastEthernet0/0
ip address 172.16.1.2 255.255.255.0
duplex full
!
interface Ethernet1/0
no ip address
duplex half
ipv6 address 2001:1::1/64
!
ip classless
ip route 0.0.0.0 0.0.0.0 172.16.1.1
计算机配置
此计算机操作系统为windows serve r 2003,配置本地连接为192.168.10.129,
打开命令提示符,指定ISATAP路由器地址,并启用ISATAP隧道功能,如下图所示:
查看其状态,如下图所示:
使用命令查看其获取的IPv6 ISATAP地址,如下图所示:
使用ping命令来测试是否正常通信。
使用show命令查看其路由器状态。
R2#sh interfaces tunnel 1
Tunnel1 is up, line protocol is up
Hardware is Tunnel
MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive not set
Tunnel source 172.16.1.2 (FastEthernet0/0), destination UNKNOWN
Tunnel protocol/transport IPv6 ISATAP
Fast tunneling enabled
Tunnel transmit bandwidth 8000 (kbps)
Tunnel receive bandwidth 8000 (kbps)
Last input 00:12:16, output 00:12:16, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/0 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
21 packets input, 2488 bytes, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
25 packets output, 2500 bytes, 0 underruns
如下图所示:
R1
配置
!
interface FastEthernet0/0
ip address 172.16.1.1 255.255.255.0
duplex full
!
interface Ethernet1/0
ip address 192.168.10.100 255.255.255.0
duplex half
!
ip classless
ip route 0.0.0.0 0.0.0.0 172.16.1.2
no ip http server
no ip http secure-server
!
R2
配置
!
ipv6 unicast-routing
!
interface FastEthernet0/0
ip address 172.16.1.2 255.255.255.0
duplex full
ipv6 nat
!
interface Ethernet1/0
no ip address
duplex half
ipv6 address 2001:1::1/64
ipv6 nat
!
ip classless
ip route 0.0.0.0 0.0.0.0 172.16.1.1
no ip http server
no ip http secure-server
!
logging alarm informational
ipv6 nat v4v6 source 192.168.10.129 2001:2::A
ipv6 nat v6v4 source 2001:1::20C:29FF:FEA1:4275 172.16.2.10
ipv6 nat prefix 2001:2::/96
!
使用两台计算机相互信,如下图所示:
使用debug ipv6 nat 和show命令查看其输出:
R2#
*Sep 20 13:27:38.758: IPv6 NAT: src (192.168.10.129) -> (2001:2::A), dst (172.16.2.10) -> (2001:1::20C:29FF:FEA1:4275)
*Sep 20 13:27:38.766: IPv6 NAT: icmp src (2001:1::20C:29FF:FEA1:4275) -> (172.16.2.10), dst (2001:2::A) -> (192.168.10.129)
*Sep 20 13:27:39.630: IPv6 NAT: src (192.168.10.129) -> (2001:2::A), dst (172.16.2.10) -> (2001:1::20C:29FF:FEA1:4275)
*Sep 20 13:27:39.694: IPv6 NAT: icmp src (2001:1::20C:29FF:FEA1:4275) -> (172.16.2.10), dst (2001:2::A) -> (192.168.10.129)
*Sep 20 13:27:40.666: IPv6 NAT: src (192.168.10.129) -> (2001:2::A), dst (172.16.2.10) -> (2001:1::20C:29FF:FEA1:4275)
*Sep 20 13:27:40.670: IPv6 NAT: icmp src (2001:1::20C:29FF:FEA1:4275) -> (172.16.2.10), dst (2001:2::A) -> (192.168.10.129)
*Sep 20 13:27:41.682: IPv6 NAT: src (192.168.10.129) -> (2001:2::A), dst (172.16.2.10) -> (2001:1::20C:29FF:FEA1:4275)
*Sep 20 13:27:41.702: IPv6 NAT: icmp src (2001:1::20C:29FF:FEA1:4275) -> (172.16.2.10), dst (2001:2::A) -> (192.168.10.129)
R2#sh ipv6 nat translations
Prot IPv4 source IPv6 source
IPv4 destination IPv6 destination
--- --- ---
192.168.10.129 2001:2::A
--- 172.16.2.10 2001:1::20C:29FF:FEA1:4275
192.168.10.129 2001:2::A
--- 172.16.2.10 2001:1::20C:29FF:FEA1:4275
--- ---
R2#
*Sep 20 13:28:03.758: IPv6 NAT: icmp src (2001:1::20C:29FF:FEA1:4275) -> (172.16.2.10), dst (2001:2::A) -> (192.168.10.129)
*Sep 20 13:28:03.846: IPv6 NAT: src (192.168.10.129) -> (2001:2::A), dst (172.16.2.10) -> (2001:1::20C:29FF:FEA1:4275)
*Sep 20 13:28:04.798: IPv6 NAT: icmp src (2001:1::20C:29FF:FEA1:4275) -> (172.16.2.10), dst (2001:2::A) -> (192.168.10.129)
*Sep 20 13:28:04.862: IPv6 NAT: src (192.168.10.129) -> (2001:2::A), dst (172.16.2.10) -> (2001:1::20C:29FF:FEA1:4275)
*Sep 20 13:28:05.810: IPv6 NAT: icmp src (2001:1::20C:29FF:FEA1:4275) -> (172.16.2.10), dst (2001:2::A) -> (192.168.10.129)
*Sep 20 13:28:05.866: IPv6 NAT: src (192.168.10.129) -> (2001:2::A), dst (172.16.2.10) -> (2001:1::20C:29FF:FEA1:4275)
*Sep 20 13:28:06.826: IPv6 NAT: icmp src (2001:1::20C:29FF:FEA1:4275) -> (172.16.2.10), dst (2001:2::A) -> (192.168.10.129)
*Sep 20 13:28:06.882: IPv6 NAT: src (192.168.10.129) -> (2001:2::A), dst (172.16.2.10) -> (2001:1::20C:29FF:FEA1:4275)
R2#sh ipv6 nat translations
Prot IPv4 source IPv6 source
IPv4 destination IPv6 destination
--- --- ---
192.168.10.129 2001:2::A
--- 172.16.2.10 2001:1::20C:29FF:FEA1:4275
192.168.10.129 2001:2::A
--- 172.16.2.10 2001:1::20C:29FF:FEA1:4275
--- ---