随着网络的日益发展,IPv4地址短缺等问题也正在越发加剧,因此从IPv4网络向IPv6网络迁移已经成为各网络当前的工作重点。但是我们也知道IPv4网络不可能一夜之间全部消失,由于业务延续性的需要,我们IPv4网络肯定还是会保留相当长的一段时间,网络的迁移也必然是循序渐进的。因此我们就需要有一定的过渡技术来度过这段IPv4和IPv6共存的时期,那么我们本篇文章就来了解下,IPv6是如何和IPv4共存互通的。 首先我们在学习过渡技术之前,先回顾我们之前了解的一个IPv6的知识,从我们之前的了解来看IPv6虽然是依赖IPv4的很多理念,取其精华,去其糟粕,加入很多自己的内容,但是毕竟是一个独立的技术,它是无法直接和IPv4网络相融合的(对于IPv6技术的一些内容不能很了解的小伙伴可以去偷偷翻下之前的内容),那么我们可以通过什么手段才能将IPv4和IPv6网络互通呢?且看下面三种方案:
一、双栈技术:
双栈技术是最简单的一种实现共存的方式,很简单就是设备此时运行两个协议栈,一个IPv4的协议栈,一个IPv6的协议栈,那么设备和IPv4网络通信自然就走IPv4协议栈,和IPv6网络通信自然就走IPv6协议栈喽。
换而言之就是每个人都要掌握两种“语言”—汉语和英语,见到中国人我们就讲汉语,见到外国人我们讲英语。 但是这种实现方式我们是有一定缺陷的: 1:设备的资源消耗会加大,这是必然的,原本只有一个协议栈就可以了,现在需要两个了,肯定会产生更大的资源消耗,你以为学习一种语言是那么容易的吗。 2:我们的设备必须支持两种协议栈才可以,但是网络中总归还是有一部分设备只能支持一种,那就没得玩了,也就是有的人只会汉语,那么碰上说英语的就两眼一抹黑了。 3:这种实现方式最终还是IPv4的网络和IPv4通信,IPv6和IPv6的网络通信,没法实现IPv4和IPv6之间的直接通信,也就是一个单纯只会汉语的和一个只会英语的还是无法交流。
二、隧道技术
隧道技术是为了实现IPv6孤岛之间的互连的。 我们先了解下啥是孤岛呢?看图
在我们互联网中中间的公共网络还是IPv4的,但是我们公司目前在两地建立的机房使用的是IPv6的,我们现在想要实现两地IPv6机房之间的互通就需要用到我们的隧道基础,那么我们的两地的机房就被称为IPv6的孤岛。 小伙伴们可以想象IPv4就是一片汪洋大海(网络初始IPv4还是占据主导地位的),而我们建立的IPv6的网络就是大海上的两个小岛,我们要将这两个小岛连通起来,就需要在他们两个之间建立一个跨海大桥(就是隧道)
OK,大体了解之后,我们来看下具体实现,还是上面那张图,从该图中我们可以看出所谓隧道其实就是在原本的IPv6的报头基础之上又给包裹了一层IPv4的报头,那么在IPv4的网络中传递就可以通过IPv4的报头实现转发了,到达隧道的尽头再将IPv4报头去掉,露出原本的IPv6的信息。就相当于我们的数据在进入IPv4网络中转发时将穿上一个IPv4的马甲,之前IPv6的信息都在马甲里面,IPv4网络在转发的时候光看马甲就可以了,到了对方脱掉马甲回到最开始的IPv6。 那么隧道是咋建立的呢?两种方式一种是手工、一种是自动
手工隧道:
手动隧道即边界设备不能自动获得隧道目的IPv4地址,需要手工配置,报文才能正确发送至隧道终点。 简单来说手工隧道就是手工写清楚隧道的源地址和目的地址,我们也知道隧道就是在外层加了一个IPv4的包头,那么IPv4报文中我们知道就有源IP地址和目的IP地址,手工方式就是把这两个地址手工配置上。
也可以采用GRE的封装方式来完成数据转发
但是手工隧道配置虽然简单,但是一旦隧道数量比较多的话,对于管理员也是一个比较大的负担,那么我们可以使用第二种隧道建立方式-自动隧道
自动隧道
自动隧道中,用户仅需要配置设备隧道的源IPv4地址,隧道的目的IPv4地址由设备自动生成。为了使设备能够自动产生目的IPv4地址,隧道接口的IPv6地址采用内嵌IPv4地址的特殊IPv6地址形式。设备从IPv6报文中的目的IPv6地址中解析出IPv4地址,然后以这个IPv4地址代表的节点作为隧道的终点。 简单的说就是,隧道现在只需要你配置源地址了,源地址这个很简单毫无疑问的就是本机的地址,那么目的地址就是在IPv6地址中隐藏着,反正IPv6地址那么长,128位呢,中间隐藏一个32位的IPv4地址还不是轻轻松。 地址隐藏的方式不通也就有不同的方式,且看下面。
6PE技术
对于网络中的运营商来说,无须另外新建IPv6骨干网络,可以利用现有IPv4网络为用户提供IPv6服务来连接网络中的IPv6孤岛,6PE(IPv6 Provider Edge,IPv6供应商边缘路由器)正是基于这个理念来设计的。 6PE是一种在目前的IPv4网络中利用MPLS隧道技术为不同地区的被分割的IPv6网络提供连通服务的解决方案,它是在ISP的PE上实现IPv4/IPv6双协议栈,利用MP-BGP为其分配的标签标识IPv6路由,从而通过PE之间的IPv4隧道实现IPv6孤岛之间的互通。 还记得我们的MPLS VPN吗?在这难道不眼熟吗?
6PE优势: 便于维护:所有配置在PE上完成,用户的IPv6网络感知不到IPv4网络的存在。利用现有的IPv4网络承载IPv6业务,降低了维护难度。 建网成本低:运营商能够很好的利用现有的MPLS网络资源,无须对网络进行升级改造就可以为用户提供IPv6服务。6PE设备还可以同时为用户提供IPv6 VPN和IPv4 VPN等多种业务。
目前IPv4网络占据主导地位,所以用IPv4来去承载IPv6的网络,那么在网络的未来,IPv6占据主导后,我们可以使用IPv6来承载IPv4的网络,链接IPv4的孤岛,这种情况下不要不会了偶。
三、转换技术:NAT64
NAT64是一种将IPv6网络地址转换成IPv4网络地址的NAT(Net Address Translation,网络地址转换)技术。 当IPv4网络的节点需要直接与IPv6网络的节点进行通信时,默认情况下是行不通的,因为两个协议栈无法兼容。但是借助一台设备,由该设备来实现IPv6与IPv4的互转,那么上述通信就可以实现了。 可以看出这种方式才真正的实现了IPv4网络设备和IPv6网络设备的互通,就好比一个只会说汉语的人和一个只会说英语的人想要沟通我们可以使用语音翻译软件进行实时的翻译,将汉语和英语进行一个翻译,使通信的双方可以按照他所掌握的语言读懂这个信息。NAT64设备就是这个所谓的翻译软件了,完美!!
静态NAT映射
静态NAT64通过静态配置IPv6和IPv4地址的映射关系,不需要刷新也不老化,一直存在。这样IPv6到IPv4以及IPv4到IPv6的流量都能够触发创建会话表,这不仅可以实现IPv6用户访问IPv4服务器,也为IPv4用户访问IPv6服务器提供了一种方案。 IPv6用户访问IPv4业务时,设备将报文的目的IPv6地址静态映射为IPv4地址;IPv4用户访问IPv6业务时,设备将报文的目的IPv4地址静态映射为IPv6地址。
动态NAT映射
当网络中存在大量IPv6用户且IP地址不固定时,IPv6用户访问IPv4 Server,报文到达设备后,设备会将IPv6地址动态转换为地址池中的IPv4地址,并将IPv6报文转换为IPv4报文,发送给IPv4 Server,实现IPv6用户访问IPv4业务。 在此场景中NAT64设备通过IPv6到IPv4的流量触发创建会话表,并记录地址映射关系;IPv4到IPv6的流量匹配会话表后,查找地址映射关系进行反向回复。
NAT64前缀
不管静态还是动态映射,中间都有一个重要概念-NAT64前缀
NAT64设备判断数据报文的依据是目的地址的IPv6前缀,因此要进行NAT64处理的报文前缀需要提前被定义。 如果设备接收到的IPv6报文的前缀是设备为NAT64定义的前缀,说明报文的目的地址是IPv4网络,报文将经过NAT64处理后被转发至IPv4网络。 如果设备接收到的IPv6报文的前缀不是设备为NAT64定义的前缀,说明报文的目的地址是IPv6网络,报文将不经过NAT64处理,直接被转发至IPv6网络。 设备通过判断IPv6报文的目的地址中是否包含NAT64前缀来初步判断是否对该IPv6报文进行NAT64处理。
NAT64前缀分为两种形式: 知名前缀:即64:FF9B::/96,缺省情况下已存在,无需配置。 自定义前缀:前缀长度为32、40、48、56、64或96。
根据前缀长度不同,IPv4地址嵌入IPv6地址时,嵌入的位置存在差异,具体差异如图所示。 PL(Prefix Length)表示前缀长度;Suffix表示后缀,可以任意取值,设备不处理该字段;U为保留位,8 bit,取值必须为0。
好了,通过这篇文章相信大家对于IPv6的过渡技术应该是有了一个了解,可能有的小伙伴对于这些技术的配置还是想要了解一下,那么咱们下期见。 加群一起聊技术,有啥问题可以直接分享交流QQ群:316317765,也可以关注下公众号,后期会有更多资料发布。 -----尚文网络奎哥原创
|