我们已经准备好了,你呢?

2022我们与您携手共赢,为您的企业网络安全保驾护航!

H3C防火墙NAT处理顺序

本文主要适用于H3C V7版本防火墙介绍了NAT的基本类型和执行顺序。相关内容很多援引H3C官方产品文档NAT类型及相关说明以官方文档为准。

                                   1 NAT类型及配置说明

H3C V7产品支持的NAT按照    组网方式      可分为以下几种

(1) 传统NAT                                    
         报文经过NAT设备时在NAT接口上仅进行一次源IP地址转换或一次目的IP地址转换。对于内网访问外网的报文在出接口上进行源IP地址转换对于外网访问内网的报文在入接口上进行目的地址IP地址转换。

(2) 两次NAT                                    
         报文入接口和出接口均为NAT接口。报文经过NAT设备时先后进行两次NAT转换。对于内网访问外网的报文和外网访问内网的报文均在入接口进行目的IP地址转换在出接口进行源IP地址转换。这种方式常用于支持地址重叠的VPN间互访。

(3) 双向NAT                                    
          报文经过NAT设备时在NAT接口上同时进行一次源IP地址转换和一次目的IP地址转换。对于内网访问外网的报文在出接口上同时进行源IP地址和目的IP地址的转换对于外网访问内网的报文同时在入接口上进行目的地址IP地址和源IP地址的转换。这种方式常用于支持内网用户主动访问与之地址重叠的外网资源。

(4) NAT hairpin                                    
           NAT hairpin功能用于满足位于内网侧的用户之间或内网侧的用户与服务器之间通过NAT地址进行访问的需求。开启NAT hairpin的内网侧接口上会对报文同时进行源地址和目的地址的转换。它支持两种组网模式                                    
                 •P2P位于内网侧的用户之间通过动态分配的NAT地址互访。                                    
                 •C/S位于内网侧的用户使用静态配置的NAT地址访问内网服务器。

按照实现方式可将NAT分为以下几种                                     

(1) 静态方式                                    
        静态地址转换是指外部网络和内部网络之间的地址映射关系由配置确定该方式适用于内部网络与外部网络之间存在固定访问需求的组网环境。静态地址转换支持双向互访内网用户可以主动访问外网外网用户也可以主动访问内网。

(2) 动态方式                                    
        动态地址转换是指内部网络和外部网络之间的地址映射关系在建立连接的时候动态产生。该方式仅支持单向发起访问通常适用于内部网络有大量用户需要访问外部网络的组网环境。动态地址转换存在两种转换模式                                    
      •NO-PAT模式                                    
           NO-PAT Not Port Address Translation模式下一个外网地址同一时间只能分配给一个内网地址进行地址转换不能同时被多个内网地址共用。当使用某外网地址的内网用户停止访问外网时NAT会将其占用的外网地址释放并分配给其他内网用户使用。该模式下NAT设备只对报文的IP地址进行NAT转换同时会建立一个NO-PAT表项用于记录IP地址映射关系并可支持所有IP协议的报文。                                    
         •PAT模式                                    
            PAT Port Address Translation模式下一个NAT地址可以同时分配给多个内网地址共用。该模式下NAT设备需要对报文的IP地址和传输层端口同时进行转换且只支持TCP、UDP和ICMP Internet Control Message Protocol互联网控制消息协议查询报文。采用PAT方式可以更加充分地利用IP地址资源实现更多内部网络主机对外部网络的同时访问。                                    
目前PAT支持两种不同的地址转换模式                                  
                                    •                                    Endpoint-Independent Mapping                                     

不关心对端地址和端口转换模式只要是来自相同源地址和源端口号的报文不论其目的地址是否相同通过PAT映射后其源地址和源端口号都被转换为同一个外部地址和端口号该映射关系会被记录下来并生成一个EIM表项并且NAT设备允许所有外部网络的主机通过该转换后的地址和端口来访问这些内部网络的主机。这种模式可以很好的支持位于不同NAT网关之后的主机进行互访。                                    
                                    •                                    Address and Port-Dependent Mapping                                     

