IPv6过渡技术
- IPv6过渡技术简介
- [隧道技术:IPv6 over IPv4](#隧道技术:IPv6 over IPv4)
- 手动隧道
- 自动隧道
- 隧道技术:6VPE
- 转换技术:NAT64
- NAT64前缀
- 动态NAT64映射
- 静态NAT64映射
IPv6过渡技术简介
- 当前世界上不同地区对部署IPv6的需求强烈程度不一,且当前IPv4网络仍然占主流地位,因此短时间内IPv6和IPv4将会共存,可以借助双栈技术、隧道技术、转换技术,实现IPv4/IPv6共存业务的互通。
隧道技术:IPv6 over IPv4
- IPv6 over IPv4是通过隧道技术,使IPv6报文在IPv4网络中传输,实现IPv6网络之间的孤岛互连。
- IPv6 over IPv4隧道原理:
- IPv6 over IPv4隧道分类:
- IPv6 over IPv4隧道的源IPv4地址必须为手工配置,而目的IPv4地址有手工配置和自动获取两种方式。根据隧道目的IPv4地址的获取方式不同可以将IPv6 over IPv4隧道分为手动隧道和自动隧道。
手动隧道
- 手动隧道即边界设备不能自动获得隧道目的IPv4地址,需要手工配置,报文才能正确发送至隧道终点。
实验
自动隧道
- 自动隧道中,用户仅需要配置设备隧道的源IPv4地址,隧道的目的IPv4地址由设备自动生成。为了使设备能够自动产生目的IPv4地址,隧道接口的IPv6地址采用内嵌IPv4地址的特殊IPv6地址形式。设备从IPv6报文中的目的IPv6地址中解析出IPv4地址,然后以这个IPv4地址代表的节点作为隧道的终点。
- IPv4兼容IPv6自动隧道数据转发流程:
- IPv6报文到达R1后,以目的地址::A01:102查找IPv6路由,发现路由的下一跳为虚拟的Tunnel口。
- R1对IPv6报文进行了封装。封装的时候,IPv6报文被封装为IPv4报文,IPv4报文中的源地址为隧道的源IPv4地址10.1.1.1,而目的IPv4地址直接从IPv4兼容IPv6地址::A01:102的后32位拷贝过来即10.1.1.2。
- 这个报文被路由器从隧道口发出后,在IPv4的网络中被路由转发到目的地10.1.1.2,也就是R2。R2收到报文后,进行解封装,把其中的IPv6报文取出,送给IPv6协议栈进行处理。
- R2返回R1的报文也是按照这个过程来进行的。
- 6to4隧道:
- 6to4地址的网络前缀长度为64 bit:
- 前48 bit(2002: a.b.c.d)被分配给路由器上的IPv4地址决定了,用户不能改变。
- 后16位(SLA)是由用户自己定义的。
- 6to4地址解释:
- FP(Format Prefix):可聚合全球单播地址的格式前缀,其值为001。
- TLA(Top Level Aggregator):顶级聚合标识符,其值为0x0002。
- SLA(Site Level Aggregator):站点级聚合标识符。
- 6to4地址的网络前缀长度为64 bit:
实验
隧道技术: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相同。
实验
- 注:要完成次实验PE设备必须使用Router设备,其他普通路由器不支持vpnv6功能
6VPE配置举例
- 配置需求:
- 不同用户站点希望通过公网进行IPv6的数据通信,而又不希望公网感知到站点内部的路由信息,且希望实现业务隔离。
- 如图所示,CE1和CE2属于vpna。希望通过配置6VPE,使得vpna的内部站点可以通过MPLS骨干网互相访问,同时希望PE与CE之间采用静态路由的方式来交换路由。
- 1、配置各接口的IPv4和IPv6地址。(略)
- 2、配置PE1和PE2之间的IS-IS路由协议,使PE之间可以互相学习到去往对方Loopback0的路由。(略)
- 3、骨干网上使能MPLS、MPLS LDP,PE之间建立LDP LSP。
javascript
[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实例绑定。
javascript
[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对等体关系。
javascript
[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地址族路由表中。
javascript
[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
- 7、查看配置结果
-
- 在PE上查看VPNv6对等体的建立情况。
javascript
[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地址。
javascript
[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
转换技术:NAT64
-
NAT64是一种将IPv6网络地址转换成IPv4网络地址的NAT(Net Address Translation,网络地址转换)技术。
-
当IPv4网络的节点需要直接与IPv6网络的节点进行通信时,默认情况下是行不通的,因为两个协议栈无法兼容。但是借助一台设备,由该设备来实现IPv6与IPv4的互转,那么上述通信就可以实现了。
-
IPv6网络用户访问IPv4网络服务器的应用场景。
- 在向IPv6网络演进的前期,运营商为用户提供IPv6单栈接入能力,而很多Internet服务器还是IPv4的,不具备双栈能力。这种情况下,运营商提供NAT64设备,使IPv6单栈用户可以访问IPv4服务器。
- 该场景下,运营商只为用户分配IPv6地址,NAT64设备支持双栈,纯IPv6的访问通过IPv6路由来实现;而IPv6访问IPv4业务通过NAT64映射技术来完成。
- 当IPv6用户较少且IP地址固定时,可以通过静态NAT64映射实现IPv6访问IPv4业务;当网络中存在大量IPv6用户且IP地址不固定时,可以通过动态NAT64映射实现IPv6访问IPv4业务。
-
IPv4网络用户访问IPv6网络服务器的应用场景。
- 在向IPv6网络演进的后期,许多服务提供商已经开始提供IPv6服务。而Internet上还有很多IPv4单栈用户存在,为了保留住用户,服务提供商提供NAT64设备,使IPv4单栈用户可以访问服务器。
- 该场景下,服务提供商只为服务器分配IPv6地址,接入设备不需要升级。NAT64设备部署在出口,必须支持双栈,其中纯IPv6的访问通过IPv6路由来实现;而IPv4对IPv6的访问通过静态NAT64映射技术来完成。
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。
- PL(Prefix Length)表示前缀长度;Suffix表示后缀,可以任意取值,设备不处理该字段;U为保留位,8 bit,取值必须为0。
- NAT64分类:
- 基于PAT方式的NAT64转换:NAT64过程中对于地址和端口同时进行转换操作,[IPv6地址,端口]与[IPv4地址,端口]相互映射。即,转换前后的地址是多对一的关系,多个IPv6地址可以转换成同一个IPv4地址(映射关系通过端口的不同来区分)。该方式是常用的NAT64转换方式。
- 基于NO-PAT方式的NAT64转换:NAT64过程中对于地址进行转换操作,不对端口进行转换操作,[IPv6地址]与[IPv4地址]相互映射。即,转换前后的地址是一对一的关系。
动态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配置举例
-
配置需求:
- FW1支持双协议栈,连接IPv6网络以及IPv4网络。
- 位于IPv6网络中的PC(IP地址不固定且数量较多)通过域名example.huawei.com能够访问位于IPv4网络中的Server。
-
IPv6 PC发出的IPv6报文中的目的地址是NAT64地址:2001:DB8:1::101:102/96。
-
其他配置:
- 配置DNS64设备。
- 配置DNS64设备的IPv6前缀为FW1的NAT64前缀2001:DB8:1::/96。
- 配置DNS64设备分别与PC和Server路由可达。
- 配置PC的IPv6地址、路由和DNS server。(IPv6地址和路由的配置方法与PC的操作系统有关,配置方法略。)
- 配置PC的IPv6地址为2001:DB8::1/64,与FW1的接口GE1/0/1同一网段。
- 配置PC去往2001:DB8:1::/96网段的路由下一跳为2001:DB8::2。
- 配置PC的DNS server地址为DNS64设备的IPv6地址。
- 配置Server的IPv4地址。(IPv4地址的配置方法与Server的操作系统有关,配置方法略。)
- 配置Server的IPv4地址为1.1.1.2/24,与FW1的接口GE1/0/2同一网段。
- 配置DNS64设备。
-
1、配置FW1的IPv4和IPv6地址,配置安全区域。自行配置
-
2、配置安全策略。
javascript
[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功能。
javascript
[FW1] interface GigabitEthernet 1/0/1
[FW1-GigabitEthernet1/0/1] nat64 enable
4、配置NAT64的前缀为2001:db8:1::/96(自定义前缀)。
javascript
[FW1] nat64 prefix 2001:db8:1:: 96
5、配置NAT64地址池。
javascript
[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动态映射。
javascript
[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