IPv6过渡技术详解_精心原创.doc_第1页
IPv6过渡技术详解_精心原创.doc_第2页
IPv6过渡技术详解_精心原创.doc_第3页
IPv6过渡技术详解_精心原创.doc_第4页
IPv6过渡技术详解_精心原创.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ipv6过渡技术详解一、 双协议栈技术1.1dstm二、 隧道技术2.1sit2.2tunner broker2.36to42.46rd2.56over42.6isatap2.76pe/6vpe2.8softwire三、 翻译技术3.1nat63.2bis技术3.3bia3.4pnat(bih)3.5ivi3.6nat-pt和 nat64四、 延缓ipv4地址枯竭的方案4.1cgn(nat444)4.2dual-stack lite(ds-lite)4.3public 4over64.4a plus p 4.54rdipv4互联网经过多年的发展和完善,取得了巨大的成功,然而随着internet的快速持续发展,当前ipv4存在的地址空间缺乏、路由表急剧膨胀、缺乏网络层安全、缺乏对移动和网络服务质量的支持等缺陷和不足使得它不能满足这种日渐增长的需要。ipv6正是为解决ipv4中存在的问题而产生的,其优越的特性为互联网的进一步发展提供了更好的支持。在当前ipv4网络环境下部署ipv6网络,ipv4/v6过渡机制是必然和必须的,其过渡过程是复杂和困难的,因此充分研究过渡机制是非常重要的。在ipv4/v6过渡研究中,已经诞生了很多方案,这些方案的提出都是适应某种实际场景的,但是,到目前为止,仍没有一种方案可以解决所有的通信场景问题,这是该技术报告需要解决的基本问题,通过对现有方案的技术调研和跟踪,融合各类技术的特色,为特定的网络需求指定方案做参考。ipv4/v6过渡思想一诞生,很多组织和个人就为之不停的奋斗,涌现了大量的技术方案。总结起来,现有技术主要可以归结为三类,即双协议栈技术、隧道技术和翻译技术,在这两年中,又出现了一些融合技术,主要利用翻译技术和隧道技术解决ipv4地址枯竭问题,扩大ipv4私有地址的使用空间,节省ipv4公有地址的使用范围,从而暂时解决ipv4地址濒临枯竭的问题,但是,这类方案只是一种缓冲机制,而最根本的解决方式就是部署ipv6网络,解决46网络的平滑过渡问题。1. 双协议栈技术1.1 dstmdstm(dual stack transition mechanism)的目标在于解决纯ipv6网络中的主机与其他ipv4主机或应用的连接问题,它的出发点是提供ipv6节点一个获得ipv4地址的方式,从而使之能够与纯ipv4节点或者ipv4应用程序通信。dstm技术通过使用ipv4-over-ipv6隧道,实现了ipv4流量在纯ipv6网 上的传输,同时也提供一个为ipv6/ipv4双栈节点分配临时ipv4地址的方法。使用dstm机制的节点必须是双栈节点,而且这种机制还必须要结合隧道技术进行应用。dstm目前已经过期。(expires december 2002)图2-1 dstm体系结构dstm的体系结构中包括三个主要组成部分:dstm服务器、网关和dstm节点。dstm域应在intranet中。其中,dstm服务器负责为客户机节点分配ipv4地址,还可以提供一个端口范围作为地址分配功能的扩展。ipv4地址分配的协议有多种选择(比如dhcpv6),并提供所需网关的ipv6地址;网关作为隧道端点承担纯ipv6域与外部的ipv4 internet的边界路由器的角色;dstm节点执行封装/解封装数据包,完成收发过程。dstm节点必须是双栈节点;网关需要直接与ipv4连接并需要一个永久ipv4地址。dstm通信过程如下:dstm节点与ipv4通信的过程如下:l dstm节点向dstm服务器请求一个临时的ipv4地址。l dstm服务器在地址池中为该dstm节点保留一个ipv4地址,并在应答消息中将该地址和地址的有效时间以及有关dstm网关的信息发送给dstm节点。l dstm节点使用申请来的地址配置其ipv4堆栈,并将所有ipv4包都通过ipv4 over ipv6隧道送到dstm网关。l dstm网关将包拆封成ipv4包发送出去。dstm网关保留一个含有intranet主机ipv4和ipv6地址的映射表,并利用此映射表来执行ipv4包的封装和拆封。为保证双向通信,ipv4路由必须要确保目的地的任何包都经过原来的dstm网关。dstm适用性:dstm适用于ipv6域内的节点需要与域外ipv4节点通信的情况。通过使用dstm技术,拥有ipv4应用的双栈主机在纯ipv6网内可以到达全球internet上的相应的纯ipv4节点。dstm网络只需要配置ipv6。不需要配置ipv4的地址和路由。任何类型的协议和应用都被透明地转发,无需采用nat技术即可实现。dstm安全性:dstm在安全方面还有许多问题值得探讨。比如对dstm服务器的dos攻击问题和对隧道的监控问题等。由于多种因素,dstm技术已经过期,但dstm技术的很多思想(比如服务器分配地址、上层应用被透明转发以及采用端口扩展地址范围的方法)在其他方案中已经被借鉴使用。2. 隧道技术2.1 sitipv6配置隧道 (也称ipv6-over-ipv4隧道,sit:internet简单过渡机图2-2 ipv6配置隧道制或者ipv6-in-ipv4隧道 | simple internet transition)是一种应用最早、最简单、成熟的过渡技术,通过手工配置隧道的出口和入口地址,在入口节点处对ipv6分组封装在ipv4分组中,在出口节点进行解封装,实现ipv6间通过ipv4网络达到互通。ipv6配置隧道入口节点必须保存所有隧道的出口端地址,这些隧道是点到点连接并且是手工配置的(如图2-2),因此,需要隧道数量越多,管理隧道的负担就越大。ipv6配置隧道适用于通过ipv4连接孤立的ipv6网络,是ipv4向ipv6过渡的初期最易于采用的技术。ipv6配置隧道目前是6bone所采用最多的技术。ipv6配置隧道技术的要求是配置隧道的出口和入口至少要具有一个全球唯一的ipv4地址,出口和入口路由器需要支持双栈,站点中每个主机都至少需要支持ipv6,需要合法的ipv6地址。ipv6配置隧道的优点在于隧道的透明性,ipv6主机之间的通信可以忽略隧道的存在,隧道只起到物理通道的作用,甚至可以在此隧道上传输组播、设置bgp对等端等;它不需要大量的ipv6专用路由器设备和专用链路,可以明显地减少投资。其缺点是:在ipv4网络上配置ipv6隧道是一个比较麻烦的过程,而且一旦隧道端点的ip地址发生变化,必然影响隧道配置;无法穿越nat设备,因此隧道路径中不能有nat设备;如果隧道穿越防火墙,则需要保证协议41(ipv6)不被过滤掉;不能实现ipv4主机和ipv6主机之间的通信。目前这种隧道已经获得了广泛的支持,已知的支持ipv6的平台都支持配置隧道,包括主机和路由器。在安全方面,需要同时保护隧道免受ipv4和ipv6的攻击,具体的方法是一个隧道连接的两个端点和其连接的ipv6网络是确定的,因此对这些所有穿越隧道封装的业务使用同时使用ipv4/v6过滤规则。可以分别、同时实施这两种规则。此外,对于保护数据隐私的情况下,可以采用在隧道端点使用ipv4 ipsec来实现,也可以在ipv6端实现ipv6 ipsec。由于ipsec对性能有负面影响,因此在性能和安全之间需要做折中的设计和处理。2.2 tunner broker图2-3 隧道代理技术隧道代理(tunnel broker)不是一种隧道机制,而是一种方便构造隧道的机制或者服务。配置隧道需要繁重的管理和配置,而网络操作管理员无法承担,连接到ipv6网络对初级用户来说不是一件容易的事情。隧道代理机制就是解决这样的问题的。基本的要求就是用户必须是双栈的,并且ipv4地址是全球唯一的。图2-3显示了隧道代理的基本的工作机制(1)用户通过认证,向隧道代理服务器请求建立到ipv6网络的隧道;(2)隧道代理服务器在多个隧道服务器中选择一个,为用户分配合适的ipv6地址、设定隧道生存时间(3)向dns注册用户端的ipv6地址(4)请求隧道服务器建立隧道。隧道代理的优点是可以简化隧道的配置过程,适用于小型ipv6网络或者单个主机获取ipv6连接的情况,可以使ipv6 的isp可以很容易对用户执行接入控制,并按照策略对网络资源进行分配;缺点是无法穿越nat设备,经过nat设施的情况下隧道代理失效。在隧道代理体系中,所有功能单元之间(包括客户和tb之间、tb和隧道服务器之间以及tb和dns之间)都需要使用安全机制保护。隧道代理还存在以下安全问题:(1)如果用户端的配置是通过tb提供的脚本实现的话,在执行这些脚本时就需要实现对一些接口的配置管理,所以必须给这些脚本很高的权限,这种做法存在安全漏洞。同时存在最终用户真实身份不确定的问题;(2)如果用户使用不是静态ipv4地址的连接(如拨号),就要谨慎地自动切断隧道以防不必要地使用资源。因为用户的连接如果非正常中断了,隧道服务器会继续发送ipv6的隧道包到用户原来的ipv4地址,而这个地址可能已经被分配给另一个主机使用,这样就发生了数据泄露问题。这个问题可以通过用户端发送某类keep-alive消息来解决,但是这样可能需要在用户操作系统中安装专门的软件,用起来比较困难;(3)恶意用户可能同时申请大量的隧道连接耗尽隧道服务器的资源;(4)多宿主主机时还没有合适的过滤策略。2.3 6to46to4隧道技术解决的问题是:孤立的ipv6站点如何在没有internet服务提供商提供ipv6互连服务的条件下,与其他孤立站点以及与ipv6主干网内部各站点之间进行通信。它不需要像配置隧道那样以6bone为中介,而只是利用了现有的ipv4路由体系,从而大大改善了路由效率。6to4过渡技术也是一种自动构造隧道的机制,这种机制要求站点采用特殊的ipv6地址(2002:ipv4addr:/48 ),这种地址是自动从站点的ipv4地址派生出来的。所以每个采用6to4机制的节点至少必须具有一个全球唯一的ipv4地址。由于这种机制下隧道端点的ipv4地址可以从ipv6地址中提取,所以隧道的建立是自动的,而对于接收端的6to4路由器来说,可以自动地区分隧道接收端点是否在本域内。6to4不会在ipv4的路由表中引入新的条目,在ipv6的路由表中只增加一条表项。6to4过渡机制技术适合于ipv4/v6共存的初始阶段,与防火墙、nat共存时,要求必须具有全球唯一的ipv4地址,并具备6to4机制和路由功能,管理和维护负担小。6to4要求隧道中至少有两台路由器支持双栈和6to4,主机要求至少支持ipv6协议栈。6to4技术的优点是不需要向网络运营商申请ipv6地址,所有ipv6地址从公有v4地址产生并通过6to4中继路由器于全球ipv6网络互通;自动建立隧道,能够保证端对端的特性。其缺点是一旦ipv4地址发生变化,整个站点的ip地址需要重新分配,因此很难使用在动态ipv4地址分配的情形下,如拨号访问、xdsl接入、dhcp等;存在单点失效问题,如果边界6to4路由器故障,则整个站点与其他ipv6通信中断。图2-4 6to4实际示例图2-4显示了一个实际的6to4示例。采用6to4机制的ipv6出口6to4路由器a与其它的ipv6孤岛(6to4-b)之间建立隧道连接。由于站点的ipv4地址包含在ipv6的地址前缀中,因此ipv4隧道的末端地址(202.112.10.37)可从ipv6域的地址前缀(2002:ca70:0a25.)中自动提取。此地址前缀由一个唯一的16bit长度的6to4前缀(2002)和一个标识转换的出口路由器的32位ipv4地址域(202.112.10.37:ca70:0a25)构成。6to4将ipv4隧道地址(202.112.10.37)嵌入ipv6前缀(2002:ca70:0a25)中,使边界路由器可以自动为ipv6找到终点。6to4机制通过中继路由器 ( 6to4 relay router )与纯ipv6站点之间进行通信,如图2.5中的6to4路由器c,中继路由器负责6to4和纯v6网络之间的路由,建议运行bgp4+。安全性方面,在6to4隧道终点,任何从正常ipv4链路传来的6to4数据流都可以被接受和解封装。为了防止ipv6欺骗,可采用附加的基于源地址的包过滤技术。一种方法就是检查用于封装的ipv4地址是否与被封装的ipv6包头地址一致。这种检查要在中继路由器(relay router)中设置。在任何情况下,6to4数据流中的源和目的地址嵌入的v4地址必须是以全球唯一单播地址格式,否则这些数据包将会在不被警告的情况被丢弃。如果ipv4地址被欺骗,任何人都可以向隧道内注入任意多的流量。如果已经使用了6to4路由器或中继,还需要防止对6to4伪接口的攻击、本地广播攻击以及业务盗用,详细安全性分析和解决方法在中有详细的阐述。2.4 6rd目前,运营商的骨干网以ipv4 为主,升级到ipv6 网络需要时间和成本,需要一种技术能够在现有网络架构上快速提供ipv6 站点之间的互通。6rd 就是这样一种方案。它由法国运营商free提出,现已成为ietf 标准rfc5569,free采用该方案在5 周内为超过150万户居民提供了ipv6 服务。思科公司进一步改进与扩展了6rd,目前已形成提案标准rfc5969。6rd 是一种ipv6-in-ipv4 隧道技术,部署场景如图4-5 所示,6rd ce(customer edge)与6rd br(border realy)都是双栈设备,它们之间保持ipv4 网络。通过扩展的dhcp 选项,6rd ce 的wan 接口可得到运营商为其分配的ipv6 前缀、ipv4 地址(公有或私有)以及6rd br 的ipv4 地址等参数。ce 在lan 接口上通过将上述6rd ipv6 前缀与ipv4 地址相拼接构造出用户的ipv6 前缀。当用户开始发起ipv6 会话,ipv6 报文到达ce 后,ce 用ipv4 包头将其封装进隧道,被封装的ipv6 报文通过ipv4 包头进行路由,中间的设备对其中的ipv6 报文不感知。br 作为隧道对端,收到ipv4 数据包后进行解封装, 将解封装后的ipv6 报文转发到全球ipv6 网络中,从而实现终端用户对ipv6 业务的访问。6rd技术是基于6to4隧道技术,能够为有ipv4网络接入的用户快速部署ipv6 的单播业务。6rd 使用无状态的地址映射,将ipv6分组封装在ipv4报文中穿越ipv4基础网络。与6to4机制不同的是,6rd业务提供商使用自己已获得的实际长度可变的ipv6地址前缀来代替6to4 机制特定的2002 前缀,因此其作用域局限在运营商的管理域内。如图4所示,发送的ipv6分组在cpe/主机进行封装,其封装源地址为从ipv6源地址中取出的ipv4地址,目的地址为6rd-relay的ipv4地址,分组到达6rd-relay后经解封装,由于是无状态映射所以可直接转发。图2-5 6rd 图例使用6rd技术升级后的网络在原有提供ipv4传输的基础上可以支持ipv6的传输。为实现46互通,相应的ipv4(或ipv6)节点需要升级为ipv6(或ipv4) capable。6rd使用的是无状态的地址映射,在6rd-relay上无需维护映射表,管理简单。升级ipv4接入网支持6rd机制需要:在ipv4网络与ipv6网络边界运行一个或者多个6rd的网关(6rd-relay);用户本身或cpe路由器需能够支持6rd的功能而接入网内部的路由器仍是ipv4单栈无需改动。使用6rd能够满足对ipv4接入网进行升级的需求。2.5 6over46over4 过渡技术通过ipv4组播自动建立隧道的机制,6over4隧道通过组播机制,将一个网络内部、位于不同子网且没有ipv6路由器直接相连的ipv6主机连接到一个虚拟的链路上,形成逻辑上的同一子网。其核心思想是将ipv6多播地址映射成ipv4多播地址,通过邻居发现中的路由器请求/宣告、邻居请求/宣告过程完成其他ipv6主机的ipv4地址的发现和边界路由器ipv4的发现。对于ipv6而言,整个ipv4组播域就是一个虚拟以太网(virtual ethernet)。6over4 过渡技术与6to4隧道和自动ipv4兼容隧道不同的是它不需要特殊格式的ipv6地址,ipv4组播域可以是采用全球唯一的ipv4地址的网络,或是一个私有的ipv4网络的一部分,ipv6可以独立于底层的链路而且可以跨越ipv4的子网。但是采用这种机制的前提就是ipv4网络基础设施必须支持ipv4组播。这种机制适用于ipv6路由器没有直接连接的物理链路上的孤立的ipv6主机,使得它们能够将ipv4组播域作为它们的虚拟链路,成为功能完全的ipv6站点。6over4隧道适用于具备双协议栈的主机之间通信,是利用ipv4的组播机制创建虚拟链路而不是显式的隧道技术。然而由于支持组播的ipv4网络的缺乏,且6over4相对于6to4和isatap并没有太多的优势,实际中6over4极少使用。在安全性方面,6over4技术除了需要考虑可能有ipv6攻击之外,还应该考虑对ipv4攻击的安全防范。即使是有ipv4安全保证,仍然需要有ipv6安全保证。6over4还有可能受到地址欺骗攻击,外部伪造的6over4包有可能侵入6over4域内。这样,边界路由器必须要丢弃组织本地范围内的源和目的多播地址的ipv4包(如果它们到达这个范围以外的物理接口的话)。为了防止单播6over4包的地址欺骗攻击,边界路由器还必须要丢弃来自于未知源的协议类型为41的ipv4包,只接受可信任来源的数据。除非是ipsec认证可用,否则最好将边界路由器配置成只接受来自于可信任范围内的源地址的协议类型为41的包。2.6 isatapisatap技术的工作机制类似6to4过渡技术,都把ipv4网络看作一个nmba(非广播多点访问)线路,以实现在ipv4网络中孤立的ipv6节点实现ipv6渐进部署,区别是地址格式不同。不管站点使用的是全局还是内部ipv4地址,均可在站点内使用ipv6-in-ipv4自动隧道技术。新的接口标识格式既可使用本地单播ipv6前缀,也可使用全局单播ipv6前缀,从而支持局域和全局的ipv6路由。图2-6 isatap与6to4过渡技术结合使用图2-5 isatap过渡技术isatap技术工作机制如图2-5所示。isatap双协议栈主机1向服务器发送路由请求,得到一个64位的ipv6地址前缀,再加上64位的接口标识符:0:5efe:192.168.2.1,构成一个isatap地址,双栈主机配置了isatap地址后,就成为一个isatap客户机,可以和ipv4域内的其他isatap客户机进行通信了。通信过程如下,isatap双栈主机1获得双栈主机2的isatap地址后向其发送数据包,根据目的地址该数据包被交给isatap接口进行发送,isatap从数据包的ipv6源地址和目的地址从提出相应的ipv4源和目的地址,并对该数据包用ipv4头部进行封装,封装后数据包的目的地址为双栈主机2的ipv4地址,这样就建立了一条从主机1到主机2的隧道。数据包最后到达主机2,主机2对其解封装,得到一个ipv6数据包。由于isatap隧道的优点是它不要求隧道端节点必须具有全球唯一的ipv4地址,因此可用于内部私有网中各双栈主机之间进行ipv6通信。isatap过渡技术于6to4隧道技术相结合(图2-6),还可以使内部网的双栈主机接入ipv6主干网。这种结合使用过渡技术解决目前普遍存在的使用ipv4私有地址的内部网络向ipv6网络过渡的问题。安全性方面,由于站点内的所有isatap主机都在同一个ipv6链接上,尽管可以像通常一样在isatap路由器处监控流量,但是isatap链路上主机之间的包并不经过该路由器,因此没有办法监控和排除出现内部攻击的可能性。所以,路由器需要在isatap接口上启用缓解欺诈攻击的安全机制,防止发自isatap站点内的源ipv6地址欺诈攻击,至少isatap站点的边界网关必须记录欺诈源地址的来源还是有好处的。isatap技术使用一个内嵌ipv4地址的ipv6地址通过ipv6-in-ipv4自动隧道为ipv4站点内的双栈节点提供到ipv6路由器的接入,它允许与ipv6路由器不共享同一物理链路的双栈节点通过ipv4自动隧道将数据包送达ipv6下一跳。ipv6邻居发现信任模型也适用于isatap。使用isatap技术时必须要考虑地址过滤问题,站点边界路由器和防火墙必须执行ipv6入口过滤、ipv4入口过滤和协议类型为41的包过滤。2.7 6pe/6vpe6pe是基于mpls的隧道技术,其核心思想是借助成熟的bgp mpls vpn技术平台实现在启用mpls的ipv4骨干网上传输ipv6数据报文,为ipv6网络孤岛提供互联能力。6pe隧道技术的vpn路由发布和报文转发原理与常见的ipv4骨干网上的mpls l3 vpn类似。6pe路由器与同处于ipv6网络内的ce路由器之间通过ipv6 igp路由协议交换路由信息。6pe路由器为ipv6路由加上私网标签(由mp-ibgp协议随机自动生成,被传递到对端6pe并保留到转发表中),并将此路由的“next-hop”属性更改为映射后的自身loopback地址(为与ce的路由保持相同的地址族,6pe的ipv4 loopback地址被映射成ipv6地址,地址形式为:“:ffff:ipv4-address”),然后加上mpls外层标签通过mpls lsp隧道发布给对端6pe设备,对端6pe接收并保留私网标签,然后将路由的下一跳属性改变为映射后的自身loopback地址,再以ipv6普通路由的形式发布给自己一侧的ipv6 ce设备,两个ipv6网络的路由通过这种方式就完成了交互。如图2-7所示。图 2-7 6pe网络示意图ipv6报文转发时,ce设备根据报文的目的地址发送给6pe设备,6pe设备在ipv6路由表中进行查找,得到该数据报文对应ipv6路由的下一跳地址(即对端6pe的loopback地址)和私网标签,在ipv6报文外先封装私网标签,再根据mpls lsp标签转发表中与其下一跳对应的标签封装外层标签,然后将mpls报文通过lsp上各个p路由器逐跳转发,倒数第二跳p路由器弹出外层标签并继续转发给相应6pe路由器,在6pe路由器上根据内层标签将ipv6数据包转发至目的ce设备。传统的6pe技术实质上相当于将所有通过6pe连接的ipv6网络都放在一个vpn内,无法进行逻辑隔离,因此只能用于开放的、无保护的ipv6网络互联,如果需要对所连接的ipv6网络做逻辑隔离,即实现ipv6 vpn,就需要进一步借助于6vpe技术。6vpe技术是mpls vpn技术对ipv6所作的扩展,可以在ipv4/ipv6 mpls骨干网上承载任意的ipv6/ipv4的vpn业务。与6pe技术相比,6vpe技术增加了vpn-ipv6地址族和vrf-ipv6的概念,实现了不同vrf-ipv6网络之间的逻辑隔离,提高了ipv6网络的安全性。6vpe的路由传递和报文转发原理与传统ipv4下的mpls vpn基本一致,如图2-8所示。图 2-8 6vpe网络示意图6pe/6vpe技术比较好地解决了孤立的ipv6网络之间多点对多点互联的问题,6vpe还可以进一步提供ipv6网络逻辑隔离和有选择互通的问题。鉴于目前mpls技术已经普遍应用,且采用6pe/6vpe技术实现ipv6网络互联时只需对pe设备做升级即可,ipv6网络内的设备和节点以及ipv4网内的p设备均无须做任何改动,可见6pe/6vpe技术是一类成本较低、应用方便、适合大规模部署的隧道技术。2.8 softwire清华大学提出的,按照ietf softwire工作组的定义,“softwire”是一种动态隧道,这种隧道建立在隧道两端之间的共享点到点或多点到点状态的控制协议之上。软线的目标是为了标准化ipv4网络穿越ipv6网络和ipv6网络穿越ipv4网络的连接的检测、控制和封装方法,以支持多种实现的互相兼容。在softwire机制中,需要考虑的问题和细节包括:softwire要同时支持单播和多播机制;softwire的建立者应该是双栈的;softwire的生存周期可能很长,但建立时间相对客户端设备(customer premise equipment, cpe)/地址族边界路由器(address family border router,afbr)(两者均是softwire建立者)的启动时间必须很短;要尽可能使用和扩展现有的、已经部署使用的技术。按照部署情境的不同,不同地址族网络的穿越问题可以分为两种情形:hub & spokes和网状网络(mesh)解决方案。前者针对的是单个连接和静态路由的情境,讨论的是主机或局域网的连接性问题;后者针对的是多个连接和路由地址前缀的情境,讨论的是网络间的连接性问题。在softwire机制中将采用不同的策略来解决这两个问题。以下首先分别就这两个问题和框架进行描述。hub&spoke按客户端网络拓扑结构的不同和softwire发起者的不同,hub & spokes问题分为四种情形(以下以ipv6穿越ipv4为例):1、双栈主机cpe作为softwire发起者,客户端网络没有网关。2、客户端主机接双栈路由器cpe,该路由器作为softwire发起者。3、客户端双栈主机接仅支持ipv4的路由器,主机作为softwire发起者。4、客户网内的双栈主机接仅支持ipv4的路由器,客户网内部的一台ipv6路由器作为softwire发起者。图2-9给出了第2种情况下的拓扑图,从图中我们可以对这个问题有一个更清楚的认识。在这种情况下,客户端网络的主机和路由器都是双栈的,传输网仅支持ipv4,远端的网络支持ipv6,softwire建立在ipv4传输网上,softwire发起者是客户网络的双栈路由器,另一端为v4和v6网络边界的双栈的softwire集中器。通过使用softwire,客户端的主机和路由器实现了与远端v6网络的连通。图2-9 hub & spoke在这个问题中,由于传输网仅支持一种地址族,客户端另一地址族下的应用受到限制,无法实现端到端的路由转发。为了支持这些应用,需要使用能够自动建立的隧道,构造虚拟的双栈底层结构。需要注意的是,softwire要做到能够穿越nat并且对nat透明;softwire必须支持dhcp在其上运行,支持向客户端网络分配地址前缀的功能。hub & spoke的部署框架使用l2tpv2(layer two tunneling protocol version 2)协议作为hub & spoke软线解决方案。在这种应用l2tp的部署中,hub & spoke软线发起者(softwire initiator, si)承担了l2tp协议中入口集中器(l2tp access concentrator, lac) client的角色,初始化l2tp的隧道(l2tp tunnel)和会话(l2tp session)以及ppp连接;isp端的软线集中器(softwire concentrator, sc)承担了l2tp协议中网络服务器(l2tp network server, lns)的角色。使用l2tpv2的一条软线由一个l2tpv2控制连接、一个l2tpv2 session以及在这个session上协商的ppp连接组成。软线的建立过程如下:首先,si初始化与sc之间的控制通道,包括在握手阶段进行的一个si和sc相互的认证过程;然后,si初始化与sc之间的会话;最后,si和sc之间通过l2tpv2会话协商建立ppp/ip连接,这个连接就是作为ip流量隧道的软线。在软线生命周期内,si和sc之间通过发送l2tpv2 keepalive hello消息以及lcp echo消息(可选)来保持连接。在keepalive超时或者主动关闭软线的情况下,si和sc双方都可以拆除l2tpv2控制通道和l2tpv2会话。具体软线建立的信令过程参见18。在建立软线的ppp连接上,如果是ipv4软线,si使用ipv4cp从sc获取ipv4地址;如果是ipv6软线,si使用ipv6cp从sc获取一个64位的接口标识符,进而获得link-local的ipv6地址,如果要获得全局v6地址,则还需使用stateless address autoconfiguration或dhcp6的方法。同时,si还可以使用dhcp获取包括dns服务器和分配地址前缀等信息。图2-10 softwire部署图2-10给出了客户端主机接双栈路由器cpe作为软线发起者的网络拓扑下的软线部署情况。l2tpv2包使用udp在ipv4网络上传输,封装过程从上层到底层为ipv6-ppp-l2tpv2-udp-ipv4。l2tpv2控制通道和会话以及ppp lcp协商成功后,si通过ipv6cp进行ipv6协商,并在其上运行ipv6 stateless address autoconfiguration / neighbor discovery过程,然后通过路由传播(router advertisement)将地址前缀交给cpe路由器,再使用dhcpv6分配地址前缀,获取dns信息等。网状网络mesh研究的是在网状网络环境下,隧道过渡所面临的问题。即核心网在不支持某一协议族的情况下,仍然作为该协议族报文转发路径上的一部分时的路由转发方法。此时核心网路由器中除了双栈的边界路由器外,将不维护这边缘接入网络的路由信息,也不能解析对应的报文。图2-10给出了mesh问题的拓扑图:图2-11 mesh网络在图2-11所示的场景中,为使两个af1的网络能够通过核心af2的网络连通,需要解决的问题是:1、使每个afbr(协议族边界路由器)能够知道通往某个af1地址前缀的路径的出口afbr地址;2、提供一种方法使得afbr间可以转发af1的报文。如采用封装的方式在afbr间形成隧道(也称为软线)用于转发af1报文。解决mesh问题的目标之一是所有改动都仅限于afbr,而不需要客户或核心网路由器的改动。mesh问题中对报文转发的解决方案不应局限于一种隧道机制,而应该提供多样的隧道机制,至少包括l2tpv3、ip-in-ip、mpls、gre、ipsec等。afbr之间必须能互相探测和交换必要的信息,包括支持的隧道种类以及参数等。网状软线的框架可以从路由、隧道转发和软线信令这几个方面来描述。1、路由核心网的内部路由器(p路由器)和afbr共同参与igp路由过程,分发核心网地址族(i-ip)路由信息。afbr使用ibgp互相分发接入网地址族(e-ip)路由信息。afbr之间可以组成一个网状全连接,或者使用bgp路由反射器。由于ibgp运行在i-ip之上,因此bgp更新消息中对应于e-ip格式nlri的“下一跳”地址是i-ip格式,而nlri则是e-ip格式。2、隧道转发当入口afbr在其与客户网络相连的接口接收到一个e-ip分组时,它将查看该分组的目的地址,此时与该目的地址所匹配的最佳路由应该是由bgp分发的下一跳地址为i-ip地址的路由,该i-ip地址即为主干网中相应的出口afbr的地址。入口afbr必须将该分组通过隧道(即“软线”)转发至出口afbr,即将e-ip分组封装成一个i-ip分组,然后通过核心网p路由器转发至出口afbr,然后由出口afbr将载荷(即原始的e-ip分组)还原出来,根据其目的ip地址继续向客户网转发。3、软线信令在网状网络中,使用手动方法来设置afbr之间的隧道关系将是一件不太可行的事情。因此,在软线的网状框架中,使用自动隧道建立机制。在网状软线框架中,通过定义使用bgp扩展消息来进行隧道信令。首先,不同的afbr所支持的隧道类型可能会各不相同,因此需要使用扩展的bgp消息来互相通告。另外,部分类型的隧道可能需要一定的信令过程才能够建立,比如l2tp或带选项的gre等。如果软线使用的隧道机制有自身的信令方法,则直接使用。如基于mpls的软线可使用ldp或rsvp-te,基于ipsec的软线将使用标准ike和ipsec信令的方法。而如果使用ip-ip隧道或无选项的gre隧道,则就不需要有信令过程。组播方案以上讨论的都是softwire对单播路由的解决方案,为了真正实现过渡,还需要解决相应的组播过渡问题。对hub & spokes软线来说,它所建立的ppp/ip连接对上层是透明的,因此组播协议与其他ip流量一样,可直接在l2tpv2软线上运行。而对mesh软线来说,需要采用额外的过程来转发接入网的组播数据。根据网状软线框架 的描述,实现跨传输网的组播有多种方式,可分为“一对一映射”方案和mvpn类似方案。在“一对一映射”方案中,每一棵客户网的组播树都会在核心网中有一个扩展,也就是说,对于客户网中的每一棵组播树,在核心网中都会建立与之对应的组播树,并使用该组播树转发客户网相应组播组的数据。采用这种方案可以很好的利用核心网的组播服务,降低网络数据流量,但是其缺点是在核心网路由器中要记录大量的状态,与客户网的组播树数量成比例。与之相比,mvpn类似方案指的是与l3vpn组播草案 中所描述方案类似的组播解决方案,其基本想法是将所有afbr看成是连接到同一局域网的pe路由器,组播的控制消息和数据分组均通过该“局域网”进行转发。该方案不要求客户网和传输网形成一对一的映射关系。与上一个方案相比,这种方案不需要核心网路由器维护大量状态,减轻了路由器负担,但是却导致了网络流量的增加。3. 翻译技术3.1 nat6nat6是一种翻译的方案,其主要思想就是通过修改ipv6主机的应用来实现ipv6主机访问ipv4服务器,该方案主要支持ipv6主机发起的通信,对于ipv4主机发起的通信,需要一些特殊服务的支持才能实现。首先,介绍一下v6发起的通信过程。nat from 6 to 4internalclient(ipv6)nat6externalserver(ipv4)59.66.110.174dns59.66.110.174dst :ffff:59.66.110.174/21dst 59.66.110.174/21src 2001:da8:abcd/1234src 166.111.68.238/2008图2-14 nat6原理示意图(ipv6主机发起的通信)如图2-14所示,由ipv6主机发起访问ipv4网络的服务器,v6主机首先查询目的主机对应的ip地址,由dns返回给ipv6主机一个ipv4地址,在图中目的地址是59.66.110.174,ipv6主机得到ipv4地址后,通过应用增加前缀,使v4地址嵌入到v6地址中,如图中ffff:59.66.110.174/21,ipv6主机利用自己的地址为源地址,目的地址为嵌入后的地址发送数据包,数据包被路由到nat6盒子上,在nat6盒子内,从ipv4地址池中随机找到一个地址(如图中166.111.68.238/2008),并且保存源地址和该地址的映射关系,同时将目的地址中的ipv4地址抽取出来,那么,以166.111.68.238/2008为源地址,59.66.110.174/21为目的地址转发ipv4数据包,应答包则以59.66.110.174/21为源地址、166.111.68.238/2008为目的地址发送ipv4包,路由到nat6上,根据保存过地映射关系,将v4数据包转换为v6数据包,并将v6数据包送回v6源主机,实现了ipv6主机访问ipv4服务器的通信。然后,再介绍由ipv4主机发起的通信,如图2-15所示。nat from 4 to 6internalserver(ipv6)nat6externalclient(ipv4)59.66.110.174 2001:da8:abcd/21 166.111.68.238/2008stun dst 166.111.68.238/2008 src 59.66.110.174/1234 dst 2001:da8:abcd/21 src 0:ffff:59.66.110.174/1234url图2-15 nat6原理示意图(ipv4主机发起的通信)由4发起的通信,必须有stun服务的支持,若59.66.110.174/1234主机访问ipv6服务,首先ipv6主机在stun上注册,在stun上保存主机地址和nat后地址的映射关系,并且ipv6主机将nat后的地址通过url等方式通知ipv4主机,ipv4获得nat地址后,就以nat后的地址为目的地址进行通信,在nat6盒子上,根据映射关系和加前缀的方式将v4数据包转换为v6数据包,并将数据包发送给目的服务器,回应包流程正好相反。优点:1、基本上可以实现所有ipv4地址和ipv6地址的通信;2、只需要修改v6主机的应用,修改较少。缺点:1、具有状态保存,这必然会带来一些开销,另外,发送包和回应包必须选择同一个nat6盒子作为转换网络设备,若选择不同的nat盒子,会造成无法通信的问题;2、将部署的开销由网络设备转化到主机上,可能会带来部署困难的问题。3.2 bis技术bis(rfc2767)技术的提出是为了解决已有的ipv4应用和ipv6主机应用之间的通信问题,让bis主机能使用ipv4应用同时和ipv4/6的主机通信。bis需要在主机上添加模块,通过截获ipv4模块和网卡之间的数据流,实现ipv4报文和ipv6报文的转换,即自翻译的功能。在bis主机上ipv6目的地址需要映射到一个局部私有的ipv4地址上,所以数据包可以基于映射信息进行类似siit的翻译。由于这个映射是通过扩展的域名解析模块来生成,所以用户和应用程序并不需要知道是在和ipv4或者ipv6对端通信。由于bis翻译过程采用siit的方式,所以也难以避免siit所存在的问题。图2-15 bis双栈主机结构图1)bis几个比较重要的部件:l 转换器(translator):采用siit中定义的方法实现ipv4和ipv6报文的相互翻译转化。当收到一个来自ipv4应用的数据包,它会将ipv4头转换成ipv6头再,如果有必要还需要对此ipv6数据包进行分段,然后再发送到ipv6网络中。如果收到一个ipv6报文也做类似的转换,把ipv6报文翻译成ipv4报文再交给上层应用。l 扩展名字解析器:该模块负责返回一个合适的“答案”给ipv4应用的域名请求。扩展名字解析器截获上层应用向名字服务器发起的a类记录的域名查询起请求,然后生成另一个请求报文包含a和aaaa类记录查询。如果有a类记录(ipv4),那么转换器就不需要做数据包的翻译转换工作,如果只有aaaa类记录(ipv6)返回那么解析器要求映射器分配一个ipv4地址与之构成映射。然后生成一个包含该ipv4地址的a类域名应答给上层应用程序。l 地址映射器:地址映射器维护一个私有地址ipv4的地址池,同时还维护一张ipv4和ipv6地址的一一映射的表。当解析器和转换器要求映射器为一个ipv6地址分配一个ipv4地址的时候,它从地址池中选择一个ipv4地址,并且在映射表中注册该ipv4/6地址的映射。这个注册过程有两种情况触发:1)解析器获得一个aaaa类记录的域名应答,但是映射表中没有域名应答中ipv6地址的记录;2)当转换器收到一个ipv6数据包,但是映射表中没有ipv6源地址对应表项。2)bis主机发起一次通信:1. bis主机和一个ipv6主机host6通信,bis主机上的应用程序先向名字服务器发送a类型记录的域名请求;2. 解析器截获这个查询,生成一个新的包含a和aaaa类型的域名查询发送给名字服务器,在这种情况下只有aaaa类型记录查询会被响应。解析器要求映射器为之分配一个ipv4地址;3. 映射器从地址池中选择一个ipv4地址返回给解析器,解析器收到该地址就生成一个a类型记录的域名回应给上层应用程序;4. 应用程序发送ipv4报文给host6所对应的ipv6主机;5. 当这个报文到达转换器,转换器请求映射器返回相应的映射信息;(注:bis主机的ipv4地址和ipv6地址在初始化过程中就已经注册在映射器中)6. 基于这些映射信息转换器就能顺利将ipv4报文翻译转换为ipv6报文。如果需要分段就做分段操作,然后直接发送到ipv6网络了。7. host6的应答数据包到达bis双栈的转换器,转换器不知道如何翻译转换该数据报文,因此转换器根据ipv6源和目的地址向映射器询问所对应的ipv4地址;8. 获得映射信息后,转换器就将ipv6数据包转换为ipv4数据包发送给相应的上层应用程序。3)host6发起和bis主机的通信:1. host6从它的名字服务器上解析bis主机的aaaa类型记录的域名,获得bis主机的ipv6地址后直接发送ipv6数据包;2. ipv6数据包到达bis主机的转换器,转换器不知道如何翻译该数据报文,因此要求地址映射器提供一个映射信息;3. 由于之前没有建立host6地址的映射信息,所以映射器从地址池中选择一个ipv4地址构成一个新的映射条目,并将该映射信息发送给转换器。4. 然后转换器基于映射信息将ipv6数据包翻译转换为ipv4数据包,发给相应的上层应用;5. 上层应用收到该数据包再回应一个ipv4数据包。4)协议分析:l bis的适用性:bis适合在ipv6还未广泛应用尤其是大量的ipv4的应用还未升级到ipv6的情况。用户可以在没有ipv6应用的前提下不用升级应用程序就能够和ipv6和ipv4用户进行通信。同时bis也支持单栈通信的情况。它不光光支持ipv4的固有应用,即使当应用程序升级到ipv6了bis也同样适用支持与ipv4和ipv6主机的通信。l bis的局限性只能支持单播不支持组播;由于siit翻译方式的的局限,难以处理上层应用携带ipv4选项的数据包;对上层应用中携带ip信息的报文支持不好,需要alg或者stun等方式来支持;不支持ipsec和安全dns3.3 biabia技术在双栈主机的socketapi模块与tcp/ip模块之间加入一个 api翻

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论