防火墙在CGN解决方案中的应用
简介
IPv4公网地址的短缺,使得IPv4网络向IPv6网络过渡成为必然,通过CGN解决方案能够让IPv4网络能够平滑过渡到IPv6网络。
基于Eudemon200E-N&Eudemon1000E-N&Eudemon8000E-X V500R005C00版本写作,可供Eudemon200E-N&Eudemon1000E-N&Eudemon8000E-X V500R005C00、Eudemon200E-G&Eudemon1000E-G V600R006C00及后续版本参考。不同版本之间可能存在差异,请以实际版本为准。
方案简介
IPv6作为一种新的网络技术体系架构,尽管与IPv4协议有很多相同或类似的内容,但IPv6协议体系仍需在实践中完善。从IPv4网络过渡到IPv6网络也将是一个循序渐进的过程,必须充分考虑现有的网络条件,充分利用现有的网络设施,最大程度保护现有网络投资,同时还要保证承载用户业务的平滑过渡及对新业务的支撑。双栈技术、隧道技术和地址转换技术可以分别解决IPv4到IPv6过渡阶段的网络互联及网间资源互访问题,也是业界公认的IPv6过渡方案,其中地址转换技术中的NAT44(4)、DS-Lite、NAT64、以及隧道技术中的6RD等都是目前业界比较认可的过渡技术。
NAT44
NAT44可以理解为传统意义上的IPv4 NAT功能,主要实现IPv4私网地址到公网地址的地址转换。Internet地址分配组织规定以下三个网络地址保留用做私网地址:
- 10.0.0.0 ~10.255.255.255
- 172.16.0.0~172.31.255.255
- 192.168.0.0~192.168.255.255
也就是说这三个网段的地址不会在Internet上被分配,但可以在用户网络内部使用。私网地址是不会出现在Internet上的,使用私网地址的主机也不能直接访问Internet资源。通过NAT转换,可以将私网地址转为公网地址,使私网主机能够访问Internet。只有当私网主机需要访问Internet的时候,NAT设备才为该主机分配一个临时的合法IP地址,因此用户网络内的主机不需要都拥有合法的IP地址就可以访问Internet,这样就达到了节省IP地址的效果。
如图1-1所示,为了更进一步节省IP地址,运营商可以选择同时在用户出口网关设备和运营商出口网关设备作两级地址转换(NAT444),即在图1-1中的CPE(Customer Premise Equipment)设备和CGN(Carrier Grade NAT)设备上作两级地址转换。
CPE上使用NAT功能将用户网络私网地址转换为运营商网络私网地址,CGN上使用NAT功能将运营商私网地址转换为公网地址。NAT444技术的主要思想是将通过CPE和CGN的两级NAT,形成三块地址空间:用户私网地址、运营商私网地址和公网地址,对于用户使用的私网地址和运营商网络使用的私网地址要保证不冲突,这样可以更有效的利用私网地址网段,以及避免可能出现的私网地址数量不够的问题。
双协议栈
双栈技术是IPv4向IPv6过渡的基础,所有其它的过渡技术都以此为基础。网络中的节点同时支持IPv4和IPv6协议栈,源节点根据目的节点的不同选用不同的协议栈,而网络设备根据报文的协议类型选择不同的协议栈进行处理和转发。双栈技术可以在一个单一的网络设备上实现,也可以是一个双栈网络,对于双栈网络,其中的所有设备必须同时支持IPv4/IPv6协议栈,连接双栈网络的接口必须支持配置IPv4地址和IPv6地址。图1-2为双协议栈示意图。
双栈技术对于实现IPv4网络向IPv6网络过渡具有明显的优势,具体表现在:
- 双栈网络中IPv6和IPv4业务数据各自走自己的转发面,从逻辑上看是并行的两个网络,方便部署。并且,双栈技术支持向IPv6网络平滑过渡。
- 双栈网络不涉及IPv6与IPv4业务之间的互通和互访问题,技术实现难度低。
- 双栈网络便于维护和管理。
6RD隧道
6RD(IPv6 Rapid Deployment)隧道技术是一种在已有的IPv4网络基础上,为用户提供IPv6接入服务的快速部署的技术。6RD隧道技术是对原有6to4方案的改进,主要区别在于6to4定义的地址格式中使用知名的2002::/16前缀,而6RD的地址前缀则是可以由运营商从自己的IPv6地址空间中划分得到的。
6RD隧道技术主要是满足IPv6用户发送报文穿越运营商的IPv4网络,访问IPv6服务和资源的问题,其核心思想是通过在CPE与CGN网关之间自动建立、拆解隧道,实现IPv6报文跨越IPv4的网络。而自动隧道的建立是依靠预先定义的6RD前缀完成的。
6RD地址格式包括:6RD前缀(运营商划分出的用于6RD地址使用的IPv6前缀。6RD前缀的长度为:0 < n ≤ 32)、IPv4地址、子网ID(运营商分配)和接口标识符。如图1-3所示。
6RD委托前缀(6RD delegated prefix)包含6RD前缀和部分或全部IPv4地址,由两部分内容计算得出6RD委托前缀值。其中6RD委托前缀中IPv4地址的长度取决于6RD隧道中配置的IPv4前缀长度。
如图1-4所示,6RD隧道具体业务处理流程如下:
- 运营商给用户CPE分配6RD前缀、IPv4地址以及CGN(6RD Border Relay)的IPv4地址,由CPE自己生成6RD委托前缀,下发给IPv6终端;
- 当CPE接收到来自IPv6终端发送的报文时,将IPv6报文封装到IPv4隧道中,发送至CGN,隧道外层源地址为CPE的IPv4地址,目的地址为CGN的IPv4地址;
- CGN将收到的IPv4隧道报文解封装,然后将IPv6报文进行转发。
NAT64
NAT64主要应用于IPv6网络中单协议栈主机访问IPv4网络资源的场景。如图1-5所示,CGN设备部署在IPv6网络和IPv4网络之间,用于完成IPv6网络到IPv4网络的双向地址转换。同时网络中必须存在支持IPv4和IPv6域名解析功能的DNS64设备。
DNS64设备提供域名与IPv6地址的对应关系,它使用CGN设备上配置的NAT64前缀与IPv4网络中Server的IPv4地址组合生成IPv6地址,并生成相应的AAAA记录。
NAT64分为静态NAT64和动态NAT64。
- 静态NAT64
静态NAT64是在CGN网关静态配置IPv6和IPv4地址的绑定关系。当IPv4主机和IPv6主机报文互通时,CGN网关根据配置的地址绑定关系进行转换,且任何一侧主机都可以主动向另一侧发起连接。
- 动态NAT64
动态NAT64采用动态地址映射和上层协议映射的方法,使大量的IPv6地址可以通过很少的IPv4地址进行转换。动态NAT64只允许IPv6用户主动向IPv4网络发起访问。
如图1-5所示,当IPv6网络中的Host使用域名方式访问IPv4网络中的Server时,具体流程如下:
- 借助DNS64的域名解析功能,Host获得了Server的域名对应的IPv6地址(该地址由特定的前缀和Server的IPv4地址组成),Host使用此IPv6地址为目的地址发起请求。
- CGN收到Host发出的IPv6报文后,发现IPv6报文的目的地址中包含特定的NAT64前缀(该前缀在CGN上事先设置),则进行NAT64处理。
- CGN使用地址转换算法提取出IPv6报文中的IPv4地址,以此IPv4地址作为IPv4报文的目的地址。然后根据安全域间配置的NAT64动态映射,以NAT地址池中的地址为IPv4报文的源地址,将IPv6报文转换为IPv4报文,同时生成会话表。
- CGN将转换后的IPv4报文发送至Server。
- CGN收到IPv4网络中Server的响应报文后,根据会话表将IPv4报文转换为IPv6报文,然后发送至Host。
DS-lite
双栈技术是IPv4向IPv6过渡的一种有效的技术,但是双栈技术需要同时维护IPv4和IPv6两张网络。在IPv4网络向IPv6过渡中后期,部分运营商希望直接部署纯IPv6城域网来简化网络的管理和维护;或某些新兴的运营商,直接部署IPv6城域网来发展IPv6用业务,携带少量IPv4业务。这样就会存在IPv4节点穿越IPv6网络访问IPv4网络的情况,DS-lite就是在这种前提下应运而生的一种IPv6过渡技术。
DS-lite也称作轻量级双栈,由双栈主机+IPv6网络构成。如图1-6所示,DS-lite网络中只有家庭网关CPE和运营商级网关CGN为双栈,其它网络节点只支持IPv6协议。
CGN需要同时支持IPv4 over IPv6隧道和NAT44功能。家庭用户可获得IPv6地址和私有IPv4地址,这样IPv6报文直接穿越家庭网关进入IPv6 Internet;IPv4报文通过CPE和CGN间的IPv4 over IPv6隧道到达CGN,在CGN上实现报文的解封装,并将IPv4私有地址转化为公网地址,发送到IPv4 Internet。对于私网IPv4用户穿越IPv6网络访问IPv4 Internet的具体工作过程如下:
- 运营商只提供IPv6业务的接入,为CPE分配IPv6前缀,CPE为其内部网络用户分配IPv4私网地址。
- 如果IPv4私网用户要访问IPv4公网,IPv4报文从终端发送到CPE,CPE将其封装到IPv4 over IPv6隧道,发送给CGN网关。
- CGN对隧道报文进行解封装后,对IPv4报文进行NAT44转换,将私网地址转换成公网地址后,发送到IPv4网络。
过渡方案场景
在实际应用中,运营商一般会综合考虑网络、用户、业务、升级成本等诸多因素,将几种过渡技术结合使用,以制定合理的网络过渡解决方案。
不同的运营商其拥有的IPv4地址数量、网络现状、IPv4和IPv6用户的发展规模、业务开展状况等都不同,采用的过渡策略和技术手段也不相同。但是,网络过渡技术大致会应用在下面三个不同的场景下:
- 场景一
运营商网络主要是IPv4的网络,IPv4公网地址尚未耗尽,IPv4流量仍然占绝大部分,业务应用尚没有大规模迁移到IPv6网络,运营商的主要需求就是如何在现有网络中发展少量的IPv6用户满足试商用的需要。在这种场景下,过渡技术需要解决的问题是IPv6业务穿越IPv4网络的业务互通问题。此类场景主要应用的过渡技术为6RD隧道和NAT444。
- 场景二
运营商网络是双栈网络,用户以IPv4用户为主,也已经有部分IPv6用户和业务,但是大部分应用没有迁移到IPv6网络,IPv4流量仍然占主导地位,运营商考虑的主要问题是如何满足IPv6与IPv4业务的互访,并且在地址缺乏的情况下实现向IPv6的业务迁移。在这种场景过渡技术需要解决的问题不仅包括IPv6业务互通问题,还包括IPv4业务互通问题及IPv6与IPv4业务之间的业务互访问题。此类场景主要应用的过渡技术为双栈技术、NAT444以及NAT64。
- 场景三
运营商城域骨干网是本真IPv6网络,或者是IPv6流量占主流的双栈网络,运营商网络和业务以IPv6为主,但是也还有少量IPv4用户和业务,运营商考虑的过渡问题主要是解决少量IPv4用户之间的业务互通以及访问IPv6业务网络。在这种场景下,过渡技术需要解决的问题是IPv4业务穿越IPv6网络的业务互通及对IPv6网络资源的业务互访问题。此类场景主要应用的过渡技术为NAT64与DS-Lite技术。
方案一:6RD+NAT444
典型组网
组网介绍
A运营商的现有网络主要是IPv4的网络,IPv4公网地址尚未完全耗尽,为了节约公网IPv4地址资源,其内部城域网使用的是私网IPv4地址。同时为了满足日益增长的业务需要,希望在现有网络的基础上发展少量的IPv6用户满足试商用的需求。
为满足上述需求,此运营商采用如图1-7所示的解决方案,具体规划为:
- 为了节约公网IPv4地址资源,对IPv4用户分配私网地址,在CPE和CGN设备上两次使用NAT,使IPv4私网用户能够访问IPv4公网。
- 对于新发展的IPv6/IPv4双栈用户,其IPv4业务走IPv4网络,IPv6业务通过6RD隧道接入到CGN网关。
6RD隧道是在CPE与CGN设备上建立的。
- A运营商目前只需要发展少量的IPv6用户满足试商用的需求,在网络接口规划方面只需把CPE设备和CGN设备升级至双协议栈用于隧道建立,而其内部城域网设备不需要升级,这样可以节约网络改造的成本;同时,因其IPv6业务量较少,也不需要满足IPv4业务和IPv6业务的互通,可降低网络配置的复杂程度。
CPE:Customer Premises Equipment,客户端设备 |
CGN:Carrier Grade NAT,运营商级NAT |
BRAS:Broadband Remote Access Server,宽带远端接入服务器 |
- |
- CPE设备用于接入终端用户,为用户分配地址:
- 给IPv4用户分配的是私网IPv4地址。
- 给IPv6用户分配的是IPv6地址,此IPv6地址的前缀是CPE设备计算出来的6RD委托前缀。
此外,CPE设备需要为私网IPv4地址用户做地址转换,并与CGN设备建立6RD隧道。
- CGN(Carrier Grade NAT)设备作为城域网出口的网关,为私网IPv4用户访问IPv4公网提供地址转换;为IPv6用户访问IPv6 Internet提供6RD隧道。
- BRAS(Broadband Remote Access Server)为汇聚层设备,在组网中主要是为各CPE设备分配连接城域网接口的IPv4地址。
FW在组网中的应用
FW在场景中做为CPE和CGN设备,提供如下功能:
- 提供地址转换功能
为尽量节约公网IP地址,运营商内部使用的是运营商私网地址,所以需要在CPE和CGN上配置地址转换功能,使私网用户地址进过两次转换后访问IPv4 Internet。
- 提供隧道接入功能
在CGN与CPE设备上建立6RD隧道,使IPv6数据能通过IPv4网络访问IPv6 Internet。
- 提供路由
CPE和CGN需提供IPv4和IPv6两种业务的转发,所以需要支持IPv4和IPv6双协议栈。
业务规划
需求分析
方案 |
优点 |
具体实现 |
---|---|---|
采用6RD隧道接入IPv6业务 |
与其它IPv6 over IPv4隧道相比,6RD隧道有如下优点:
|
在CGN和CPE设备上进行如下配置:
|
采用两级NAT(NAT444)功能解决私网IPv4用户访问IPv4 Internet的问题 |
运营商网络在不升级到IPv6网络的情况下,通过部署NAT444可以缓解公网IPv4地址短缺的压力。基于IPv4的NAT技术已经成熟,且在IPv4网络中已经有大量部署,所以是较为可行的过渡技术。 |
在CPE设备和CGN上部署两级NAT:
|
数据规划
为了方便用户配置与理解,将组网图转换成如图1-8所示带数据的组网图。
网络整体数据规划如表1-2所示:
项目 |
IP地址 |
备注 |
|
---|---|---|---|
CPE |
GE1/0/0(Trust区域) |
IPv4私网地址:192.168.0.1/24 |
连接私网IPv4用户 |
GE1/0/1(Trust区域) |
前缀由计算出的6RD委托前缀分配 本例中计算出来的6RD委托前缀为22:0:101:100::/56,GE1/0/1的接口地址配置为22:0:101:101::1/64 |
CPE下面的IPv6用户属于一个6RD域 |
|
GE1/0/2(Untrust区域) |
运营商IPv4私网地址:10.1.1.1/24 |
连接运营商城域网接口的地址,此处假设连接城域网的下一跳地址为10.1.1.2 |
|
Tunnel1接口(Untrust区域) |
6RD前缀:22::/32 IPv4前缀长度:8 说明:
6RD隧道中IPv4前缀长度可能与接口的掩码长度不一致,嵌入IPv6地址中的IPv4地址长度为:32减去“IPv4前缀长度” IPv6地址:根据6RD委托前缀与隧道源地址计算得出。本例中计算出来的6RD委托前缀为22:0:101:100::/56,Tunnel1的接口地址配置为22:0:101:100::1/56 6RD BR IPv4地址:10.1.2.1/24 |
与CGN建立6RD隧道的隧道接口 |
|
地址池 |
使用GE1/0/2的接口地址为转换后的地址 |
用于用户私网IPv4地址转换成运营商私网IPv4地址 |
|
CGN |
GE1/0/0(Untrust区域) |
IPv4公网地址:1.1.1.1/24 |
连接IPv4 Internet网络的接口,此处假设此接口下一跳地址为1.1.1.2/24 |
GE1/0/1(Untrust区域) |
IPv6地址:3000::1/64 |
连接IPv6 Internet的接口 |
|
GE1/0/2(Trust区域) |
IPv4私网地址:10.1.2.1/24 |
连接运营商城域网接口的地址,此处假设连接城域网的下一跳地址为10.1.2.2 |
|
Tunnel1接口(Trust区域) |
6RD前缀:22::/32 IPv4前缀长度:8 说明:
6RD隧道中IPv4前缀长度可能与接口的掩码长度不一致,嵌入IPv6地址中的IPv4地址长度为:32减去“IPv4前缀长度” IPv6地址:根据6RD委托前缀与隧道源地址计算得出。本例中计算出来的6RD委托前缀为22:0:102:100::/56,Tunnel1的接口地址配置为22:0:102:100::1/56 |
与CPE建立6RD隧道的隧道接口 |
|
地址池 |
地址池地址:1.1.2.1~1.1.2.5. 预分配端口块大小为256。 |
用于运营商私网IPv4地址转换成IPv4公网地址 |
|
PC1 |
IPv4私网地址:192.168.0.2/24 |
– |
|
PC2 |
IPv6地址:22:0:101:100::2/64 |
地址前缀为CPE设备计算出来的6RD委托前缀 |
|
PC3 |
IPv6地址:3000::2/64 |
– |
|
FTP Server |
IPv4公网地址:1.1.3.1/32 |
– |
IPv4路由规划如表1-3所示:
项目 |
路由协议 |
目的网段 |
下一跳地址 |
备注 |
---|---|---|---|---|
CPE |
静态IPv4路由 |
10.1.2.0/24 |
10.1.1.2 |
CPE到CGN连接城域网接口网段的路由。 |
CGN |
静态IPv4路由 |
10.1.1.0/24 |
10.1.2.2 |
CGN到CPE连接城域网接口网段的路由。 |
静态IPv4路由 |
1.1.3.1/32 |
1.1.1.2 |
CGN到IPv4 Internet上Server的路由。 |
IPv6路由规划如表1-4所示:
配置流程
整个解决方案的配置流程如表1-5所示。
项目 |
过程 |
操作 |
备注 |
|
---|---|---|---|---|
CPE |
1 |
配置上下行接口数据 |
必选 根据网络实际规划的端口和IP地址进行配置。 |
|
2 |
配置NAT功能 |
必选 配置接口IP方式的NAPT(Easy IP),将用户私网IPv4地址转换成运营商私网IPv4地址。 |
||
3 |
配置6RD隧道 |
必选 与CGN建立6RD隧道,用于IPv6用户之间的互访。 |
||
3.1 |
指定隧道的封装类型 |
必选 隧道的封装类型为ipv6-ipv4 6rd |
||
3.2 |
指定6RD隧道的源地址或源接口 |
必选
|
||
3.3 |
配置6RD前缀及前缀长度 |
必选 运营商自己使用的IPv6地址前缀,称为6RD前缀,是组成6RD委托前缀的一部分。 |
||
3.4 |
配置6RD隧道IPv4前缀长度 |
必选 6RD隧道IPv4前缀长度表明将隧道源地址(IPv4地址)从高位顺序删除指定长度的比特位,其余部分成为6RD委托前缀的一部分。 |
||
3.5 |
指定6RD BR的IPv4地址 |
必选 CPE设备在配置上与CGN不同的是需指定6RD BR的IPv4地址,也就是CGN连接内部城域网的私网IPv4地址(10.1.2.1/24)。 |
||
3.6 |
配置6RD隧道接口地址 |
必选 6RD隧道接口地址需要根据计算出来的6RD委托前缀来配置,6RD委托前缀包含6RD前缀和部分或全部IPv4地址。 |
||
4 |
配置路由 |
必选 路由的配置需要考虑IPv4和IPv6两种业务的路由。根据业务规划中两种路由规划进行配置。 |
||
CGN |
1 |
配置上下行接口数据 |
必选 根据网络实际规划的端口和IP地址进行配置。 |
|
2 |
配置NAT功能 |
必选 将运营商私网IPv4地址转换成IPv4公网地址。 |
||
2.1 |
配置NAT地址池 |
必选 NAT地址池是一些连续的IP地址集合,当来自私网的报文通过地址转换到公网IP时,将会选择地址池中的某个地址作为转换后的地址。 在地址池中设置预分配端口块大小,用于给CPE预分配NAT转换的端口资源。 |
||
2.2 |
配置NAT策略 |
必选 指定NAT策略生效的安全域间以及NAT策略引用的NAT地址池。 |
||
3 |
配置6RD隧道 |
必选 与CPE建立6RD隧道,用于IPv6用户之间的互访。 |
||
3.1 |
指定隧道的封装类型 |
必选 隧道的封装类型为ipv6-ipv4 6rd |
||
3.2 |
指定6RD隧道的源地址或源接口 |
必选
|
||
3.3 |
配置6RD前缀及前缀长度 |
必选 运营商自己使用的IPv6地址前缀,称为6RD前缀,是组成6RD委托前缀的一部分。 |
||
3.4 |
配置6RD隧道IPv4前缀长度 |
必选 6RD隧道IPv4前缀长度表明将隧道源地址(IPv4地址)从高位顺序删除指定长度的比特位,其余部分成为6RD委托前缀的一部分。 |
||
3.5 |
配置6RD隧道接口地址 |
必选 6RD隧道接口地址需要根据计算出来的6RD委托前缀来配置,6RD委托前缀包含6RD前缀和部分或全部IPv4地址。 |
||
4 |
配置路由 |
必选 路由的配置需要考虑IPv4和IPv6两种业务的路由。根据业务规划中的两种路由规划进行配置。 |
配置步骤
操作步骤
- 配置CPE。
- 开启IPv6报文转发功能。
<CPE> system-view [CPE] ipv6
- 配置接口地址并将接口加入安全区域。
# 配置GigabitEthernet 1/0/0的IP地址。
[CPE] interface GigabitEthernet 1/0/0 [CPE-GigabitEthernet1/0/0] ip address 192.168.0.1 255.255.255.0 [CPE-GigabitEthernet1/0/0] quit [CPE] firewall zone trust [CPE-zone-trust] add interface GigabitEthernet 1/0/0 [CPE-zone-trust] quit
# 配置GigabitEthernet 1/0/2的IP地址。
[CPE] interface GigabitEthernet 1/0/2 [CPE-GigabitEthernet1/0/2] ip address 10.1.1.1 255.255.255.0 [CPE-GigabitEthernet1/0/2] quit [CPE] firewall zone untrust [CPE-zone-untrust] add interface GigabitEthernet 1/0/2 [CPE-zone-untrust] quit
- 配置安全策略。配置允许报文私网到公网的安全策略policy1和允许隧道报文通过的policy2。
[CPE] security-policy [CPE-policy-security] rule name policy1 [CPE-policy-security-policy1] source-zone trust [CPE-policy-security-policy1] destination-zone untrust [CPE-policy-security-policy1] source-address 192.168.0.0 24 [CPE-policy-security-policy1] source-address 22:0:101:101:: 64 [CPE-policy-security-policy1] action permit [CPE-policy-security-policy1] quit [CPE-policy-security] rule name policy2 [CPE-policy-security-policy2] source-zone local [CPE-policy-security-policy2] destination-zone untrust [CPE-policy-security-policy2] source-address 22:0:101:100:: 56 [CPE-policy-security-policy2] action permit [CPE-policy-security-policy2] quit
- 配置NAT功能,完成用户私网IPv4地址到运营商私网IPv4的转换。
[CPE] nat-policy [CPE-policy-nat] rule name policy_nat_1 [CPE-policy-nat-rule-policy_nat_1] source-zone trust [CPE-policy-nat-rule-policy_nat_1] destination-zone untrust [CPE-policy-nat-rule-policy_nat_1] source-address 192.168.0.0 24 [CPE-policy-nat-rule-policy_nat_1] action source-nat easy-ip [CPE-policy-nat-rule-policy_nat_1] quit [CPE-policy-nat] quit
# 在Trust和Untrust域间配置NAT ALG功能,保证FTP业务正常运行。
请更具体业务打开相应的ASPF功能,此处以FTP协议为例。
[CPE] firewall interzone trust untrust [CPE-interzone-trust-untrust] detect ftp [CPE-interzone-trust-untrust] quit
- 配置6RD隧道。
# 配置6RD隧道接口Tunnel1。
[CPE] interface Tunnel 1 [CPE-Tunnel1] tunnel-protocol ipv6-ipv4 6rd [CPE-Tunnel1] ipv6 enable [CPE-Tunnel1] source 10.1.1.1 [CPE-Tunnel1] ipv6-prefix 22::/32 [CPE-Tunnel1] ipv4-prefix length 8 [CPE-Tunnel1] border-relay address 10.1.2.1 [CPE-Tunnel1] quit
配置6RD前缀和IPv4前缀长度后,CPE会自动计算出6RD委托前缀的值。执行display interface Tunnel 1命令,可以显示6RD委托前缀值,根据委托前缀配置Tunnel接口的IPv6地址。
# 显示计算出的6RD委托前缀值。
[CPE] display interface Tunnel 1 Tunnel1 current state : UP Line protocol current state : UP Description: Tunnel1 Interface Route Port,The Maximum Transmit Unit is 1500 Internet protocol processing : disabled Encapsulation is TUNNEL, loopback not set Tunnel source 10.1.1.1(GigabitEthernet1/0/2), destination auto Tunnel protocol/transport IPV6 over IPv4(6rd) ipv6 prefix 22::/32 ipv4 prefix length 8 6RD Operational, Delegated Prefix is 22:0:101:100::/56
# 根据6RD委托前缀值,配置Tunnel1接口的IPv6地址。
[CPE-Tunnel1] ipv6 address 22:0:101:100::1 56 [CPE-Tunnel1] quit
# 将Tunnel1加入Untrust安全区域。
[CPE] firewall zone untrust [CPE-zone-untrust] add interface Tunnel 1 [CPE-zone-untrust] quit
# 配置接口GigabitEthernet 1/0/1的IPv6地址。
[CPE] interface GigabitEthernet 1/0/1 [CPE-GigabitEthernet1/0/1] ipv6 address 22:0:101:101::1 64 [CPE-GigabitEthernet1/0/1] quit [CPE] firewall zone trust [CPE-zone-trust] add interface GigabitEthernet 1/0/1 [CPE-zone-trust] quit
- 配置路由。
# 配置到CGN连接城域网接口网段的静态IPv4路由,假设CPE连接城域网的下一跳地址为10.1.1.2。
[CPE] ip route-static 10.1.2.0 255.255.255.0 10.1.1.2
# 配置到CGN的6RD隧道接口网段的静态IPv6路由。
[CPE] ipv6 route-static 22:: 32 Tunnel 1
# 配置到CGN连接的IPv6网络的静态路由,下一跳地址为CGN的Tunnel接口IPv6地址。
[CPE] ipv6 route-static 3000:: 64 22:0:102:100::1
- 开启IPv6报文转发功能。
- 配置CGN
- 开启IPv6报文转发功能。
<CGN> system-view [CGN] ipv6
- 配置接口地址并将接口加入安全区域。
# 配置GigabitEthernet 1/0/0的IP地址。
[CGN] interface GigabitEthernet 1/0/0 [CGN-GigabitEthernet1/0/0] ip address 1.1.1.1 255.255.255.0 [CGN-GigabitEthernet1/0/0] quit [CGN] firewall zone untrust [CGN-zone-untrust] add interface GigabitEthernet 1/0/0 [CGN-zone-untrust] quit
# 配置GigabitEthernet 1/0/2的IP地址。
[CGN] interface GigabitEthernet 1/0/2 [CGN-GigabitEthernet1/0/2] ip address 10.1.2.1 255.255.255.0 [CGN-GigabitEthernet1/0/2] quit [CGN] firewall zone trust [CGN-zone-trust] add interface GigabitEthernet 1/0/2 [CGN-zone-trust] quit
# 配置GigabitEthernet 1/0/1的IP地址。
[CGN] interface GigabitEthernet 1/0/1 [CGN-GigabitEthernet1/0/1] ipv6 enable [CGN-GigabitEthernet1/0/1] ipv6 address 3000::1 64 [CGN-GigabitEthernet1/0/1] quit [CGN] firewall zone untrust [CGN-zone-untrust] add interface GigabitEthernet 1/0/1 [CGN-zone-untrust] quit
# 配置安全策略。配置允许报文私网到公网的安全策略policy1和允许隧道报文通过的policy2。
[CGN] security-policy [CGN-policy-security] rule name policy1 [CGN-policy-security-policy1] source-zone trust [CGN-policy-security-policy1] destination-zone untrust [CGN-policy-security-policy1] destination-address 1.1.1.0 24 [CGN-policy-security-policy1] destination-address 3000:: 64 [CGN-policy-security-policy1] action permit [CGN-policy-security-policy1] quit [CGN-policy-security] rule name policy2 [CGN-policy-security-policy2] source-zone trust [CGN-policy-security-policy2] destination-zone local [CGN-policy-security-policy2] source-address 22:0:102:100:: 56 [CGN-policy-security-policy2] action permit [CGN-policy-security-policy2] quit
- 配置NAT功能,完成运营商私网IPv4地址到IPv4公网地址的转换。
# 配置NAT地址池。其中预分配端口块大小为256。
[CGN] nat address-group addressgroup1 [CGN-address-group-addressgroup1] mode pat [CGN-address-group-addressgroup1] route enable [CGN-address-group-addressgroup1] section 1 1.1.2.1 1.1.2.5 [CGN-address-group-addressgroup1] port-block-size 256 [CGN-address-group-addressgroup1] quit
# 配置NAT策略。
[CGN] nat-policy [CGN-policy-nat] rule name policy_nat_1 [CGN-policy-nat-rule-policy_nat_1] source-zone trust [CGN-policy-nat-rule-policy_nat_1] destination-zone untrust [CGN-policy-nat-rule-policy_nat_1] source-address 10.1.1.0 24 [CGN-policy-nat-rule-policy_nat_1] action source-nat address-group addressgroup1 [CGN-policy-nat-rule-policy_nat_1] quit [CGN-policy-nat] quit
# 在Trust和Untrust域间配置NAT ALG功能,保证FTP业务正常运行。
[CGN] firewall interzone trust untrust [CGN-interzone-trust-untrust] detect ftp [CGN-interzone-trust-untrust] quit
- 配置6RD隧道。
# 配置6RD隧道接口Tunnel1。
[CGN] interface Tunnel 1 [CGN-Tunnel1] tunnel-protocol ipv6-ipv4 6rd [CGN-Tunnel1] ipv6 enable [CGN-Tunnel1] source 10.1.2.1 [CGN-Tunnel1] ipv6-prefix 22::/32 [CGN-Tunnel1] ipv4-prefix length 8
配置6RD前缀和IPv4前缀长度后,CGN会自动计算出6RD委托前缀的值。执行display interface Tunnel 1命令,可以显示6RD委托前缀值,根据委托前缀配置Tunnel接口的IPv6地址。
# 显示计算出的6RD委托前缀值。
[CGN] display interface Tunnel 1 Tunnel1 current state : UP Line protocol current state : UP Description: Tunnel1 Interface Route Port,The Maximum Transmit Unit is 1500 Internet protocol processing : disabled Encapsulation is TUNNEL, loopback not set Tunnel source 10.1.2.1(GigabitEthernet1/0/2), destination auto Tunnel protocol/transport IPV6 over IPv4(6rd) ipv6 prefix 22::/32 ipv4 prefix length 8 6RD Operational, Delegated Prefix is 22:0:102:100::/56
# 根据6RD委托前缀值,配置Tunnel接口的IPv6地址。
[CGN-Tunnel1] ipv6 address 22:0:102:100::1 56 [CGN-Tunnel1] quit
# 将Tunnel1加入Untrust安全区域。
[CGN] firewall zone trust [CGN-zone-trust] add interface Tunnel 1 [CGN-zone-trust] quit
- 配置路由。
配置到CPE连接城域网接口网段的静态IPv4路由。假设CGN连接城域网的下一跳地址为10.1.2.2。
[CGN] ip route-static 10.1.1.0 255.255.255.0 10.1.2.2
配置到Internet上FTP Server的静态IPv4路由。假设CGN连接Internet的下一跳地址为1.1.1.2。
[CGN] ip route-static 1.1.3.1 255.255.255.255 1.1.1.2
# 配置到CPE设备的6RD隧道接口网段和6RD域的静态IPv6路由。
[CGN] ipv6 route-static 22:: 32 Tunnel 1
- 开启IPv6报文转发功能。
- 配置FTP Server。
通常情况下,FTP Server由ISP负责配置,此处仅简要介绍与本举例相关的配置要点:
- 配置Server的IP地址为1.1.3.1/32。
- Server上需要有到CGN上地址池中地址的路由。
- 配置PC1、PC2、PC3。
需配置各PC的地址和指定各自的网关。PC的地址和路由的配置方法与PC的操作系统有关,配置方法略。
结果验证
- 验证IPv4业务
- 配置完成后,在私网IPv4 PC1上可以访问公网FTP Server。
C:\Documents and Settings\Administrator>ftp 1.1.3.1 Connected to 1.1.3.1. 220 FTP service ready. User (1.1.3.1:(none)): admin 331 Password required for admin. Password: 230 User logged in. ftp>
- 在CPE设备上通过执行display firewall session table verbose命令,查看地址转换情况。
[CPE] display firewall session table verbose Current Total Sessions : 2 ftp VPN:public --> public ID: ab016391fa4c03558d54c16fac122 Zone: untrust --> trust TTL: 00:00:10 Left: 00:00:03 Interface: GigabitEthernet1/0/2 NextHop: 10.1.1.2 MAC: 0018-8239-1e5c <--packets:20 bytes:1168 -->packets:26 bytes:1150 192.168.0.2:1031[10.1.1.1:2054]+->1.1.3.1:21 PolicyName:policy_sec_1 ftp-data VPN:public --> public ID: ab016391fa4c03558d54c16acd159 Zone: untrust--> trust TTL: 00:00:10 Left: 00:00:07 Interface: GigabitEthernet1/0/0 NextHop: 192.168.0.2 MAC: 0018-826f-b3f4 <--packets:3 bytes:124 -->packets:5 bytes:370 1.1.3.1:20-->10.1.1.1:15363[192.168.0.2:1034] PolicyName:policy_nat_1
通过显示信息192.168.0.2:1031[10.1.1.1:2054]+->1.1.3.1:21和1.1.3.1:20-->10.1.1.1:15363[192.168.0.2:1034]可以看出,IPv4私网地址192.168.0.2已经转换成运营商IPv4私网地址10.1.1.1。两条会话信息表示FTP协议的控制通道和数据通道都已经开启。
- 在CGN设备上通过执行display firewall session table verbose命令,查看地址转换情况。
[CGN] display firewall session table verbose Current total sessions: 2 ftp VPN: public --> public ID: a38f36333beb0f5654453374 Zone: trust --> untrust Slot: 6 CPU: 2 TTL: 00:10:00 Left: 00:09:56 Interface: GigabitEthernet1/0/0 Nexthop: 1.1.1.2 <--packets: 15 bytes: 676 -->packets: 17 bytes: 764 10.1.1.1:2054[1.1.2.4:10550] +-> 1.1.3.1:21 PolicyName:policy_nat_1 ftp-data VPN: public --> public ID: a48f3636f5030144b54453ad0 Zone: untrust --> trust Slot: 6 CPU: 0 TTL: 00:00:10 Left: 00:00:07 Interface: GigabitEthernet1/0/2 Nexthop: 10.1.2.2 <--packets: 3 bytes: 124 -->packets: 5 bytes: 370 1.1.3.1:20 --> 1.1.2.4:61578[10.1.1.1:15362] PolicyName:policy_nat_1
通过显示信息10.1.1.1:2054[1.1.2.4:10550] +-> 1.1.3.1:21和1.1.3.1:20 --> 1.1.2.4:61578[10.1.1.1:15362]可以看出,运营商IPv4私网地址10.1.1.1已经转换成公网IPv4地址1.1.2.4(地址池地址)。两条会话信息表示FTP协议的控制通道和数据通道都已经开启。
- 在CGN的任意视图下执行display cpe-user information cpe-ipv4 10.1.1.1,查看CPE(地址为:10.1.1.1)用户的详细信息。
[CGN] display cpe-user information cpe-ipv4 10.1.1.1 slot 6 cpu 2 This operation will take a few minutes. Press 'Ctrl+C' to break ... UserTbl item(s) on slot 6 cpu 2 -------------------------------------------------------------------- Scene: NAT444 DstZone: untrust CPEIP: 10.1.1.1 TTL: 40 LeftTime: 34 Increase Count: 0 VPN: public PoolID: addressgroup1 SectionID: 1 PublicIP: 1.1.2.4 StartPort: 2048 PortNumber: 256 PortTotal: 256 Used Port Number: 1
通过显示信息可以看出,从地址为10.1.1.1的CPE发送的业务流源地址都转换成1.1.2.4,使用的端口范围是从2048~2303共256个端口。
- 配置完成后,在私网IPv4 PC1上可以访问公网FTP Server。
- 验证IPv6业务
- 6RD隧道配置成功后,从CPE设备ping CGN的6RD隧道接口地址。
<CPE> ping ipv6 22:0:102:100::1 PING 22:0:102:100::1 : 56 data bytes, press CTRL_C to break Reply from 22:0:102:100::1 bytes=56 Sequence=1 hop limit=64 time = 90 ms Reply from 22:0:102:100::1 bytes=56 Sequence=2 hop limit=64 time = 100 ms Reply from 22:0:102:100::1 bytes=56 Sequence=3 hop limit=64 time = 40 ms Reply from 22:0:102:100::1 bytes=56 Sequence=4 hop limit=64 time = 60 ms Reply from 22:0:102:100::1 bytes=56 Sequence=5 hop limit=64 time = 40 ms --- 22:0:102:100::1 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 40/66/100 ms
可以ping通,说明6RD隧道配置没有问题。此时在CGN任意视图下执行display ipv6 interface tunnel,可以查看到Tunnel1的IPv6状态和配置信息。
[CGN] display ipv6 interface tunnel 1 Tunnel1 current state : UP IPv6 protocol current state : UP IPv6 is enabled, link-local address is FE80::101:101 Global unicast address(es): 22:0:102:100::1, subnet is 22:0:102:100::/64 Joined group address(es): FF02::1:FF00:1 FF02::1:FF01:101 FF02::2 MTU is 1500 bytes ND reachable time is 30000 milliseconds ND retransmit interval is 1000 milliseconds ND stale time is 1200 seconds
- 从CPE设备ping CGN连接IPv6网络的接口地址,即GigabitEthernet 1/0/1的接口地址。
<CPE> ping ipv6 3000::1 PING 3000::1 : 56 data bytes, press CTRL_C to break Reply from 3000::1 bytes=56 Sequence=1 hop limit=64 time = 90 ms Reply from 3000::1 bytes=56 Sequence=2 hop limit=64 time = 100 ms Reply from 3000::1 bytes=56 Sequence=3 hop limit=64 time = 40 ms Reply from 3000::1 bytes=56 Sequence=4 hop limit=64 time = 60 ms Reply from 3000::1 bytes=56 Sequence=5 hop limit=64 time = 40 ms --- 3000::1 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 40/66/100 ms
可以ping通,说明CPE设备与CGN上配置的IPv6路由没有问题。
- 在PC2上ping PC3的地址。
C:\> ping6 3000::2 from 22:0:101:100::1 with 32 bytes of data: Reply from 3000::2: time<1ms Reply from 3000::2: time<1ms Reply from 3000::2: time<1ms Reply from 3000::2: time<1ms Ping statistics for 3000::2: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
可以ping通,说明整个网络中的设备配置都没问题。
- 6RD隧道配置成功后,从CPE设备ping CGN的6RD隧道接口地址。
配置脚本
- CPE配置脚本
# sysname CPE # ipv6 # acl number 2000 rule 5 permit source 192.168.1.0 0.0.0.255 # interface GigabitEthernet1/0/0 ip address 192.168.0.1 255.255.255.0 # interface GigabitEthernet1/0/1 ipv6 enable ipv6 address 22:0:101:101::1/64 # interface GigabitEthernet1/0/2 ip address 10.1.1.1 255.255.255.0 # interface Tunnel1 ipv6 enable ipv6 address 22:0:101:100::1/56 tunnel-protocol ipv6-ipv4 6rd source 10.1.1.1 ipv6-prefix 22::/32 ipv4-prefix length 8 border-relay address 10.1.2.1 # firewall zone local set priority 100 # firewall zone trust set priority 85 add interface GigabitEthernet1/0/0 add interface GigabitEthernet1/0/1 # firewall zone untrust set priority 5 add interface GigabitEthernet1/0/2 add interface Tunnel1 # firewall zone dmz set priority 50 # firewall interzone trust untrust detect ftp # ipv6 route-static 22:: 32 Tunnel 1 ipv6 route-static 3000:: 64 22:0:102:100::1 # security-policy rule name policy1 source-zone trust destination-zone untrust source-address 192.168.0.0 24 source-address 22:0:101:101:: 64 action permit rule name policy2 source-zone local destination-zone untrust source-address 22:0:101:100:: 56 action permit # nat-policy rule name policy_nat_1 source-zone trust destination-zone untrust source-address 192.168.1.0 24 action source-nat easy-ip # return
- CGN配置脚本
# sysname CGN # ipv6 # firewall hash-mode source-only # interface GigabitEthernet1/0/0 undo shutdown ip address 1.1.1.1 255.255.255.0 # interface GigabitEthernet1/0/1 undo shutdown ipv6 enable ipv6 address 3000::1/64 # interface GigabitEthernet1/0/2 undo shutdown ip address 10.1.2.1 255.255.255.0 # interface Tunnel1 ipv6 enable ipv6 address 22:0:102:100::1/56 tunnel-protocol ipv6-ipv4 6rd source 10.1.2.1 ipv6-prefix 22::/32 ipv4-prefix length 8 # firewall zone local set priority 100 # firewall zone trust set priority 85 add interface GigabitEthernet1/0/2 add interface Tunnel1 # firewall zone untrust set priority 5 add interface GigabitEthernet1/0/0 add interface GigabitEthernet1/0/1 # firewall zone dmz set priority 50 # nat address-group addressgroup1 mode pat port-block-size 256 route enable section 1 1.1.2.1 1.1.2.5 # security-policy rule name policy1 source-zone trust destination-zone untrust source-address 1.1.1.0 24 source-address 3000:: 64 action permit rule name policy2 source-zone trust destination-zone local source-address 22:0:102:100:: 56 action permit # nat-policy rule name policy_nat_1 source-zone trust destination-zone untrust source-address 10.1.1.0 24 action source-nat address-group addressgroup1 # firewall interzone trust untrust detect ftp # ipv6 route-static 22:: 32 Tunnel 1 # return
方案二:双栈+NAT444+NAT64
典型组网
组网介绍
A运营商经过一段时间的运营与发展,其IPv6用户和业务已初具规模,但另一方面,A运营商的公网IPv4地址已经面临紧缺,网络中大部分业务还没有迁移到IPv6网络,IPv4流量仍然占大部分,与此同时运营商的城域网已经由IPv4网络过渡到双栈网络。为了合理解决IPv4用户访问IPv4 Internet、IPv6用户访问IPv6 Internet、以及IPv6用户访问IPv4公网资源的问题,此运营商决定采用如图1-9所示的解决方案,具体规划为:
- 对于IPv4业务,依然是在CPE设备和CGN设备上采用两级地址转换(NAT444),将用户IPv4私网地址最终转换成公网IPv4地址访问IPv4 Internet。
- A运营商的城域网已经由IPv4网络过渡到双栈网络,所以IPv6用户可以直接通过查找IPv6路由访问IPv6 Internet。
- 如果IPv6用户需要访问IPv4公网资源,需要在CGN上部署NAT64功能,将IPv6地址转换成公网IPv4地址后访问IPv4 Internet。
CPE:Customer Premises Equipment,客户端设备 |
CGN:Carrier Grade NAT,运营商级NAT |
BRAS:Broadband Remote Access Server,宽带远端接入服务器 |
- |
- CPE(Customer Premises Equipment)用于接入终端用户,为用户分配地址:
- 给IPv4用户分配的是私网IPv4地址。
- 给IPv6用户分配的是IPv6地址。
另外,CPE设备需要为IPv4私网地址用户做地址转换。
- CGN(Carrier Grade NAT)设备作为城域网出口的网关,为私网IPv4用户访问IPv4 Internet提供地址转换;为IPv6用户访问IPv6 Internet提供路由通道;为IPv6用户访问IPv4网络提供IPv6地址到IPv4地址的转换。
- BRAS(Broadband Remote Access Server)为汇聚层设备,在组网中主要是为各CPE设备分配连接城域网接口的IPv4或IPv6地址。
CGN在组网中的应用
FW在场景中做为CPE和CGN设备,提供如下功能:
- 提供地址转换功能
为尽量节约公网IP地址,运营商内部使用的是运营商私网地址,所以需要在CPE和CGN上配置地址转换功能,使私网用户地址经过两次转换后访问IPv4 Internet。
- 提供路由
CPE和CGN需提供IPv4和IPv6两种业务的转发,所以需要支持IPv4和IPv6双协议栈。
- 提供IPv6地址到IPv4地址转换机制
为了让IPv6用户访问IPv4网络资源,CGN上需要配置NAT64功能。
业务规划
需求分析
方案 |
优点 |
具体实现 |
---|---|---|
双栈技术 |
双栈技术是IPv4向IPv6过渡的基础,所有其它的过渡技术都以此为基础。双栈技术对于实现IPv6过渡具有明显的优势,具体表现在:
|
双栈技术配置上很简单,在CGN和CPE设上的具体配置为:
|
采用两级NAT(NAT444)功能解决私网IPv4用户访问IPv4 Internet的问题 |
针对目前网络中IPv4业务仍然占大部分,且公网地址短缺,通过部署NAT444可以缓解公网IPv4地址短缺的压力。并且IPv4的NAT技术已经成熟,且在IPv4网络中已经有大量部署,是较为可行的过渡技术。 |
在CPE设备和CGN上部署两级NAT:
|
采用动态NAT64技术解决IPv6与IPv4业务之间的互访问题 |
动态NAT64技术采用动态地址映射和应用层协议映射的方法,使大量的IPv6地址可以通过很少的IPv4地址进行转换。既节省公网IPv4地址,又适合网络大规模部署。 |
NAT64技术是在CGN上进行部署的,主要配置如下:
|
数据规划
为了方便用户配置与理解,将组网图转换成如图1-10所示带数据的组网图。
NAT64通常与DNS64共同部署。DNS64提供域名解析,配置与NAT64设备相同的NAT64前缀和前缀长度。关于NAT64配置的组网图请参见图1-11。
运营商城域网升级至双栈后,网络中存在两张网络:IPv4网络和IPv6网络。对于IPv4网络其路由规划保持不变,CPE与CGN的路由使用的是静态路由协议;而对于IPv6网络,组网中规划的路由协议为OSPFv3协议,协议规划如图1-12所示。
网络整体数据规划如表1-7所示:
项目 |
IP地址 |
备注 |
|
---|---|---|---|
CPE设备 |
GE1/0/0(Trust区域) |
IPv4私网地址:192.168.0.1/24 |
连接私网IPv4用户 |
GE1/0/1(Trust区域) |
IPv6地址:2000::1/64 |
连接IPv6用户 |
|
GE1/0/2(Untrust区域) |
运营商IPv4私网地址:10.1.1.1/24 |
运营商城域网是双栈网络,此接口连接的是运营商城域网的IPv4网络。此处假设连接IPv4城域网的下一跳地址为10.1.1.2 |
|
GE1/0/3(Untrust区域) |
IPv6地址:3000::1/64 |
运营商城域网是双栈网络,此接口连接的是运营商城域网的IPv6网络 |
|
地址池 |
使用GE1/0/2的接口地址为转换后的地址 |
用于用户私网IPv4地址转换成运营商私网IPv4地址 |
|
CGN设备 |
GE1/0/0(Untrust区域) |
IPv4公网地址:1.1.1.1/24 |
连接IPv4 Internet网络的接口,此处假设此接口下一跳地址为1.1.1.2/24 |
GE1/0/1(Untrust区域) |
IPv6地址:5000::1/64 |
连接IPv6 Internet的接口 |
|
GE1/0/2(Trust区域) |
运营商IPv4私网地址:10.1.2.1/24 |
运营商城域网是双栈网络,此接口连接的是运营商城域网的IPv4网络。此处假设连接IPv4城域网的下一跳地址为10.1.2.2 |
|
GE1/0/3(Trust区域) |
IPv6地址:4000::1/64 |
运营商城域网是双栈网络,此接口连接的是运营商城域网的IPv6网络 |
|
地址池 |
地址池1地址:1.1.2.1~1.1.2.5 地址池2地址:1.1.2.11~1.1.2.15 |
|
|
NAT64前缀 |
6000::/96 |
CGN通过判断IPv6报文的目的地址中是否包含NAT64前缀来决定是否对该IPv6报文进行NA64处理 |
|
DNS64 |
NAT64前缀 |
6000::/96 |
DNS64设备上配置的NAT64前缀与CGN上配置的NAT64前缀必须完全相同 |
域名:www.example.com |
域名对应的地址:6000::0101:301 |
域名对应的地址是根据配置的NAT64前缀与IPv4 Internet上Server的公网IPv4地址计算出来的 |
|
PC1 |
IPv4私网地址:192.168.0.2/24 |
– |
|
PC2 |
IPv6地址:2000::2/64 |
– |
|
PC3 |
IPv6地址:5000::2/64 |
– |
|
Server |
IPv4公网地址:1.1.3.1/32 |
– |
IPv4路由规划如表1-8所示:
项目 |
路由协议 |
目的网段 |
下一跳地址 |
备注 |
---|---|---|---|---|
CPE |
静态IPv4路由 |
10.1.2.0/24 |
10.1.1.2 |
CPE到CGN连接IPv4城域网接口网段的路由。 |
CGN |
静态IPv4路由 |
10.1.1.0/24 |
10.1.2.2 |
CGN到CPE连接IPv4城域网接口网段的路由。 |
静态IPv4路由 |
1.1.3.1/32 |
1.1.1.2 |
CGN到IPv4 Internet上Server的路由。 |
IPv6路由规划如表1-9所示:
配置流程
整个解决方案的配置流程如表1-10所示。
项目 |
过程 |
操作 |
备注 |
|
---|---|---|---|---|
CPE |
1 |
配置上下行接口数据 |
必选 根据网络实际规划的端口和IP地址进行配置。 |
|
2 |
配置NAT功能 |
必选 配置接口IP方式的NAPT(Easy IP),将用户私网IPv4地址转换成运营商私网IPv4地址。 |
||
3 |
配置路由 |
必选 CPE设备配置的路由包括:
|
||
CGN |
1 |
配置上下行接口数据 |
必选 根据网络实际规划的端口和IP地址进行配置。 |
|
2 |
配置NAT功能 |
必选 将运营商私网IPv4地址转换成IPv4公网地址。 |
||
2.1 |
配置NAT地址池 |
必选 NAT地址池是一些连续的IP地址集合,当来自私网的报文通过地址转换到公网IP时,将会选择地址池中的某个地址作为转换后的地址。 在地址池中设置预分配端口块大小,用于给CPE预分配NAT转换的端口资源。 |
||
2.2 |
配置NAT策略 |
必选 指定NAT策略生效的安全域间以及NAT策略引用的NAT地址池。 |
||
3 |
配置路由 |
必选 配置的路由包括:
|
||
4 |
配置NAT64功能 |
必选 实现IPv6用户访问IPv4网络资源。 |
||
4.1 |
配置NAT地址池 |
必选 此NAT地址池中的地址将作为NAT64转换后报文的IPv4地址。 |
||
4.2 |
配置NAT64前缀并在IPv6网络中发布 |
必选 CGN通过判断IPv6报文的目的地址中是否包含NAT64前缀来决定是否对该IPv6报文进行NA64处理。 |
||
4.3 |
配置NAT64策略 |
必选 NAT64动态映射在NAT策略中配置,需在NAT策略中指定类型为NAT64。进行NAT64转换时,CGN会在NAT64策略引用的NAT地址池中随机选择一个IPv4地址作为转换后报文的源地址。 |
配置步骤
操作步骤
- 配置CPE设备
- 开启IPv6报文转发功能。
<CPE> system-view [CPE] ipv6
- 配置接口地址并将接口加入安全区域。
# 配置GigabitEthernet 1/0/0的IP地址。
[CPE] interface GigabitEthernet 1/0/0 [CPE-GigabitEthernet1/0/0] ip address 192.168.0.1 255.255.255.0 [CPE-GigabitEthernet1/0/0] quit [CPE] firewall zone trust [CPE-zone-trust] add interface GigabitEthernet 1/0/0 [CPE-zone-trust] quit
# 配置GigabitEthernet 1/0/1的IP地址。
[CPE] interface GigabitEthernet 1/0/1 [CPE-GigabitEthernet1/0/1] ipv6 enable [CPE-GigabitEthernet1/0/1] ipv6 address 2000::1 64 [CPE-GigabitEthernet1/0/1] quit [CPE] firewall zone trust [CPE-zone-trust] add interface GigabitEthernet 1/0/1 [CPE-zone-trust] quit
# 配置GigabitEthernet 1/0/2的IP地址。
[CPE] interface GigabitEthernet 1/0/2 [CPE-GigabitEthernet1/0/2] ip address 10.1.1.1 255.255.255.0 [CPE-GigabitEthernet1/0/2] quit [CPE] firewall zone untrust [CPE-zone-untrust] add interface GigabitEthernet 1/0/2 [CPE-zone-untrust] quit
# 配置GigabitEthernet 1/0/3的IP地址。
[CPE] interface GigabitEthernet 1/0/3 [CPE-GigabitEthernet1/0/3] ipv6 enable [CPE-GigabitEthernet1/0/3] ipv6 address 3000::1 64 [CPE-GigabitEthernet1/0/3] quit [CPE] firewall zone untrust [CPE-zone-untrust] add interface GigabitEthernet 1/0/3 [CPE-zone-untrust] quit
- 配置安全策略。配置允许报文私网到公网的安全策略policy_sec_1。
[CPE] security-policy [CPE-policy-security] rule name policy_sec_1 [CPE-policy-security-rule-policy_sec_1] source-zone trust [CPE-policy-security-rule-policy_sec_1] destination-zone untrust [CPE-policy-security-rule-policy_sec_1] source-address 192.168.0.0 24 [CPE-policy-security-rule-policy_sec_1] source-address 2000:: 64 [CPE-policy-security-rule-policy_sec_1] action permit [CPE-policy-security-rule-policy_sec_1] quit [CPE-policy-security] quit
- 配置NAT功能,完成用户私网IPv4地址到运营商私网IPv4。
[CPE] nat-policy [CPE-policy-nat] rule name policy_nat_1 [CPE-policy-nat-rule-policy_nat_1] source-zone trust [CPE-policy-nat-rule-policy_nat_1] destination-zone untrust [CPE-policy-nat-rule-policy_nat_1] source-address 192.168.0.0 24 [CPE-policy-nat-rule-policy_nat_1] action source-nat easy-ip [CPE-policy-nat-rule-policy_nat_1] quit [CPE-policy-nat] quit
# 在Trust和Untrust域间配置NAT ALG,使服务器可以正常对外提供FTP服务。
[CPE] firewall interzone trust untrust [CPE-interzone-trust-untrust] detect ftp [CPE-interzone-trust-untrust] quit
- 配置OSPFv3协议,用于IPv6业务的路由选路。
[CPE] ospfv3 [CPE-ospfv3-1] router-id 1.1.1.1 [CPE-ospfv3-1] quit [CPE] interface GigabitEthernet1/0/3 [CPE-GigabitEthernet1/0/3] ospfv3 1 area 0 [CPE-GigabitEthernet1/0/3] quit [CPE] interface GigabitEthernet1/0/1 [CPE-GigabitEthernet1/0/1] ospfv3 1 area 1 [CPE-GigabitEthernet1/0/1] quit
- 配置静态IPv4路由。
配置到CGN的静态IPv4路由。此处假设CPE连接城域网IPv4网络的下一跳地址为10.1.1.2。
[CPE] ip route-static 10.1.2.0 255.255.255.0 10.1.1.2
- 开启IPv6报文转发功能。
- 配置CGN
- 开启IPv6报文转发功能。
<CGN> system-view [CGN] ipv6
- 配置HASH选板模式为源地址HASH模式。
[CGN] firewall hash-mode source-only
- 配置接口地址并将接口加入安全区域。
# 配置GigabitEthernet 1/0/0的IP地址。
[CGN] interface GigabitEthernet 1/0/0 [CGN-GigabitEthernet1/0/0] ip address 1.1.1.1 255.255.255.0 [CGN-GigabitEthernet1/0/0] quit [CGN] firewall zone untrust [CGN-zone-untrust] add interface GigabitEthernet 1/0/0 [CGN-zone-untrust] quit
# 配置GigabitEthernet 1/0/1的IP地址。
[CGN] interface GigabitEthernet 1/0/1 [CGN-GigabitEthernet1/0/1] ipv6 enable [CGN-GigabitEthernet1/0/1] ipv6 address 5000::1 64 [CGN-GigabitEthernet1/0/1] quit [CGN] firewall zone untrust [CGN-zone-untrust] add interface GigabitEthernet 1/0/1 [CGN-zone-untrust] quit
# 配置GigabitEthernet 1/0/2的IP地址。
[CGN] interface GigabitEthernet 1/0/2 [CGN-GigabitEthernet1/0/2] ip address 10.1.2.1 255.255.255.0 [CGN-GigabitEthernet1/0/2] quit [CGN] firewall zone trust [CGN-zone-trust] add interface GigabitEthernet 1/0/2 [CGN-zone-trust] quit
# 配置GigabitEthernet 1/0/3的IP地址。
[CGN] interface GigabitEthernet 1/0/3 [CGN-GigabitEthernet1/0/3] ipv6 enable [CGN-GigabitEthernet1/0/3] ipv6 address 4000::1 64 [CGN-GigabitEthernet1/0/3] quit [CGN] firewall zone trust [CGN-zone-trust] add interface GigabitEthernet 1/0/3 [CGN-zone-trust] quit
- 配置安全策略。配置允许报文私网到公网的安全策略policy1。
[CGN] security-policy [CGN-policy-security] rule name policy1 [CGN-policy-security-policy1] source-zone trust [CGN-policy-security-policy1] destination-zone untrust [CGN-policy-security-policy1] destination-address 1.1.1.0 24 [CGN-policy-security-policy1] destination-address 5000:: 64 [CGN-policy-security-policy1] action permit [CGN-policy-security-policy1] quit
- 配置NAT策略,完成运营商私网IPv4地址到IPv4公网地址的转换。
# 配置NAT地址池。
[CGN] nat address-group addressgroup1 [CGN-address-group-addressgroup1] mode pat [CGN-address-group-addressgroup1] route enable [CGN-address-group-addressgroup1] section 1 1.1.2.1 1.1.2.5 [CGN-address-group-addressgroup1] port-block-size 256 [CGN-address-group-addressgroup1] quit
# 配置NAT策略。
[CGN] nat-policy [CGN-policy-nat] rule name policy_nat_1 [CGN-policy-nat-rule-policy_nat_1] source-zone trust [CGN-policy-nat-rule-policy_nat_1] destination-zone untrust [CGN-policy-nat-rule-policy_nat_1] source-address 10.1.1.0 24 [CGN-policy-nat-rule-policy_nat_1] action source-nat address-group addressgroup1 [CGN-policy-nat-rule-policy_nat_1] quit [CGN-policy-nat] quit
# 在Trust和Untrust域间配置NAT ALG,使服务器可以正常对外提供FTP服务。
[CGN] firewall interzone trust untrust [CGN-interzone-trust-untrust] detect ftp [CGN-interzone-trust-untrust] quit
- 配置静态IPv4路由。
配置到CPE的静态IPv4路由。此处假设CGN连接城域网IPv4网络的下一跳地址为10.1.2.2。
[CGN] ip route-static 10.1.1.0 255.255.255.0 10.1.2.2
配置到Internet上FTP Server的静态IPv4路由。此处假设CGN连接Internet的下一跳地址为1.1.1.2。
[CGN] ip route-static 1 1.3.1 255.255.255.255 1.1.1.2
- 配置OSPFv3协议,用于IPv6业务的路由选路。
[CGN] ospfv3 [CGN-ospfv3-1] router-id 2.2.2.2 [CGN-ospfv3-1] quit [CGN] interface GigabitEthernet1/0/3 [CGN-GigabitEthernet1/0/3] ospfv3 1 area 0 [CGN-GigabitEthernet1/0/3] quit [CGN] interface GigabitEthernet1/0/1 [CGN-GigabitEthernet1/0/1] ospfv3 1 area 2 [CGN-GigabitEthernet1/0/1] quit
- 配置NAT64功能。
# 配置IPv4 NAT地址池2,地址范围为1.1.2.11~1.1.2.15。NAT地址池中的地址将作为NAT64转换后报文的IPv4地址。
[CGN] nat address-group addressgroup2 [CGN-address-group-addressgroup2] mode pat [CGN-address-group-addressgroup2] route enable [CGN-address-group-addressgroup2] section 1 1.1.2.11 1.1.2.15 [CGN-address-group-addressgroup2] quit
# 配置NAT64的前缀为6000::/96。
[CGN] nat64 prefix 6000:: 96
# 配置NAT64策略。
[CGN] nat-policy [CGN-policy-nat] rule name policy_nat64 [CGN-policy-nat-rule-policy_nat64] nat-type nat64 [CGN-policy-nat-rule-policy_nat64] source-zone trust [CGN-policy-nat-rule-policy_nat64] destination-zone untrust [CGN-policy-nat-rule-policy_nat64] source-address 2000:: 64 [CGN-policy-nat-rule-policy_nat64] action source-nat address-group addressgroup2 [CGN-policy-nat-rule-policy_nat64] quit [CGN-policy-nat] quit
# 配置NAT64前缀的黑洞路由,用于发布NAT64前缀。
[CGN] ipv6 route-static 6000:: 96 NULL 0
# 在OSPFv3协议中引入NAT64前缀的黑洞路由。
[CGN] ospfv3 [CGN-ospfv3-1] import-route static [CGN-ospfv3-1] quit
- 开启IPv6报文转发功能。
- 配置DNS64设备。
配置DNS64设备的NAT64前缀为6000::/96,与CGN配置的NAT64前缀保持一致。
配置DNS64设备分别与PC和Server路由可达。
在DNS64设备上设置域名www.example.com对应的IPv6地址为6000::ca01:301。
- 配置Server。
通常情况下,Server由ISP负责配置,此处仅简要介绍与本举例相关的配置要点:
- 配置Server的IP地址为1.1.3.1/32。
- Server上需要有到CGN上地址池中地址的路由。
- Server上同时提供FTP和HTTP服务。
- 配置PC1、PC2、PC3。
需配置各PC的地址和指定各自的网关。(PC的地址和路由的配置方法与PC的操作系统有关,配置方法略。)
结果验证
- 验证IPv4业务
- 配置完成后,在私网IPv4 PC1上可以访问IPv4公网Server的FTP服务。
C:\Documents and Settings\Administrator>ftp 1.1.3.1 Connected to 1.1.3.1. 220 FTP service ready. User (1.1.3.1:(none)): admin 331 Password required for admin. Password: 230 User logged in. ftp>
- 在CPE设备上通过执行display firewall session table verbose命令,查看地址转换情况。
[CPE] display firewall session table verbose Current Total Sessions : 2 ftp VPN:public --> public ID: ab016391fa4c03558d54c16fac122 Zone: trust--> untrust TTL: 00:10:00 Left: 00:09:59 Interface: GigabitEthernet1/0/2 NextHop: 10.1.1.2 MAC: 0018-8239-1e5c <--packets:20 bytes:1168 -->packets:26 bytes:1150 192.168.0.2:1031[10.1.1.1:2054]+->1.1.3.1:21 PolicyName:policy_sec_1 ftp-data VPN:public --> public ID: ab016391fa4c03558d54c16acd159 Zone: untrust--> trust TTL: 00:00:10 Left: 00:00:07 Interface: GigabitEthernet1/0/0 NextHop: 192.168.0.2 MAC: 0018-826f-b3f4 <--packets:3 bytes:124 -->packets:5 bytes:370 1.1.3.1:20-->10.1.1.1:15363[192.168.0.2:1034] PolicyName:policy_nat_1
通过显示信息192.168.0.2:1031[10.1.1.1:2054]+->1.1.3.1:21和1.1.3.1:20-->10.1.1.1:15363[192.168.0.2:1034]可以看出,IPv4私网地址192.168.0.2已经转换成运营商IPv4私网地址10.1.1.1。两条会话信息表示FTP协议的控制通道和数据通道都已经开启。
- 在CGN设备上通过执行display firewall session table verbose命令,查看地址转换情况。
[CGN] display firewall session table verbose Current total sessions: 2 ftp VPN: public --> public ID: a38f36333beb0f5654453374 Zone: trust --> untrust Slot: 6 CPU: 2 TTL: 00:10:00 Left: 00:09:56 Interface: GigabitEthernet1/0/0 Nexthop: 1.1.1.2 <--packets: 0 bytes: 0 -->packets: 17 bytes: 764 10.1.1.1:2054[1.1.2.4:10550] +-> 1.1.3.1:21 PolicyName:policy_nat_1 ftp-data VPN: public --> public ID: a48f3636f5030144b54453ad0 Zone: untrust --> trust Slot: 6 CPU: 2 TTL: 00:00:10 Left: 00:00:07 Interface: GigabitEthernet1/0/2 Nexthop: 10.1.2.2 <--packets: 3 bytes: 124 -->packets: 5 bytes: 370 1.1.3.1:20 --> 1.1.2.4:61578[10.1.1.1:15362] PolicyName:policy_nat_1
通过显示信息10.1.1.1:2054[1.1.2.4:10550] +-> 1.1.3.1:21和1.1.3.1:20 --> 1.1.2.4:61578[10.1.1.1:15362]可以看出,运营商IPv4私网地址10.1.1.1已经转换成公网IPv4地址1.1.2.4(地址池地址)。两条会话信息表示FTP协议的控制通道和数据通道都已经开启。
- 在CGN的任意视图下执行display cpe-user information cpe-ipv4 10.1.1.1,查看CPE(地址为:10.1.1.1)用户的详细信息。
[CGN] display cpe-user information cpe-ipv4 10.1.1.1 slot 6 cpu 2 This operation will take a few minutes. Press 'Ctrl+C' to break ... UserTbl item(s) on slot 6 cpu 2 -------------------------------------------------------------------- Scene: NAT444 DstZone: untrust CPEIP: 10.1.1.1 TTL: 40 LeftTime: 34 Increase Count: 0 VPN: public PoolID: addressgroup1 SectionID: 1 PublicIP: 1.1.2.4 StartPort: 2048 PortNumber: 256 PortTotal: 256 Used Port Number: 1
通过显示信息可以看出,从地址为10.1.1.1的CPE发送的业务流源地址都转换成1.1.2.4,使用的端口范围是从2048~2303共256个端口。
- 配置完成后,在私网IPv4 PC1上可以访问IPv4公网Server的FTP服务。
- 验证IPv6业务
- 从CPE设备ping CGN连接城域网IPv6网络的接口地址,即GigabitEthernet 1/0/3的接口地址。
<CPE> ping ipv6 4000::1 PING 4000::1 : 56 data bytes, press CTRL_C to break Reply from 4000::1 bytes=56 Sequence=1 hop limit=64 time = 90 ms Reply from 4000::1 bytes=56 Sequence=2 hop limit=64 time = 100 ms Reply from 4000::1 bytes=56 Sequence=3 hop limit=64 time = 40 ms Reply from 4000::1 bytes=56 Sequence=4 hop limit=64 time = 60 ms Reply from 4000::1 bytes=56 Sequence=5 hop limit=64 time = 40 ms --- 4000::1 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 40/66/100 ms
可以ping通,说明CPE设备与CGN上都有到达对方的IPv6路由。此时在CPE设备和CGN通过执行display ospfv3 routing命令,可以查看到各自的OSPFv3路由表。
[CPE] display ospfv3 routing OSPFv3 Process (1) Destination Metric Next-hop 2000::/64 1 directly connected, GigabitEthernet1/0/1 3000::/64 1 directly connected, GigabitEthernet1/0/3 IA 4000::/64 2 via FE80::218:82FF:FE39:1E5C, GigabitEthernet1/0/3 IA 5000::/64 3 via FE80::218:82FF:FE39:1E5C, GigabitEthernet1/0/3
通过OSPFv3路由表,可以看到CPE设备已经学习到CGN连接城域网IPv6网络的接口网段和连接IPv6 Internet的接口网段的路由。
[CGN] display ospfv3 routing OSPFv3 Process (1) Destination Metric Next-hop IA 2000::/64 3 via FE80::222:A1FF:FE30:22, GigabitEthernet1/0/3 IA 3000::/64 2 via FE80::222:A1FF:FE30:22, GigabitEthernet1/0/3 4000::/64 1 directly connected, GigabitEthernet1/0/3 5000::/64 1 directly connected, GigabitEthernet1/0/1
通过OSPFv3路由表,可以看到CGN已经学习到CPE设备连接城域网IPv6网络的接口网段和连接IPv6用户的接口网段的路由。
- 在PC2上ping PC3的地址。
C:\> ping6 5000::2 from 2000::2 with 32 bytes of data: Reply from 5000::2: time<1ms Reply from 5000::2: time<1ms Reply from 5000::2: time<1ms Reply from 5000::2: time<1ms Ping statistics for 5000::2: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
可以ping通,说明整个网络中IPv6路由配置没有问题。
- 从CPE设备ping CGN连接城域网IPv6网络的接口地址,即GigabitEthernet 1/0/3的接口地址。
- IPv6用户访问IPv4公网资源
- 在PC2上ping www.example.com。
Pinging 6000::0101:301 with 32 bytes of data: Reply from 6000::0101:301: time=23ms Reply from 6000::0101:301: time=6ms Reply from 6000::0101:301: time=12ms Reply from 6000::0101:301: time=33ms Ping statistics for 6000::0101:301: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 6ms, Maximum = 33ms, Average = 18ms
PC可以Ping通Server的IPv4地址。
- 在CGN的任意视图下执行display firewall ipv6 session table,查看NAT64的会话表信息。
<CGN> display firewall ipv6 session table Slot: 6 CPU: 1 NAT64: icmp6 VPN: public --> public 2000::2.44152[1.1.2.14:10296] --> 6000::0101:301.2048[1.1.3.1:2048]
由NAT64会话表得知IPv6与IPv4地址的转换关系。
- 在PC2上ping www.example.com。
配置脚本
- CPE配置脚本
# sysname CPE # ipv6 # interface GigabitEthernet1/0/0 ip address 192.168.0.1 255.255.255.0 # interface GigabitEthernet1/0/1 ipv6 enable ipv6 address 2000::1/64 ospfv3 1 area 0.0.0.1 # interface GigabitEthernet1/0/2 ip address 10.1.1.1 255.255.255.0 # interface GigabitEthernet1/0/3 ipv6 enable ipv6 address 3000::1/64 ospfv3 1 area 0.0.0.0 # firewall zone local set priority 100 # firewall zone trust set priority 85 add interface GigabitEthernet1/0/0 add interface GigabitEthernet1/0/1 # firewall zone untrust set priority 5 add interface GigabitEthernet1/0/2 add interface GigabitEthernet1/0/3 # firewall zone dmz set priority 50 # firewall interzone trust untrust detect ftp # ospfv3 1 router-id 1.1.1.1 area 0.0.0.0 area 0.0.0.1 # ip route-static 10.1.2.0 255.255.255.0 10.1.1.2 # security-policy rule name policy_sec_1 source-zone trust destination-zone untrust source-address 192.168.0.0 24 source-address 2000::2 64 action permit # nat-policy rule name policy_nat_1 source-zone trust destination-zone untrust source-address 192.168.0.0 24 action source-nat easy-ip # return
- CGN配置脚本
# sysname CGN # ipv6 # firewall hash-mode source-only # nat64 prefix 6000:: 96 # interface GigabitEthernet1/0/0 undo shutdown ip address 1.1.1.1 255.255.255.0 # interface GigabitEthernet1/0/1 undo shutdown ipv6 enable ipv6 address 5000::1/64 ospfv3 1 area 0.0.0.2 # interface GigabitEthernet1/0/2 undo shutdown ip address 10.1.2.1 255.255.255.0 # interface GigabitEthernet1/0/3 undo shutdown ipv6 enable ipv6 address 4000::1/64 ospfv3 1 area 0.0.0.0 # firewall zone local set priority 100 # firewall zone trust set priority 85 add interface GigabitEthernet1/0/2 add interface GigabitEthernet1/0/3 # firewall zone untrust set priority 5 add interface GigabitEthernet1/0/0 add interface GigabitEthernet1/0/1 # firewall zone dmz set priority 50 # security-policy rule name policy1 source-zone trust destination-zone untrust destination-address 1.1.1.0 24 destination-address 5000:: 64 action permit # nat address-group addressgroup1 mode pat port-block-size 256 route enable section 1 1.1.2.1 1.1.2.5 nat address-group addressgroup2 nat-type nat64 mode pat route enable section 1 1.1.2.11 1.1.2.15 # nat-policy rule name policy_nat_1 source-zone trust destination-zone untrust source-address 10.1.1.0 24 action source-nat address-group addressgroup1 rule name policy_nat64 source-zone trust destination-zone untrust source-address 2000:: 64 action source-nat address-group addressgroup2 # firewall interzone trust untrust detect ftp # ospfv3 1 router-id 2.2.2.2 import-route static # ipv6 route-static 6000:: 96 NULL0 # return
方案三:DS-Lite+NAT64
典型组网
组网介绍
A运营商网络的IPv4业务和IPv6业务在经过一段时间的发展后,因公网IPv4地址已经耗尽,业务量逐渐大批量的迁移到IPv6网络,IPv6流量已经占主导地位,与此同时运营商的城域网已经完全升级至IPv6网络。为了适应现阶段网络的发展,此运营商决定采用如图1-13所示的解决方案,具体规划为:
- 对于IPv6用户,因为IPv6路由可达,所以直接通过查找IPv6路由访问IPv6 Internet。
- 对于IPv4用户,因其是私网IPv4地址,访问IPv4 Internet还要通过运营商的IPv6城域网,所以需要通过配置DS-Lite功能来解决这些问题,具体实施为:
- 在CPE设备和CGN设备上配置DS-Lite隧道。
- 在CGN设备上配置DS-Lite NAT策略。
- 如果IPv6用户需要访问IPv4公网资源,需要在CGN上部署NAT64功能,将IPv6地址转换成公网IPv4地址后访问IPv4 Internet。
CPE:Customer Premises Equipment,客户端设备 |
CGN:Carrier Grade NAT,运营商级NAT |
BRAS:Broadband Remote Access Server,宽带远端接入服务器 |
- |
- CPE(Customer Premises Equipment)用于接入终端用户,为用户分配地址:
- 给IPv4用户分配的是私网IPv4地址。
- 给IPv6用户分配的是IPv6地址。
另外,CPE设备还要与CGN建立DS-lite隧道。
- CGN(Carrier Grade NAT)设备作为城域网出口的网关,为私网IPv4用户访问IPv4 Internet提供DS-Lite隧道和到IPv4公网地址的转换;为IPv6用户访问IPv6 Internet提供路由通道;为IPv6用户访问IPv4网络提供IPv6地址到IPv4地址的转换。
- BRAS(Broadband Remote Access Server)为汇聚层设备,在组网中主要是为各CPE设备分配连接城域网接口的IPv6地址。
FW在组网中的应用
FW在场景中做为CPE和CGN设备,提供如下功能:
- 提供DS-Lite功能
为了让私网IPv4用户通过运营商IPv6城域网访问IPv4 Internet,需要在CPE和CGN上配置DS-Lite隧道,并且还要在CGN上配置DS-lite NAT策略。
- 提供路由
CPE和CGN需提供IPv4和IPv6两种业务的转发,所以需要支持IPv4和IPv6双协议栈。
- 提供IPv6地址到IPv4地址转换机制
为了让IPv6用户访问IPv4网络资源,CGN上需要配置NAT64功能。
业务规划
需求分析
方案 |
优点 |
具体实现 |
---|---|---|
采用DS-Lite技术解决私网IPv4用户穿越IPv6网络访问IPv4 Internet的问题 |
DS-Lite也称作轻量级双栈,由双栈设备+IPv6网络构成。DS-Lite网络中只有家庭网关CPE和运营级网关CGN为双栈,其它中间网络节点只需支持IPv6协议,所以配置和维护都只需在CPE和CGN上完成。 |
DS-Lite功能具体配置如下:
|
采用动态NAT64技术解决IPv6与IPv4业务之间的互访问题 |
动态NAT64技术采用动态地址映射和应用层协议映射的方法,使大量的IPv6地址可以通过很少的IPv4地址进行转换。既节省公网IPv4地址,又适合网络大规模部署。 |
NAT64功能是在CGN上进行部署的,主要配置如下:
|
数据规划
为了方便用户配置与理解,将组网图转换成如图1-14所示带数据的组网图。
NAT64通常与DNS64共同部署。DNS64提供域名解析,配置与NAT64设备相同的NAT64前缀和前缀长度。关于NAT64配置的组网图请参见图1-15。
运营商城域网升级至IPv6网络后,组网中依然采用OSPFv3协议规划IPv6路由,协议规划如图1-16所示。
网络整体数据规划如表1-12所示:
项目 |
IP地址 |
备注 |
|
---|---|---|---|
CPE |
GE1/0/0(Trust区域) |
IPv4私网地址:192.168.0.1/24 |
连接私网IPv4用户 |
GE1/0/1(Trust区域) |
IPv6地址:2000::1/64 |
连接IPv6用户 |
|
GE1/0/2(Untrust区域) |
IPv6地址:3000::1/64 |
连接运营商城域网接口地址 |
|
Tunnel1接口(Untrust区域) |
源地址:3000::1/64 目的地址:4000::1/64 隧道接口IPv4地址:10.1.1.1/24 |
与CGN建立IPv4 over IPv6隧道的隧道接口 |
|
CGN |
GE1/0/0(Untrust区域) |
IPv4公网地址:1.1.1.1/24 |
连接IPv4 Internet网络的接口,此处假设此接口下一跳地址为1.1.1.2/24 |
GE1/0/1(Untrust区域) |
IPv6地址:5000::1/64 |
连接IPv6 Internet的接口 |
|
GE1/0/2(Trust区域) |
IPv6地址:4000::1/64 |
连接运营商城域网接口地址 |
|
Tunnel1接口(Trust区域) |
源地址:4000::1/64 隧道接口IPv4地址:10.1.1.2/24 |
与CPE建立DS-Lite隧道的隧道接口 |
|
地址池 |
地址池1地址:1.1.2.1~1.1.2.5 地址池2地址:1.1.2.11~1.1.2.15 |
|
|
NAT64前缀 |
6000::/96 |
CGN通过判断IPv6报文的目的地址中是否包含NAT64前缀来决定是否对该IPv6报文进行NA64处理 |
|
DNS64 |
NAT64前缀 |
6000::/96 |
DNS64设备上配置的NAT64前缀与CGN上配置的NAT64前缀必须完全相同 |
域名:www.example.com |
域名对应的地址:6000::ca01:301 |
域名对应的地址是根据配置的NAT64前缀与IPv4 Internet上Server的公网IPv4地址计算出来的 |
|
PC1 |
IPv4私网地址:192.168.0.2/24 |
– |
|
PC2 |
IPv6地址:2000::2/64 |
– |
|
PC3 |
IPv6地址:5000::2/64 |
– |
|
Server |
IPv4公网地址:1.1.3.1/32 |
– |
IPv4路由规划如表1-13所示:
项目 |
路由协议 |
目的网段 |
下一跳地址和接口 |
备注 |
---|---|---|---|---|
CPE |
缺省IPv4路由 |
0.0.0.0/0 |
Tunnel 1 |
CPE到CGN的DS-lite隧道路由。 |
CGN |
静态IPv4路由 |
1.1.3.1/32 |
1.1.1.2 |
CGN到IPv4 Internet上Server的路由。 |
IPv6路由规划如表1-14所示:
配置流程
整个解决方案的配置流程如表1-15所示。
项目 |
过程 |
操作 |
备注 |
|
---|---|---|---|---|
CPE |
1 |
配置上下行接口数据 |
必选 根据网络实际规划的端口和IP地址进行配置。 |
|
2 |
配置IPv4 over IPv6隧道 |
必选 实现IPv4业务穿越IPv6城域网到达CGN。 |
||
2.1 |
指定隧道的封装类型 |
必选 隧道的封装类型为ipv4-ipv6。 |
||
2.2 |
指定隧道的源地址或源接口 |
必选
|
||
2.3 |
指定隧道的目的地址 |
必选 指CGN连接运营商城域网接口地址(4000::1/64)。 |
||
2.4 |
配置隧道接口的IPv4地址 |
必选 |
||
3 |
配置路由 |
必选 CPE设备配置的路由包括:
|
||
CGN |
1 |
配置上下行接口数据 |
必选 根据网络实际规划的端口和IP地址进行配置。 |
|
2 |
配置DS-Lite功能 |
必选 实现私网IPv4用户穿越IPv6网络访问IPv4公网络资源。 |
||
2.1 |
配置DS-Lite隧道接口 |
必选 实现IPv4业务穿越IPv6城域网到达CGN。 |
||
2.2 |
指定隧道的封装类型 |
必选 隧道的封装类型为ipv4-ipv6 ds-lite。 |
||
2.3 |
指定隧道的源地址或源接口 |
必选
|
||
2.4 |
配置隧道接口的IPv4地址 |
必选 |
||
2.5 |
配置NAT地址池 |
必选 此NAT地址池中的地址将作为DS-Lite NAT转换后报文的IPv4地址。 |
||
2.6 |
配置DS-Lite NAT策略 |
必选 DS-Lite NAT策略包括DS-Lite NAT策略和DS-Lite NAT Server,请根据具体网络场景配置。 |
||
3 |
配置路由 |
必选 配置的路由包括:
|
||
4 |
配置NAT64功能 |
必选 实现IPv6用户访问IPv4公网络资源。 |
||
4.1 |
配置NAT地址池 |
必选 此NAT地址池中的地址将作为NAT64转换后报文的IPv4地址。 |
||
4.2 |
配置NAT64前缀并在IPv6网络中发布 |
必选 CGN通过判断IPv6报文的目的地址中是否包含NAT64前缀来决定是否对该IPv6报文进行NA64处理。 |
||
4.4 |
配置NAT64策略 |
必选 NAT64动态映射在NAT策略中配置,需在NAT策略中指定类型为NAT64。进行NAT64转换时,CGN会在NAT64策略引用的NAT地址池中随机选择一个IPv4地址作为转换后报文的源地址。 |
配置步骤
操作步骤
- 配置CPE
- 开启IPv6报文转发功能。
<CPE> system-view [CPE] ipv6
- 配置接口地址并将接口加入安全区域。
# 配置GigabitEthernet 1/0/0的IP地址。
[CPE] interface GigabitEthernet 1/0/0 [CPE-GigabitEthernet1/0/0] ip address 192.168.0.1 255.255.255.0 [CPE-GigabitEthernet1/0/0] quit [CPE] firewall zone trust [CPE-zone-trust] add interface GigabitEthernet 1/0/0 [CPE-zone-trust] quit
# 配置GigabitEthernet 1/0/1的IP地址。
[CPE] interface GigabitEthernet 1/0/1 [CPE-GigabitEthernet1/0/1] ipv6 enable [CPE-GigabitEthernet1/0/1] ipv6 address 2000::1 64 [CPE-GigabitEthernet1/0/1] quit [CPE] firewall zone trust [CPE-zone-trust] add interface GigabitEthernet 1/0/1 [CPE-zone-trust] quit
# 配置GigabitEthernet 1/0/2的IP地址。
[CPE] interface GigabitEthernet 1/0/2 [CPE-GigabitEthernet1/0/2] ipv6 enable [CPE-GigabitEthernet1/0/2] ipv6 address 3000::1 64 [CPE-GigabitEthernet1/0/2] quit [CPE] firewall zone untrust [CPE-zone-untrust] add interface GigabitEthernet 1/0/2 [CPE-zone-untrust] quit
- 配置IPv4 over IPv6隧道。
# 配置IPv4 over IPv6隧道接口Tunnel1。
[CPE] interface Tunnel 1 [CPE-Tunnel1] tunnel-protocol ipv4-ipv6 [CPE-Tunnel1] source 3000::1 [CPE-Tunnel1] destination 4000::1 [CPE-Tunnel1] ip address 10.1.1.1 255.255.255.0 [CPE-Tunnel1] quit
# 将Tunnel1接口加入到Untrust区域。
[CPE] firewall zone untrust [CPE-zone-untrust] add interface tunnel 1 [CPE-zone-untrust] quit
- 配置安全策略。配置允许报文私网到公网的安全策略policy1和允许隧道报文通过的policy2。
[CPE] security-policy [CPE-policy-security] rule name policy1 [CPE-policy-security-policy1] source-zone trust [CPE-policy-security-policy1] destination-zone untrust [CPE-policy-security-policy1] source-address 192.168.0.0 24 [CPE-policy-security-policy1] source-address 2000:: 64 [CPE-policy-security-policy1] action permit [CPE-policy-security-policy1] quit [CPE-policy-security] rule name policy2 [CPE-policy-security-policy2] source-zone local [CPE-policy-security-policy2] destination-zone untrust [CPE-policy-security-policy2] source-address 10.1.1.0 24 [CPE-policy-security-policy2] action permit [CPE-policy-security-policy2] quit [CPE-policy-security] quit
- 配置OSPFv3协议,用于IPv6业务的路由选路。
[CPE] ospfv3 [CPE-ospfv3-1] router-id 1.1.1.1 [CPE-ospfv3-1] quit [CPE] interface GigabitEthernet1/0/2 [CPE-GigabitEthernet1/0/2] ospfv3 1 area 0 [CPE-GigabitEthernet1/0/2] quit [CPE] interface GigabitEthernet1/0/1 [CPE-GigabitEthernet1/0/1] ospfv3 1 area 1 [CPE-GigabitEthernet1/0/1] quit
- 配置隧道的缺省IPv4路由。
[CPE] ip route-static 0.0.0.0 0.0.0.0 tunnel 1
- 开启IPv6报文转发功能。
- 配置CGN
- 开启IPv6报文转发功能。
<CGN> system-view [CGN] ipv6
- 配置HASH选板模式为源地址HASH模式。
[CGN] firewall hash-mode source-only
- 配置接口地址并将接口加入安全区域。
# 配置GigabitEthernet 1/0/0的IP地址。
[CGN] interface GigabitEthernet 1/0/0 [CGN-GigabitEthernet1/0/0] ip address 1.1.1.1 255.255.255.0 [CGN-GigabitEthernet1/0/0] quit [CGN] firewall zone untrust [CGN-zone-untrust] add interface GigabitEthernet 1/0/0 [CGN-zone-untrust] quit
# 配置GigabitEthernet 1/0/1的IP地址。
[CGN] interface GigabitEthernet 1/0/1 [CGN-GigabitEthernet1/0/1] ipv6 enable [CGN-GigabitEthernet1/0/1] ipv6 address 5000::1 64 [CGN-GigabitEthernet1/0/1] quit [CGN] firewall zone untrust [CGN-zone-untrust] add interface GigabitEthernet 1/0/1 [CGN-zone-untrust] quit
# 配置GigabitEthernet 1/0/2的IP地址。
[CGN] interface GigabitEthernet 1/0/2 [CGN-GigabitEthernet1/0/2] ipv6 enable [CGN-GigabitEthernet1/0/2] ipv6 address 4000::1 64 [CGN-GigabitEthernet1/0/2] quit [CGN] firewall zone trust [CGN-zone-trust] add interface GigabitEthernet 1/0/2 [CGN-zone-trust] quit
- 配置安全策略。配置允许报文私网到公网的安全策略policy1和允许隧道报文通过的policy2。
[CGN] security-policy [CGN-policy-security] rule name policy1 [CGN-policy-security-policy1] source-zone trust [CGN-policy-security-policy1] destination-zone untrust [CGN-policy-security-policy1] destination-address 1.1.1.0 24 [CGN-policy-security-policy1] destination-address 5000:: 64 [CGN-policy-security-policy1] action permit [CGN-policy-security-policy1] quit [CGN-policy-security] rule name policy2 [CGN-policy-security-policy2] source-zone trust [CGN-policy-security-policy2] destination-zone local [CGN-policy-security-policy2] destination-address 10.1.1.0 24 [CGN-policy-security-policy2] action permit [CGN-policy-security-policy2] quit [CGN-policy-security] quit
- 配置DS-Lite功能。
# 配置DS-Lite隧道接口Tunnel1。
[CGN] interface Tunnel 1 [CGN-Tunnel1] tunnel-protocol ipv4-ipv6 ds-lite [CGN-Tunnel1] source 4000::1 [CGN-Tunnel1] ip address 10.1.1.2 255.255.255.0 [CGN-Tunnel1] quit
# 将Tunnel1接口加入到Trust区域。
[CGN] firewall zone trust [CGN-zone-trust] add interface tunnel 1 [CGN-zone-trust] quit
# 配置NAT地址池。
[CGN] nat address-group addressgroup1 [CGN-address-group-addressgroup1] route enable [CGN-address-group-addressgroup1] section 1 1.1.2.1 1.1.2.5 [CGN-address-group-addressgroup1] quit
# 配置DS-Lite NAT策略。
[CGN] nat-policy [CGN-policy-nat] rule name policy_nat_1 [CGN-policy-nat-rule-policy_nat_1] nat-type ds-lite [CGN-policy-nat-rule-policy_nat_1] source-zone trust [CGN-policy-nat-rule-policy_nat_1] destination-zone untrust [CGN-policy-nat-rule-policy_nat_1] source-address 3000::1 64 [CGN-policy-nat-rule-policy_nat_1] action source-nat address-group addressgroup1 [CGN-policy-nat-rule-policy_nat_1] quit [CGN-policy-nat] quit
# 在Trust和Untrust域间配置NAT ALG,使服务器可以正常对外提供FTP服务。
[CGN] firewall interzone trust untrust [CGN-interzone-trust-untrust] detect ftp [CGN-interzone-trust-untrust] quit
- 配置静态IPv4路由。
配置到Internet上FTP Server的静态IPv4路由。此处假设CGN连接Internet的下一跳地址为1.1.1.2。
[CGN] ip route-static 1.1.3.1.255.255.255.255 1.1.1.2
- 配置OSPFv3协议,用于IPv6业务的路由选路。
[CGN] ospfv3 [CGN-ospfv3-1] router-id 2.2.2.2 [CGN-ospfv3-1] quit [CGN] interface GigabitEthernet1/0/2 [CGN-GigabitEthernet1/0/2] ospfv3 1 area 0 [CGN-GigabitEthernet1/0/2] quit [CGN] interface GigabitEthernet1/0/1 [CGN-GigabitEthernet1/0/1] ospfv3 1 area 2 [CGN-GigabitEthernet1/0/1] quit
- 配置NAT64功能。
# 配置IPv4 NAT地址池2,地址范围为1.1.2.11~1.1.2.15。NAT地址池中的地址将作为NAT64转换后报文的IPv4地址。
[CGN] nat address-group addressgroup2 [CGN-address-group-addressgroup2] mode pat [CGN-address-group-addressgroup2] route enable [CGN-address-group-addressgroup2] section 1 1.1.2.11 1.1.2.15 [CGN-address-group-addressgroup2] quit
# 配置NAT64的前缀为6000::/96。
[CGN] nat64 prefix 6000:: 96
# 配置NAT64策略。
[CGN] nat-policy [CGN-policy-nat] rule name policy_nat64 [CGN-policy-nat-rule-policy_nat64] nat-type nat64 [CGN-policy-nat-rule-policy_nat64] source-zone trust [CGN-policy-nat-rule-policy_nat64] destination-zone untrust [CGN-policy-nat-rule-policy_nat64] source-address 2000:: 64 [CGN-policy-nat-rule-policy_nat64] action source-nat address-group addressgroup2 [CGN-policy-nat-rule-policy_nat64] quit [CGN-policy-nat] quit
# 配置NAT64前缀的黑洞路由,用于发布NAT64前缀。
[CGN] ipv6 route-static 6000:: 96 NULL 0
# 在OSPFv3协议中引入NAT64前缀的黑洞路由。
[CGN] ospfv3 [CGN-ospfv3-1] import-route static [CGN-ospfv3-1] quit
- 开启IPv6报文转发功能。
- 配置DNS64设备。
配置DNS64设备的NAT64前缀为6000::/96,与CGN配置的NAT64前缀保持一致。
配置DNS64设备分别与PC和Server路由可达。
在DNS64设备上设置域名www.example.com对应的IPv6地址为6000::ca01:301。
- 配置Server。
通常情况下,Server由ISP负责配置,此处仅简要介绍与本举例相关的配置要点:
- 配置Server的IP地址为1.1.3.1/32。
- Server上需要有到CGN上地址池中地址的路由。
- Server上同时提供FTP和HTTP服务。
- 配置PC1、PC2、PC3。
需配置各PC的地址和指定各自的网关。(PC的地址和路由的配置方法与PC的操作系统有关,配置方法略。)
结果验证
- 验证IPv4业务
- 配置完成后,在私网IPv4 PC1上可以访问IPv4公网Server的FTP服务。
C:\Documents and Settings\Administrator>ftp 1.1.3.1 Connected to 1.1.3.1. 220 FTP service ready. User (1.1.3.1:(none)): admin 331 Password required for admin. Password: 230 User logged in. ftp>
- 在CPE设备上通过执行display firewall session table verbose命令,查看详细的会话信息。
[CPE] display firewall session table verbose Current Total Sessions : 2 ftp VPN:public --> public ID: ab016391fa4c03558d54c16fac122 Zone: trust--> untrust TTL: 00:10:00 Left: 00:09:59 Interface: Tunnel1 NextHop: 1.1.3.1 MAC: 0000-0000-0000 <--packets:8 bytes:498 -->packets:12 bytes:541 192.168.0.2:1035+->1.1.3.1:21 PolicyName: --- ftp-data VPN:public --> public ID: ab016391fa4c03558d54c16acd159 Zone: untrust--> trust TTL: 00:00:10 Left: 00:00:00 Interface: GigabitEthernet1/0/0 NextHop: 192.168.0.2 MAC: 0018-826f-b3f4 <--packets:3 bytes:124 -->packets:5 bytes:370 1.1.3.1:20-->192.168.0.2:1036 PolicyName: ---
通过显示信息可以看出,数据的出接口Tunnel1接口,说明隧道配置成功。
- 配置完成后,在私网IPv4 PC1上可以访问IPv4公网Server的FTP服务。
- 验证IPv6业务
- 从CPE设备ping CGN连接城域网IPv6网络的接口地址,即GigabitEthernet 1/0/2的接口地址。
<CPE> ping ipv6 4000::1 PING 4000::1 : 56 data bytes, press CTRL_C to break Reply from 4000::1 bytes=56 Sequence=1 hop limit=64 time = 90 ms Reply from 4000::1 bytes=56 Sequence=2 hop limit=64 time = 100 ms Reply from 4000::1 bytes=56 Sequence=3 hop limit=64 time = 40 ms Reply from 4000::1 bytes=56 Sequence=4 hop limit=64 time = 60 ms Reply from 4000::1 bytes=56 Sequence=5 hop limit=64 time = 40 ms --- 4000::1 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 40/66/100 ms
可以ping通,说明CPE设备与CGN上都有到达对方的IPv6路由。此时在CPE设备和CGN通过执行display ospfv3 routing命令,可以查看到各自的OSPFv3路由表。
[CPE] display ospfv3 routing OSPFv3 Process (1) Destination Metric Next-hop 2000::/64 1 directly connected, GigabitEthernet1/0/1 3000::/64 1 directly connected, GigabitEthernet1/0/2 IA 4000::/64 2 via FE80::218:82FF:FE39:1E5C, GigabitEthernet1/0/2 IA 5000::/64 3 via FE80::218:82FF:FE39:1E5C, GigabitEthernet1/0/2
通过OSPFv3路由表,可以看到CPE设备已经学习到CGN连接城域网IPv6网络的接口网段和连接IPv6 Internet的接口网段的路由。
[CGN] display ospfv3 routing OSPFv3 Process (1) Destination Metric Next-hop IA 2000::/64 3 via FE80::222:A1FF:FE30:22, GigabitEthernet1/0/2 IA 3000::/64 2 via FE80::222:A1FF:FE30:22, GigabitEthernet1/0/2 4000::/64 1 directly connected, GigabitEthernet1/0/2 5000::/64 1 directly connected, GigabitEthernet1/0/1
通过OSPFv3路由表,可以看到CGN已经学习到CPE设备连接城域网IPv6网络的接口网段和连接IPv6用户的接口网段的路由。
- 在PC2上ping PC3的地址。
C:\> ping6 5000::2 from 2000::2 with 32 bytes of data: Reply from 5000::2: time<1ms Reply from 5000::2: time<1ms Reply from 5000::2: time<1ms Reply from 5000::2: time<1ms Ping statistics for 5000::2: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
可以ping通,说明整个网络中IPv6路由配置没有问题。
- 从CPE设备ping CGN连接城域网IPv6网络的接口地址,即GigabitEthernet 1/0/2的接口地址。
- IPv6用户访问IPv4公网资源
- 在PC2上ping www.example.com。
Pinging 6000::ca01:301 with 32 bytes of data: Reply from 6000::ca01:301: time=23ms Reply from 6000::ca01:301: time=6ms Reply from 6000::ca01:301: time=12ms Reply from 6000::ca01:301: time=33ms Ping statistics for 6000::ca01:301: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 6ms, Maximum = 33ms, Average = 18ms
PC可以Ping通Server的IPv4地址。
- 在CGN的任意视图下执行display firewall ipv6 session table,查看NAT64的会话表信息。
<CGN> display firewall ipv6 session table Slot: 6 CPU: 1 NAT64: icmp6 VPN: public --> public 2000::2.44152[1.1.2.14:10296] --> 6000::CA01:301.2048[1.1.3.1:2048]
由NAT64会话表得知IPv6与IPv4地址的转换关系。
- 在PC2上ping www.example.com。
配置脚本
- CPE配置脚本
# sysname CPE # ipv6 # interface GigabitEthernet1/0/0 ip address 192.168.0.1 255.255.255.0 # interface GigabitEthernet1/0/1 ipv6 enable ipv6 address 2000::1/64 ospfv3 1 area 0.0.0.1 # interface GigabitEthernet1/0/2 ipv6 enable ipv6 address 3000::1/64 ospfv3 1 area 0.0.0.0 # interface Tunnel1 ip address 10.1.1.1 255.255.255.0 tunnel-protocol ipv4-ipv6 source 3000::1 destination 4000::1 # firewall zone local set priority 100 # firewall zone trust set priority 85 add interface GigabitEthernet1/0/0 add interface GigabitEthernet1/0/1 # firewall zone untrust set priority 5 add interface GigabitEthernet1/0/2 add interface Tunnel1 # security-policy rule name policy1 source-zone trust destination-zone untrust source-address 192.168.0.0 24 source-address 2000:: 64 action permit rule name policy2 source-zone local destination-zone untrust source-address 10.1.1.0 24 action permit # firewall zone dmz set priority 50 # ospfv3 1 router-id 1.1.1.1 area 0.0.0.0 area 0.0.0.1 # ip route-static 0.0.0.0 0.0.0.0 Tunnel1 # return
- CGN配置脚本
# sysname CGN # ipv6 # firewall hash-mode source-only # nat address-group 1 section 1 1.1.2.1 1.1.2.5 # nat address-group 1 section 1 1.1.2.11 1.1.2.15 # nat64 prefix 6000:: 96 # interface GigabitEthernet1/0/0 undo shutdown ip address 1.1.1.1 255.255.255.0 # interface GigabitEthernet1/0/1 undo shutdown ipv6 enable ipv6 address 5000::1/64 ospfv3 1 area 0.0.0.2 # interface GigabitEthernet1/0/2 undo shutdown ipv6 enable ipv6 address 4000::1/64 ospfv3 1 area 0.0.0.0 # interface Tunnel1 ip address 10.1.1.2 255.255.255.0 tunnel-protocol ipv4-ipv6 ds-lite source 4000::1 # firewall zone local set priority 100 # firewall zone trust set priority 85 add interface GigabitEthernet1/0/2 add interface Tunnel1 # firewall zone untrust set priority 5 add interface GigabitEthernet1/0/0 add interface GigabitEthernet1/0/1 # firewall zone dmz set priority 50 # security-policy rule name policy1 source-zone trust destination-zone untrust destination-address 1.1.1.0 24 destination-address 5000:: 64 action permit rule name policy2 source-zone trust destination-zone local destination-address 10.1.1.0 24 action permit # nat address-group addressgroup1 route enable section 1 1.1.2.1 1.1.2.5 nat address-group addressgroup2 mode pat route enable section 1 1.1.2.11 1.1.2.15 # nat-policy rule name policy_nat_1 nat-type ds-lite source-zone trust destination-zone untrust source-address 3000::1 64 action source-nat address-group addressgroup1 rule name policy_nat64 nat-type nat64 source-zone trust destination-zone untrust source-address 2000:: 64 action source-nat address-group addressgroup2 # firewall interzone trust untrust detect ftp # ospfv3 1 router-id 2.2.2.2 import-route static # ipv6 route-static 6000:: 96 NULL0 # return
方案总结与建议
CGN解决方案中三个方案的选择主要是依据网络中IPv4和IPv6协议的部署情况而定的,三个方案对应着IPv4网络为主体,IPv4和IPv6网络共存,以及IPv6网络为主体的三种情况。
- IPv4网络为主体
以NAT444协议为主要过渡技术,通过NAT444技术尽可能的节约公网地址。与此同时,配置端口预分配功能提前为用户规划转换端口,保证端口能够合理使用,并且可以通过与日志服务器联动,解决用户溯源问题。
通过IPv6隧道技术,让已经发展的少量IPv6网络用户能够互相访问。
- IPv4和IPv6网络共存
IPv4业务中依然是NAT444与端口预分配功能配合使用,节约公网地址的同时便于为用户溯源。
因为IPv6协议在整网的部署已经完成,IPv6业务之间的互访完全通过查找IPv6路由就能完成。
IPv6业务与IPv4业务之间的互访通过NAT64技术来完成。
- IPv6网络为主体
网络中IPv6业务不需要任何过渡技术即可互访,完全通过查找IPv6路由来完成。
少量的IPv4业务之间的互访通过DS-Lite技术来完成,同时,也可以配置端口预分配功能为用户预分配端口和溯源。
IPv6业务与IPv4业务之间的互访通过NAT64技术来完成。