H3C防火墙NAT类型及处理顺序

更新时间:2023-05-07 07:47:54 阅读: 评论:0

H3C防⽕墙NAT类型及处理顺序
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 rver)等五种常⽤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 rver)或出⽅向静态地址转换(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 rver)
通过在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 rvice 服务对象组名2
rvice 协议 destination eq⽬的端⼝号 //指定端⼝号
rvice 协议 destination gt参考端⼝号 //⽐参考端⼝号⼤
rvice 协议 destination lt参考端⼝号 //⽐参考端⼝号⼩
rvice 协议 destination rang ⽬的起始端⼝号 ⽬的结束端⼝号 //指定端⼝号范围
rvice group-object服务对象组名1 //服务对象名1为系统预定义或⼿⼯预定义的服务对象组
3、策略定义说明:V7策略中地址只能以地址对象组的⽅式进⾏指定,不能直接使⽤IP地址或⽹段。
object-policy ip 策略名
rule 1 pass source-ip源地址对象组名 destination-ip ⽬的地址对象组名 rvice服务对象组名/系统预定义的服务名
rule 2 pass source-ip 源地址对象组名destination-ip⽬的地址对象组名 rvice 服务对象组名/系统预定义的服务名
4、区域定义:
curity-zone name 定义的区域名
import interface 端⼝类型和端⼝号
5、域间应⽤策略:策略定义后需要在安全域间应⽤才能⽣效。
zone-pair curity source 定义的区域名1 destination 定义的区域名2
object-policy apply ip 定义的策略名
3.2 策略定义中与NAT相关地址对象的处理
H3C在处理路由、NAT和安全策略和ACL时遵循如下处理顺序:

本文发布于:2023-05-07 07:47:54,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/546573.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:命令文档
下一篇:华为双向NAT
标签:地址   转换   对象
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图