关心对端地址和端口转换模式对于来自相同源地址和源端口号的报文相同的源地址和源端口号并不要求被转换为相同的外部地址和端口号若其目的地址或目的端口号不同通过PAT映射后相同的源地址和源端口号通常会被转换成不同的外部地址和端口号。与Endpoint-Independent Mapping模式不同的是NAT设备只允许这些目的地址对应的外部网络的主机可以通过该转换后的地址和端口来访问这些内部网络的主机。这种模式安全性好但由于同一个内网主机地址转换后的外部地址不唯一因此不便于位于不同NAT网关之后的主机使用内网主机转换后的地址进行互访。

(3) 内部服务器                                    
                                    在实际应用中内网中的服务器可能需要对外部网络提供一些服务例如给外部网络提供Web服务或是FTP服务。这种情况下NAT设备允许外网用户通过指定的NAT地址和端口访问这些内部服务器NAT内部服务器的配置就定义了NAT地址和端口与内网服务器地址和端口的映射关系。

(4) NAT444端口块方式                                    
                                    NAT444是运营商网络部署NAT的整体解决方案它基于NAT444网关结合AAA服务器、日志服务器等配套系统提供运营商级的NAT并支持用户溯源等功能。在众多IPv4向IPv6网络过渡的技术中NAT444仅需在运营商侧引入二次NAT对终端和应用服务器端的更改较小并且NAT444通过端口块分配方式解决用户溯源等问题因此成为了运营商的首选IPv6过渡方案。

以下仅介绍入方向静态地址转换nat static inbound、出方向静态地址转换nat static outbound、入方向动态地址转换nat inbound、出方向动态地址转换nat static outbound、NAT服务器映射nat server;等五种常用NAT类型。

                                   1.1 入方向静态地址转换nat static inbound

入方向静态地址转换用于实现一个内部私有网络地址/网段/地址对象组与一个外部公有网络地址/网段/地址对象组之间的转换具体过程如下                                  
                                    • 对于经过该接口发送的内网访问外网的报文将其目的IP地址与指定的内网IP地址/网段/地址对象组进行匹配并将匹配的目的IP地址转换为指定的外网地址/网段/地址对象组中的地址。                                    
                                    • 对于该接口接收到的外网访问内网的报文将其源IP地址与指定的外网IP地址/网段/地址对象组进行匹配并将匹配的源IP地址转换为指定的地址/网段/地址对象组中的地址。

如果接口上配置的静态地址转换映射中指定了acl参数则仅对符合指定ACL permit规则的报文进行地址转换。                                    
                                    基于地址对象组的入方向静态地址转换引用的IPv4地址对象组中只能存在一个主机对象host或者一个子网对象subnet否则引用不生效。

                                   1.2 出方向静态地址转换nat static outbound

出方向静态地址转换通常应用在外网侧接口上用于实现一个内部私有网络地址到一个外部公有网络地址的转换具体过程如下                                  
                                    • 对于经过该接口发送的内网访问外网的报文将其源IP地址与指定的内网IPv4地址/网段/地址对象组进行匹配并将匹配的源IP地址转换为外网IPv4地址/网段/地址对象组中的地址。                                    
                                    • 对于该接口接收到的外网访问内网的报文将其目的IP地址与指定的外网IPv4地址/网段/地址对象组进行匹配并将匹配的目的IP地址转换为内网IPv4地址/网段/地址对象组中的地址。                                    
                                    如果接口上配置的静态地址转换映射中指定了acl参数则仅对符合指定ACL permit规则的报文进行地址转换。                                    
                                    基于地址对象组的出方向静态地址转换引用的IPv4地址对象组中只能存在一个主机对象host或者一个子网对象subnet否则引用不生效。

                                   1.3 入方向动态地址转换nat inbound

入方向动态地址转换功能通常与接口上的出方向动态地址转换nat outbound、内部服务器nat server或出方向静态地址转换nat static outbound配合用于实现双向NAT应用不建议单独使用。                                    
                                    入接口动态地址转换的具体过程如下                                   
                                    • 对于该接口接收到的外网访问内网的首报文将与指定的ACL permit规则匹配的报文的源IP地址转换为地址组中的地址。                                    
                                    • 在指定了no-pat reversible参数并且已经存在NO-PAT表项的情况下对于经过该接口发送的内网访问外网的首报文将其目的IP地址与NO-PAT表项进行匹配并将目的IP地址转换为匹配的NO-PAT表项中记录的外网地址。                                    
                                    需要注意的是该方式下的地址转换不支持Easy IP功能。

                                   1.4 出方向动态地址转换nat outbound

