Datacom-HCIE-11 IPv6过渡技术 隧道和地址转换
随着IPv4地址短缺问题日益加剧,从IPv4网络向IPv6迁移已经成为各网络当前的工作重点。虽然IPv6是解决地址短缺的终极方案,但由于业务延续性的需要,IPv4网络将继续保留相当长时间。在网络向IPv6演进的过程中,部署IPv4地址和IPv6地址共存的网络将无可回避。
本文将讨论IPv4和IPv6共存时期的过渡技术,包括IPv6 overIPv4隧道、6PE、6VPE、IPv4 over IPv6、NAT64、IVI等。
概述
IPv6过渡技术简介
当前世界上不同地区对部署IPv6的需求强烈程度不一,且当前IPv4网络仍然占主流地位,因此短时间内IPv6和IPv4将会共存,可以借助双栈技术、隧道技术、转换技术,实现IPv4/IPv6共存业务的互通。
隧道技术:IPv6 over IPv4
IPv6 over IPv4是通过隧道技术,使IPv6报文在IPv4网络中传输,实现IPv6网络之间的孤岛互连。
IPv6 over IPv4隧道原理:
- 边界设备R1和R2启动IPv4/IPv6双协议栈,并配置IPv6 over IPv4隧道。
- R1收到从IPv6网络侧发来的报文后,如果报文的目的地址不是自身且下一跳为Tunnel接口,就要把收到的IPv6报文作为数据部分,加上IPv4报文头,封装成IPv4报文。
- 在IPv4网络中,封装后的报文被传递到对端的边界设备R2。
- R2对报文解封装,去掉IPv4报文头,然后将解封装后的IPv6报文发送到IPv6网络中。
IPv6 over IPv4隧道分类:
IPv6 over IPv4隧道的源IPv4地址必须为手工配置,而目的IPv4地址有手工配置和自动获取两种方式。根据隧道目的IPv4地址的获取方式不同可以将IPv6 over IPv4隧道分为手动隧道和自动隧道。
IPv6 over IPv4
手动隧道
手动隧道即边界设备不能自动获得隧道目的IPv4地址,需要手工配置,报文才能正确发送至隧道终点。
自动隧道
自动隧道中,用户仅需要配置设备隧道的源IPv4地址,隧道的目的IPv4地址由设备自动生成。为了使设备能够自动产生目的IPv4地址,隧道接口的IPv6地址采用内嵌IPv4地址的特殊IPv6地址形式。设备从IPv6报文中的目的IPv6地址中解析出IPv4地址,然后以这个IPv4地址代表的节点作为隧道的终点。
6PE
隧道技术:6PE
对于网络中的运营商来说,无须另外新建IPv6骨干网络,可以利用现有IPv4网络为用户提供IPv6服务来连接网络中的IPv6孤岛,6PE(IPv6 Provider Edge,IPv6供应商边缘路由器)正是基于这个理念来设计的。
6PE是一种在目前的IPv4网络中利用MPLS隧道技术为不同地区的被分割的IPv6网络提供连通服务的解决方案,它是在ISP的PE上实现IPv4/IPv6双协议栈,利用MP-BGP为其分配的标签标识IPv6路由,从而通过PE之间的IPv4隧道实现IPv6孤岛之间的互通。
单自治域6PE
IPv6孤岛连接到同一个自治域,处于同一个自治域内的PE之间通过MP-IBGP关系传递IPv6路由。
单自治域6PE的路由传递和数据转发过程如图所示,该图表示的是CE2发送路由给CE1,CE1发送报文给CE2的过程。
I-L表示内层标签(MP-IBGP Label),内层标签由MP-BGP分配,表示报文的出接口或者报文属于哪个CE。
O-L表示外层隧道标签(MPLS Label),外层隧道标签由MPLS分配,用来指示如何到达BGP下一跳。
6PE路由共享显式空标签
在6PE组网中,默认情况下,6PE路由是每路由每标签方式,即每条发送到其他6PE对等体的路由都需要申请一个标签,占用标签的数量与需要发送的6PE路由数成正比,当要发送大量6PE路由时会占用大量的标签资源。
使能6PE路由共享显式空标签后,所有发往其他对等体的6PE路由会共享显式空标签2,而不用再为每条路由申请标签,占用标签的数量与6PE的路由量无关,这样就大大节省了6PE设备上的标签资源。
显式空标签2是一种特殊标签,表示该标签在Egress PE上必须被弹出,且报文的转发必须基于IPv6。
6VPE
隧道技术:6VPE
6PE技术本质上相当于将所有通过6PE连接的IPv6业务都放在一个VPN内,无法做逻辑隔离,因此只能用于开放的、无保护的IPv6网络互联,如果需对所连接的IPv6业务做逻辑隔离,即实现IPv6 VPN,则需要借助于6VPE(IPv6 VPN Provider Edge, IPv6 VPN供应商边缘路由器)技术。
6VPE技术是基于BGP/MPLS IPv6 VPN的扩展技术,在IPv4 MPLS骨干网上承载IPv6的VPN业务。
与6PE技术相比,6VPE技术通过MP-BGP在IPv4 MPLS骨干网发布VPNv6路由,通过MPLS分配标签来标识IPv6报文,并使用LSP、MPLS TE等隧道机制在骨干网上实现私网数据的传送。
在骨干网络是IPv4的情况下,PE之间使用IPv4地址建立VPNv6邻居,传递VPNv6路由,VPNv6路由可以选择骨干网中的IPv4隧道来承载IPv6 VPN业务。
6VPE除PE和CE之间运行的路由协议与IPv4 VPN不同外,其它所有特性原理都与IPv4 VPN相同。
配置6VPE
- 配置VPN实例。
[HUAWEI] ip vpn-instance vpn-instance-name
[HUAWEI-vpn-instance-vpna] ipv6-family
[HUAWEI-vpn-instance-vpna-af-ipv6] route-distinguisher route-distinguisher
[HUAWEI-vpn-instance-vpna-af-ipv6] vpn-target vpn-target [ both | export-extcommunity | import-extcommunity ]
配置VPN实例IPv6地址族的RD和VPN-target扩展团体属性。
2. 配置接口与VPN实例绑定。
[HUAWEI-GigabitEthernet0/0/1] ip binding vpn-instance vpn-instance-name
[HUAWEI-GigabitEthernet0/0/1] ipv6 enable
[HUAWEI-GigabitEthernet0/0/1] ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length }
- 配置PE之间使用MP-IBGP,传递VPNv6路由。
[HUAWEI] bgp as-number
[HUAWEI-bgp] peer ipv4-address as-number as-number
[HUAWEI-bgp] peer ipv4-address connect-interface interface-number
进入BGP视图,将对端PE配置为IBGP对等体。
[HUAWEI-bgp] ipv6-family vpnv6
[HUAWEI-bgp-af-ipv6] peer ipv4-address enable
使能并进入BGP-VPNv6地址族视图。使能对等体交换VPNv6路由信息的能力。
4. 配置PE和CE间的路由交换。(以静态路由为例,CE上的配置方法与普通IPv6静态路由相同,介绍略。)
[PE] ipv6 route-static vpn-instance vpn-instance-name dest-ipv6-address prefix-length { interface-type interface-number [ nexthop-ipv6-address ] | vpn-instance vpn-destination-name nexthop-ipv6-address | nexthop-ipv6-address }[ preference preference ]
在使能IPv6地址族的VPN实例下配置IPv6静态路由。
[PE-bgp] ipv6-family vpn-instance vpn-instance-name
[PE-bgp-bgp6-vpnb] import-route static [ med med | route-policy route-policy-name ]
进入BGP-VPN实例IPv6地址族视图,将配置的静态路由引入BGP-VPN实例IPv6地址族路由表。
med med:指定引入路由的med。整数形式,取值范围是0~4294967295。
route-policy route-policy-name:从其他路由协议引入路由时,可以使用该参数指定的Route-Policy过滤器过滤路由和修改路由属性。
6VPE配置举例
1、配置各接口的IPv4和IPv6地址。(略)
2、配置PE1和PE2之间的IS-IS路由协议,使PE之间可以互相学习到去往对方Loopback0的路由。(略)
3、骨干网上使能MPLS、MPLS LDP,PE之间建立LDP LSP。
[PE1] mpls lsr-id 2.2.2.2
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1-mpls-ldp] quit
[PE1] interface GigabitEthernet0/0/2
[PE1-GigabitEthernet2/0/0] mpls
[PE1-GigabitEthernet2/0/0] mpls ldp
4、PE上创建支持IPv6地址族的VPN实例,并将PE连接CE的接口与VPN实例绑定。
[PE1] ip vpn-instance vpna
[PE1-vpn-instance-vpna] ipv6-family
[PE1-vpn-instance-vpna-af-ipv6] route-distinguisher 100:1
[PE1-vpn-instance-vpna-af-ipv6] vpn-target 22:22 both
[PE1] interface GigabitEthernet0/0/1
[PE1-GigabitEthernet0/0/1] ip binding vpn-instance vpna
[PE1-GigabitEthernet0/0/1] ipv6 enable
[PE1-GigabitEthernet0/0/1] ipv6 address 2001:DB8:1::2 64
5、PE之间建立VPNv6对等体关系。
[PE1] bgp 200
[PE1-bgp] peer 3.3.3.3 as-number 200
[PE1-bgp] peer 3.3.3.3 connect-interface loopback 0
[PE1-bgp] ipv6-family vpnv6
[PE1-bgp-af-vpnv6] peer 3.3.3.3 enable
[PE2] bgp 200
[PE2-bgp] peer 2.2.2.2 as-number 200
[PE2-bgp] peer 2.2.2.2 connect-interface loopback 0
[PE2-bgp] ipv6-family vpnv6
[PE2-bgp-af-vpnv6] peer 2.2.2.2 enable
6、在PE和CE上配置静态路由,并在PE上将静态路由引入到BGP-VPN实例IPv6地址族路由表中。
[PE1] ipv6 route-static vpn-instance vpna 2001:DB8:5:: 64
2001:DB8:1::1
[PE1] bgp 200
[PE1-bgp] ipv6-family vpn-instance vpna
[PE1-bgp6-vpna] import-route static
[CE1] ipv6 route-static :: 0 2001:DB8:1::2
[PE2] ipv6 route-static vpn-instance vpna 2001:DB8:6:: 64
2001:DB8:2::1
[PE2] bgp 200
[PE2-bgp] ipv6-family vpn-instance vpna
[PE2-bgp6-vpna] import-route static
[CE2] ipv6 route-static :: 0 2001:DB8:2::2
查看配置结果
- 在PE上查看VPNv6对等体的建立情况
[PE1]display bgp vpnv6 all peer
BGP local router ID : 10.0.0.1
Local AS number : 200
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
3.3.3.3 4 200 19 19 0 00:12:25 Established 1
- CE1可以Ping通CE2的Loopback1地址。
[CE1]ping ipv6 -a 2001:db8:5::5 2001:db8:6::6
PING 2001:db8:6::6 : 56 data bytes, press CTRL_C to break
Request time out
Reply from 2001:DB8:6::6
bytes=56 Sequence=2 hop limit=62 time = 50 ms
Reply from 2001:DB8:6::6
bytes=56 Sequence=3 hop limit=62 time = 40 ms
Reply from 2001:DB8:6::6
bytes=56 Sequence=4 hop limit=62 time = 30 ms
Reply from 2001:DB8:6::6
bytes=56 Sequence=5 hop limit=62 time = 30 ms
--- 2001:db8:6::6 ping statistics ---
5 packet(s) transmitted
4 packet(s) received
20.00% packet loss
round-trip min/avg/max = 30/37/50 ms
IPv4 over IPv6
IPv4 over IPv6 隧道技术:IPv4 over IPv6
在IPv4网络向IPv6网络过渡后期,IPv6网络已被大量部署,而IPv4网络只是被IPv6网络隔离开的局部网络。采用专用的线路将这些IPv4网络互连起来,显然是不经济的,通常的做法是采用隧道技术。
利用隧道技术可以在IPv6网络上创建隧道,使IPv4网络能通过IPv6公网访问其他IPv4网络,从而实现IPv4网络之间的互连,这种隧道称为IPv4 over IPv6隧道。
IPv4 over IPv6隧道是在隧道两端的边界路由器上通过手动配置而创建的,需要静态指定隧道的源地址/源接口和目的地址。
如图所示,IPv4 over IPv6隧道对报文的处理都是在两个边界节点上(R1和R2)完成的,其余节点(Host 1,Host 2,以及R1和R2之间的节点)都感知不到隧道的存在。因为Host 1与R1、R2与Host 2之间转发的是IPv4报文,R1与R2之间转发的是IPv6报文,所以边界节点( R1和R2 )需要能同时处理IPv4/IPv6报文,即:IPv4网络与IPv6网络交界的边界路由器上均需要支持并启动IPv4/IPv6双协议栈。
NAT64
转换技术:NAT64
NAT64是一种将IPv6网络地址转换成IPv4网络地址的NAT(Net Address Translation,网络地址转换)技术。
当IPv4网络的节点需要直接与IPv6网络的节点进行通信时,默认情况下是行不通的,因为两个协议栈无法兼容。但是借助一台设备,由该设备来实现IPv6与IPv4的互转,那么上述通信就可以实现了。
NAT64设备判断数据报文的依据是目的地址的IPv6前缀,因此要进行NAT64处理的报文前缀需要提前被定义。
如果设备接收到的IPv6报文的前缀是设备为NAT64定义的前缀,说明报文的目的地址是IPv4网络,报文将经过NAT64处理后被转发至IPv4网络。
如果设备接收到的IPv6报文的前缀不是设备为NAT64定义的前缀,说明报文的目的地址是IPv6网络,报文将不经过NAT64处理,直接被转发至IPv6网络。
NAT64前缀
设备通过判断IPv6报文的目的地址中是否包含NAT64前缀来初步判断是否对该IPv6报文进行NAT64处理。
NAT64前缀分为两种形式:
知名前缀:即64:FF9B::/96,缺省情况下已存在,无需配置。
自定义前缀:前缀长度为32、40、48、56、64或96。
根据前缀长度不同,IPv4地址嵌入IPv6地址时,嵌入的位置存在差异,具体差异如图所示。
PL(Prefix Length)表示前缀长度;Suffix表示后缀,可以任意取值,设备不处理该字段;U为保留位,8 bit,取值必须为0。
动态NAT64映射
当网络中存在大量IPv6用户且IP地址不固定时,IPv6用户访问IPv4 Server,报文到达设备后,设备会将IPv6地址动态转换为地址池中的IPv4地址,并将IPv6报文转换为IPv4报文,发送给IPv4 Server,实现IPv6用户访问IPv4业务。
在此场景中NAT64设备通过IPv6到IPv4的流量触发创建会话表,并记录地址映射关系;IPv4到IPv6的流量匹配会话表后,查找地址映射关系进行反向回复。
静态NAT64映射
静态NAT64通过静态配置IPv6和IPv4地址的映射关系,不需要刷新也不老化,一直存在。这样IPv6到IPv4以及IPv4到IPv6的流量都能够触发创建会话表,这不仅可以实现IPv6用户访问IPv4服务器,也为IPv4用户访问IPv6服务器提供了一种方案。
IPv6用户访问IPv4业务时,设备将报文的目的IPv6地址静态映射为IPv4地址;IPv4用户访问IPv6业务时,设备将报文的目的IPv4地址静态映射为IPv6地址。
配置NAT64前缀
- 开启全局/接口下NAT64功能。
[HUAWEI] nat64 enable
[HUAWEI-GE1/0/1] nat64 enable
开启全局NAT64功能后,所有接口的NAT64功能都被启用。
2. 配置NAT64前缀。
[HUAWEI] nat64 prefix prefix prefix-length
prefix:IPv6地址前缀。
prefix-length:前缀长度。可取值为32,40,48,56,64或96。
3. 查看NAT64前缀配置结果。
[HUAWEI] display nat64 prefix
配置动态NAT64映射
- 配置NAT地址池。
[HUAWEI] nat address-group group-name [ group-number ]
[HUAWEI-address-group-nataddr] mode { pat | full-cone { global | local } [ no-reverse ] }
配置地址池的应用模式,缺省情况下为pat模式。
[HUAWEI-address-group-nataddr] section section-id start-address [ end-address ]
配置IP地址池中的IP地址段。
2. 配置NAT策略。
[HUAWEI] nat-policy
[HUAWEI-policy-nat] rule name rule-name
[HUAWEI-policy-nat-rule-abc] nat-type nat64
配置NAT策略的类型。
配置静态NAT64映射
- 配置静态NAT64映射。
[HUAWEI] nat64 static ipv6-address ipv4-address [ route ]
配置指定IPv6地址的NAT64静态映射。
[HUAWEI] nat64 static protocol icmp ipv6-address ipv4-address [ route ]
配置协议类型为ICMP的NAT64静态映射。
[HUAWEI] nat64 static protocol { tcp | udp } ipv6-address [ ipv6-port ] ipv4-address [ipv4-port ] [ route ]
配置协议类型为TCP或UDP的NAT64静态映射。
动态NAT64配置举例
1、配置FW1的IPv4和IPv6地址,配置安全区域。(略)
2、配置安全策略。
[FW1] security-policy
[FW1-policy-security] rule name sec1
[FW1-policy-security-rule-sec1] source-zone untrust
[FW1-policy-security-rule-sec1] destination-zone trust
[FW1-policy-security-rule-sec1] source-address 2001:db8 :: 64
[FW1-policy-security-rule-sec1] action permit
3、开启FW1接口GE1/0/1的NAT64功能。
[FW1] interface GigabitEthernet 1/0/1
[FW1-GigabitEthernet1/0/1] nat64 enable
4、配置NAT64的前缀为2001:db8:1:/96(自定义前缀)。
[FW1] nat64 prefix 2001:db8:1 :: 96
5、配置NAT64地址池。
[FW1] nat address-group pool1
[FW1-address-group-pool1] mode pat
[FW1-address-group-pool1] section 1 1.1.1.6 1.1.1.10
6、配置NAT64动态映射。
[FW1] nat-policy
[FW1-policy-nat] rule name nat64
[FW1-policy-nat-rule-nat64] nat-type nat64
[FW1-policy-nat-rule-nat64] source-zone untrust
[FW1-policy-nat-rule-nat64] destination-zone trust
[FW1-policy-nat-rule-nat64] source-address 2001:db8 :: 64
[FW1-policy-nat-rule-nat64] action source-nat address-group pool1
IVI
转换技术:IVI
IVI无状态地址转换技术的主要思想是运营商保留一段IPv4地址(称为IVI4地址),将其唯一映射为一段特殊的IPv6地址(称为IVI6地址),通过地址嵌套的方式,可以实现这部分地址的无状态转换。
获得IVI6地址的用户可以直接访问全球IPv6网络,通过IVI网关翻译器可将地址转换IVI4地址,可以和全球IPv4网络通信,实现IPv4和IPv6的互访。
IVI6地址结构:
IPv6能够提供海量的网络地址资源,是实现万物互联,促进生产生活数字化、网络化、智能化
发展的关键要素。发展基于IPv6的下一代互联网,是互联网演进升级的必然趋势。
• 在IPv4网络向IPv6网络过渡的初期,IPv4网络已被大量部署,而IPv6网络只是散布在世界各地
的一些孤岛。可以利用隧道技术在IPv4网络上创建隧道,从而实现IPv6孤岛之间的互连。也可
以利用地址转换技术进行IPv6与IPv4之间的网络地址与协议的转换,从而实现IPv6网络与IPv4
网络的双向互访。
• 本文主要介绍了IPv6网络演进过程中的过渡技术原理及应用,包括IPv6 over IPv4隧道、
6PE、6VPE、IPv4 over IPv6隧道、NAT64、IVI等。