出方向动态地址转换通常应用在外网侧接口上用于实现一个内部私有网络地址到一个外部公有网络地址的转换具体过程如下                                  
                                    • 对于经过该接口发送的内网访问外网的报文将与指定ACL permit规则匹配的报文源IP地址转换为地址组中的地址。                                    
                                    • 在指定了no-pat reversible参数并且已经存在NO-PAT表项的情况下对于经过该接口收到的外网访问内网的首报文将其目的IP地址与NO-PAT表项进行匹配并将目的IP地址转换为匹配的NO-PAT表项中记录的内网地址。

                                   1.5 NAT服务器映射nat server

通过在NAT设备上配置内部服务器,建立一个或多个内网服务器内网地址和端口与外网地址和端口的映射关系使外部网络用户能够通过配置的外网地址和端口来访问内网服务器。内部服务器通常配置在外网侧接口上。                                    
                                    H3C V7产品中NAT服务器映射可分为普通内部服务器、负载分担内部服务器和基于ACL的内部服务器三种。                                    
                                    若普通内部服务器或者负载分担内部服务器配置中引用了acl参数则表示与指定的ACL permit规则匹配的报文才可以使用内部服务器的映射表进行地址转换。需要注意的是NAT仅关注ACL规则中定义的源IP地址、源端口号、目的IP地址、目的端口号、传输层协议类型和VPN实例不关注ACL规则中定义的其它元素。                                    
                                    普通的内部服务器是将内网服务器的地址和端口映射为外网地址和端口允许外部网络中的主机通过配置的外网地址和端口访问位于内网的服务器。

                                   2 NAT类型的应用说明

                                   2.1 单一类型的特性与应用

NAT各类型对报文的处理方式各有不同其在不同方向的处理方式决定了最终应用的效果。具体区别可见下表                                   
                                   在这里插入图片描述                                    由此可知以上各种类型的NAT中静态NAT适用于部分网络双向访问动态NAT适用于单方面发起对访问NAT Server适用于单方面提供特定服务。

                                   2.2 多种NAT类型的单次转换组合应用

对于一个复杂的网络其NAT需求往往并不单一需要将多种NAT类型结合使用来达到相应目的。以下介绍在不存在IP地址重叠的情况下常见的单次NAT类型组合应用:

场景一、内网访问外网同时内网对外提供特定的服务                                    
                                    该场景下要求对内网出局的流量进行源地址转换对外网访问内网服务的流量进行目的地址转换。可实现的方案如下                                    
                                    方案一在外网接口同时部署NAT Outbound和NAT Server最优方案推荐                                   
                                    方案二在内网接口部署NAT Inbound外网接口部署NAT Server                                   
                                    方案三在外网接口部署NAT Outbound和NAT Static Outbound服务器对于外网来说处于完全可访问状态不推荐                                    
                                    方案四在外网接口部署NAT Outbound内网接口部署NAT Static Inbound服务器对于外网来说处于完全可访问状态不推荐                                   
                                    方案五在内网接口部署NAT inbound和NAT Static Inbound服务器对于外网来说处于完全可访问状态,不推荐                                   
                                    方案六在内网接口部署NAT Inbound外网接口部署NAT Static Outbound服务器对于外网来说处于完全可访问状态不推荐。                                    
                                    针对以上六种方案,综合安全性和部署维护的复杂度来考虑推荐首选方案一并将方案二作为备选。

场景二、外网访问内网并对内网提供特定服务                                    
                                    该场景刚好与场景一类似只是访问方向相反。事实上无论是出于安全的角度还是出于管理维护的角度都应该避免该类场景的出现如果确定有这样的需求也应该尽量由外网来完成NAT部署。该场景要求对外网入局的流量进行源地址转换对内网访问外网服务的流量进行目的地址转换。可实现的方案如下                                   
                                    方案一在内网接口同时部署NAT Outbound和NAT Server最优方案推荐                                 
                                    方案二在外网接口部署NAT Inbound内网接口部署NAT Server                                    
                                    方案三在内网网接口部署NAT Outbound和NAT Static Outbound服务器对于内网来说处于完全可访问状态不推荐                                   
                                    方案四:在内网接口部署NAT Outbound外网接口部署NAT Static Inbound服务器对于内网来说处于完全可访问状态不推荐                                    
                                    方案五:在外网接口部署NAT inbound和NAT Static Inbound服务器对于内网来说处于完全可访问状态不推荐                                   
                                    方案六在外网接口部署NAT Inbound内网接口部署NAT Static Outbound服务器对于内网来说处于完全可访问状态不推荐。                                    
                                    针对以上六种方案综合安全性和部署维护的复杂度来考虑推荐首选方案一并将方案二作为备选。

场景三、内网和外网完全互访                                    
                                    该场景要求对外网入局的流量和内网出局的流量都进行单向源地址转换。出于安全考虑实际部署时也应避免该场景的发生如果必要应尽量由外网完成入局流量的NAT。可实现的方案如下                                    
                                    方案一在外网接口和内网接口都部署NAT Outbound最优方案推荐                                   
                                    方案二在外网接口和内网接口都部署NAT Inbound最优方案推荐                                   
                                    方案三在外网接口同时部署NAT Outbound和NAT Inbound                                   
                                    方案四在内网接口同时部署NAT Outbound和NAT Inbound。                                    
                                    针对以上四种方案出于部署维护的复杂度来考虑推荐首选方案一。

                                   2.3 多种NAT类型的两次转换组合应用

除开常规需求场景外还往往存在一些特殊的组网环境需要更复杂的处理方式。如出于安全要求、或者因为地址重叠的原因要求我们在单向流量中同时对源地址和目的地址进行NAT。该情况下通常不存在完全访问的可能或者说访问目标必须是明确的一个地址或地址集合。出于运维管理的考虑也应该尽量避免使用该场景的NAT不能避免的也应尽量由访问方进行源地址转换被访问方进行目的地址转换。对于确定需要同时进行源和目的地址NAT的V7有两种实现方式可以通过在流量入口和出口各自进行目的地址NAT和源地址NAT即两次NAT的方式来实现也可以通过在一个接口上同时进行源地址和目的地址NAT即双向NAT来实现。

场景一、内网单向访问外网地址重叠                                    
                                    方案一在内网接口部署NAT Static Outbound在外网接口部署NAT Outbound两次NAT                                    
                                    方案二在外网接口部署NAT Static Inbound在内网接口部署NAT Inbound两次NAT                                  
                                    方案三在外网接口同时部署NAT Static Inbound和NAT Outbound双向NAT                                    
                                    方案四在内网接口同时部署NAT Static Outbound和NAT Inbound双向NAT。

场景二、外网单向访问内网地址重叠                                    
                                    方案一在外网接口部署NAT Static Outbound在内网接口部署NAT Outbound两次NAT                                    
                                    方案二在内网接口部署NAT Static Inbound在外网接口部署NAT Inbound两次NAT                                  
                                    方案三在内网接口同时部署NAT Static Inbound和NAT Outbound双向NAT                                    
                                    方案四在外网接口同时部署NAT Static Outbound和NAT Inbound双向NAT。

场景三、外网单向访问内网特定服务地址重叠                                    
                                    方案一外网接口同时部署NAT Static Inbound和NAT Server双向NAT                                   
                                    方案二外网接口同时部署NAT Inbound和NAT Server双向NAT                                  
                                    方案三外网接口部署NAT Server内网接口部署NAT Static Outbound两次NAT                                   
                                    方案四外网接口部署NAT Server内网接口部署NAT Outbound两次NAT。

场景四、内网和外网双向互访地址重叠                                    
                                    方案一在外网接口和内网接口都部署NAT Static Outbound两次NAT                                 
                                    方案二在外网接口和内网接口都部署NAT Static Inbound两次NAT                                   
                                    方案三在外网接口同时部署NAT Static Outbound和NAT Static Inbound双向NAT                                    
                                    方案四在内网接口同时部署NAT Static Outbound和NAT Static Inbound双向NAT。                                    
                                    以上方案通常用于一一对应的互访此外还可以组合使用本小节中场景一和场景二的解决方案来实现本场景的访问需求只是会加大实施难度并放大访问发起者的范围降低安全性可通过ACL减缓。

                                   2.4 多种NAT类型组合应用的注意事项

一、当需要添加新的需求时应当遵循安全、易管理、维护便捷的原则尽量避免过于繁琐的实现方式。能够通过单一NAT类型实现的功能尽量不用NAT类型组合。对于地址重叠问题,应尽量通过沟通协调的方式来避免技术手段仅作为最终妥协的实现方式。                                    
                                    二、在复杂的NAT应用场景中需要注意当采用NAT Outbound时会产生一条NAT地址去往NULL0的黑洞路由如果该NAT地址也同时被用于入方向的NAT,在做了入方向的NAT所在接口上其出方向的流量会因为黑洞路由而不被NAT模块处理进而造成NAT失效。解决该问题的方法为严格规划NAT地址避免在多种NAT类型中重复利用NAT地址。                                    
                                    三、由于入方向NAT涉及到额外路由配置的问题,又存在上述可能造成故障的风险在实际应用场景中不推荐包含此类NAT的部署方式。                                    
                                    四、在存在地址重叠的情况下建议在流量入口处进行双向NAT部署避免引入路由冲突的风险。

                                   3 NAT相关的安全策略处理

防火墙中存在大量的NAT和安全策略因为不同厂商在数据处理流程上的差异其产品NAT和安全策略之间的影响不尽相同。以下对H3C V7后文简称V7产品的NAT和策略相关性进行说明。

                                   3.1 策略相关说明

V7中地址对象组、服务对象组在策略定义中都是以名称进行调用的除系统自定义的常用协议名、多数服务对象需自行定义和命名。

1、地址对象组定义                                     

V7中地址和地址组对象定义方式完全一致或者说在实现上不存在地址和地址组对象的区别在一个对象组中可以添加一个主机、一段地址或者嵌套另一个对象组作为成员。                                    
object-group ip address 地址对象组名2                                    
network host address 地址 //地址对象定义对象为主机                                    
network subnet 地址段 掩码 //地址对象定义对象为地址段                                    
network group-object地址对象组名1 //地址对象组名1为预先定义的地址对象组

2、服务对象组定义                                     

V7中服务对象组定义与地址对象组定义类似。                                    
object-group service 服务对象组名2                                    
service 协议 destination eq目的端口号 //指定端口号                                    
service 协议 destination gt参考端口号 //比参考端口号大                                    
service 协议 destination lt参考端口号 //比参考端口号小                                    
service 协议 destination rang 目的起始端口号 目的结束端口号 //指定端口号范围                                    
service group-object服务对象组名1 //服务对象名1为系统预定义或手工预定义的服务对象组

3、策略定义说明                                    

策略中地址只能以地址对象组的方式进行指定,不能直接使用IP地址或网段。                                    
object-policy ip 策略名                                    
rule 1 pass source-ip源地址对象组名 destination-ip 目的地址对象组名 service服务对象组名/系统预定义的服务名                                    
rule 2 pass source-ip 源地址对象组名destination-ip目的地址对象组名 service 服务对象组名/系统预定义的服务名

4、区域定义                                                                    
security-zone name 定义的区域名                                    
import interface 端口类型和端口号

5、域间应用策略                                    

策略定义后需要在安全域间应用才能生效。                                    
zone-pair security source 定义的区域名1 destination 定义的区域名2                                    
object-policy apply ip 定义的策略名

                                   3.2 策略定义中与NAT相关地址对象的处理

H3C在处理路由、NAT和安全策略和ACL时遵循如下处理顺序:                                    
                                                                       由此可知当NAT和策略并存时要使访问符合预期策略中地址对象的定义遵循如下原则                                    
                                                                       

以上表格可能并不方便实际部署实施时的理解下表从报文中IP地址的变化角度对不同类型NAT相关的策略处理进行了描述。                                    
                                   

我们凭借多年的智能化设计及施工经验,坚持以“帮助中小企业实现现代化网络”为宗旨,累计为4000多家客户提供品质智能化服务,得到了客户的一致好评。如果您有综合布线、计算机网络、无线覆盖、门禁考勤、机房建设、防火墙、路由器及交换机调试等方面的需求...
请立即点击咨询我们或拨打咨询热线: 17804441181,我们会详细为你一一解答你心中的疑难。项目经理在线

我们已经准备好了,你呢?

2022我们与您携手共赢,为您的企业网络安全保驾护航!

在线客服
联系方式

热线电话

17804441181

上班时间

周一到周五

公司电话

+86-512-65829193

二维码
微信
线