三、防火墙-源NAT

——————————————————————————————————————————————————

源NAT基本原理

源NAT技术对IP报文的源地址进行转换,将私网IP转换成公网IP,大大减少了公网IP的消耗。

当私网用户访问Internet报文到达防火墙时,防火墙将报文的源IP地址由私网地址转换为公网地址,当回程报文返回至防火墙,防火墙再将报文的目的地址由公网IP转换为私网地址。

华为防火墙支持的源NAT转换方式:

在这里插入图片描述

每一种NAT转换方式都曾在IP网络中走过秀、亮过相,都有自己的特色,但也有自己的不足。

——————————————————————————————————————————————————

1.1.NAT No-PAT

No-PAT表示不进行端口转换,只转换IP地址,所以也称为:一对一地址转换。

下面介绍No-PAT方式过程,假设防火墙和WEB服务器之间路由可达。。

在这里插入图片描述

配置NAT地址池和NAT策略

配置地址池
nat address-group GW 1
 mode no-pat global                             local和global参数,global生成的Server-map表项不包含安全域参数,不受域间限制,local包含安全区域参数,受域间限制
 section 0 210.1.1.5 210.1.1.10                 地址池有5个公网IP
 route enable                                   用来开启NAT地址池中地址的OPR路由下发功能

配置NAT
nat-policy
rule name source_nat
  source-zone trust
  destination-zone untrust
  source-address 192.168.0.0 16
  action source-nat address-group GW                 配置NAT策略规则的动作,表示源NAT地址转换,引用地址池

配置完NAT,还需要配置安全策略和黑洞路由。

安全策略和NAT策略二者各司其职,安全策略控制报文是否能通过防火墙,而NAT策略作用是对报文地址进行转换。因此配置NAT的时候需要配置安全策略允许报文通过。

由于防火墙对报文进行安全策略处理发生在进行NAT策略处理之前,所以如果要针对源地址设置安全策略,源地址应该是进行NAT转换之前的私网地址。

security-policy
 rule name sourcenat
  source-zone trust
  destination-zone untrust
  source-address 192.168.0.0 16
  action permit

配置黑洞路由,为了避免产生环路,在防火墙上针对地址池中的公网IP地址配置黑洞路由。

有两种方式:
ip route-static方式

ip route-static 210.1.1.5 255.255.255.255 NULL0
ip route-static 210.1.1.6 255.255.255.255 NULL0
ip route-static 210.1.1.7 255.255.255.255 NULL0
ip route-static 210.1.1.8 255.255.255.255 NULL0
ip route-static 210.1.1.9 255.255.255.255 NULL0
ip route-static 210.1.1.10 255.255.255.255 NULL0

route enable 方式

nat address-group GW 1
 route enable        

当NAT地址池地址与出接口地址不在同一网段时,必须配置黑洞路由;当NAT地址池地址与出接口地址在同一网段时,建议配置黑洞路由。
当地址池地址与出接口地址一致时,不会产生路由环路,不需配置黑洞路由。产生的原因后续会介绍。

在配置策略后,可以访问210.1.1.2。
在这里插入图片描述

查看会话表,会话表中两个私网地址都分别转换了2个不同的公网IP,而端口没有转换,使用随机端口。

在这里插入图片描述
NAT No-PAT方式也会生成Server-map表,而且生成了正向和反向两张表。

在这里插入图片描述

这里生成的正向Server-map表,Type:No-Pat,作用是保证特定私网用户访问Internet快速转换地址。在老化时间范围内,直接命中该表,提高转换效率。同理,Type:No-Pat Reverse,反向主动访问私网用户报文,也命中反向Server-map表直接进行地址转换。

命中server-map表后,还需要检查安全策略是否通过。Server-map表在NAT里叫alg功能。在多通道协议里叫ASPF。

总结:如果私网地址过多大于地址池的话,需要等待地址池地址释放后,其他私网地址用户才可以访问WEB服务器,在No-Pat转换方式中,一个公网IP地址不能同时被大于多个私网用户使用。并没有起到节省IP的作用。

——————————————————————————————————————————————————

1.2.NAPT

NAPT表示网络地址和端口转换,即同时对IP地址和端口进行转换,也可称为 PAT。

NAPT 是一种应用最广泛的地址转换方式,可以利用少量的公网 IP 地址来满足大量私网用户访问Internet的需求。

NAPT方式和NAT No-PAT在配置上区别仅在于:NAPT方式NAT策略在引用NAT地址池时,不配置关键字no-pat。

在这里插入图片描述

和上案例其他配置一样。

配置NAT地址池和NAT策略

配置地址池
nat address-group GW 1
 mode pat                                              
 section 0 210.1.1.5 210.1.1.10                 
 route enable                                 

配置NAT
nat-policy
rule name source_nat
  source-zone trust
  destination-zone untrust
  source-address 192.168.0.0 16
  action source-nat address-group GW    

配置安全策略
security-policy
 rule name sourcenat
  source-zone trust
  destination-zone untrust
  source-address 192.168.0.0 16
  action permit 

会话表可以看出,两个私网地址分别转换公网地址,同时端口也转换为新的端口。在地址池选择地址的时候,设备是随机选择。

再次观察,192.168.20.2第一条,转换的IP210.1.1.6,端口为2051。192.168.10.2第六条,转换IP210.1.1.6,端口为2052。
私网用户共用一个公网IP,但是端口不一样。也就不必担心转换冲突的问题。

在这里插入图片描述

NAPT方式不会产生server-map表项,与NAT No-Pat不同。

——————————————————————————————————————————————————

1.3.出接口地址方式(Easy IP)

出接口地址方式Easy-IP:是利用出接口的公网IP地址作为NAT 转换后的地址,也同时转换地址和端口,一个公网IP地址可以同时被多个私网用户使用。

出接口方式比较特殊,如果防火墙公网接口通过动态获取IP时,想用一个公网IP地址来进行转换,不能在地址池中配置固定地址。因为公网IP是可变的,此时使用出接口方式,即使出接口获取IP发生变化,防火墙也只会按照公网IP地址进行转换。

Easy IP,不需要配置NAT地址池,也无需配置路由黑洞。只需要在NAT策略中指定出接口即可。

在这里插入图片描述

为了方便,用210.1.1.2服务器开启DHCP来模拟防火墙G1/0/1端口自动获取地址。

配置防火墙G1/0/1接口为自动获取地址

interface GigabitEthernet1/0/1
ip address dhcp-alloc

服务器上已经看到地址下发了。

在这里插入图片描述
交换机上也看到获取的地址。210.1.1.10/24

在这里插入图片描述

配置NAT策略

nat-policy
 rule name easynat
  source-zone trust
  source-zone untrust
  egress-interface GigabitEthernet1/0/1             出接口方式
  source-address 192.168.0.0 mask 255.255.0.0
  action source-nat easy-ip

security-policy
 rule name sourcenat
  source-zone trust
  destination-zone untrust
  source-address 192.168.0.0 16
  action permit 

两个私网用户IP地址已经转换为接口的公网IP地址,同时端口也转换为新的端口。

和NAPT一样,Easy-IP方式不会生成Server-map表。
在这里插入图片描述

——————————————————————————————————————————————————

1.4.Smart NAT

前面我们介绍过NATNO-PAT方式,一对一地址转换,NAT地址池中的公网IP地址被私网用户占用后,其他私网用户就无法再使用该公网IP地址,在这种情况下如何使其他私网用户也能访问Internet呢?

Smart NAT方式也叫做聪明的NAT,它融合了NAT No-PAT和NAPT方式特点。

其实我们可以把Smart NAT 方式理解成是对NPAT功能的增强,它克服了NO-PAT的缺点:只能让有限的私网用户访问Intermet,当私网用户数量大于地址池中公网IP地址数量时后面的私网用户将无法访问Intermet,只能等待公网IP地址被释放。

使用SmartNAT方式后,即使某一时刻私网用户数量激增Smart NAT也留有后手,即预留一个公网IP地址进行NAPT方式的地址转换这样就可以满足大量新增的私网用户的需求。

在这里插入图片描述

配置NAT地址池
nat address-group GW 1
 mode no-pat local
 smart-nopat 210.1.1.10
 section 0 210.1.1.5 210.1.1.9
 route enable

配置NAT策略
nat-policy
 rule name smart
  source-zone trust
  destination-zone untrust
  source-address 192.168.0.0 mask 255.255.0.0
  action source-nat address-group GW

配置安全策略
security-policy
 rule name smart
  source-zone trust
  destination-zone trust
  source-address 192.168.0.0 mask 255.255.0.0
  action permit

就不过多演示,明白意思就行。只有公网IP地址被NAT No-pat转换用尽后,才会进行NATP转换。

——————————————————————————————————————————————————

1.5.三元组 NAT

前面介绍了4种源NAT,其中NAPT和Easy-IP应用最广泛,不但解决地址短缺,还隐藏内部IP。但是NAT技术与文件共享、语音通信、视频传输等方面的P2P技术不能很好的共存。当P2P业务遇到NAT的时候,产生的不是完美的NAT-P2P,而是,你可能无法下载最新影视资源,无法视频聊天等。

为了解决共存问题,需要一种新的转换方式,即三元组NAT,先看看P2P业务交互过程。

————————————————————
PC1和PC2是两台运行P2P业务的客户端,运行时首先和P2P服务器进行交互(登录、认证等操作),P2P服务器会记录客户端的地址和端口,如果PC1位于内部网络,防火墙会对PC1访问服务器的报文进行NAPT方式转换,这样P2P服务器记录的是经过转换后的公网地址和端口。当PC2需要下载文件时,服务器会将拥有该文件的客户端地址和端口发送给PC2(如PC1的IP和端口),然后PC2会向PC1发送请求,从PC1上下载文件。

在这里插入图片描述
过程看起来很顺畅,但对于P2P业务来说,存在两个问题。

1、为了保持联系,PC1会定期向P2P服务器发送报文,经过NAPT转换后,端口会动态变化,并不是固定的。这样P2P服务器记录的PC1地址和端口信息也要经常刷新,会影响P2P业务正常运行。

2、更重要的是,根据转发原理,只有P2P服务器返回给PC1的报文命中会话表才能通过防火墙,其他主机如PC2不能通过转换后的地址和端口来主动访问PC1,默认情况,防火墙安全策略不允许这一类访问报文通过。

三元组NAT方式可以完美解决。

1、对外呈现端口一致性

PC1访问P2P服务器后,在一段时间内,PC1再次访问P2P服务器或者访问internet其他主机时,防火墙都会将PC1的端口转换成相同的端口。这样就保证了PC1所呈现的端口一致性,不会动态变化。

2、支持外网主动访问

无论PC1是否访问过PC2,只要PC2获取到PC1经过NAT转换的IP和端口后,就可以主动向该地址和端口发起访问。防火墙及时没有配置相应的安全策略,也允许此类报文通过。

正是由于三元组NAT的这两个特点,使得P2P业务可以正常运行。

对于华为USG6000系列防火墙来说,可以通过配置ASPF来保证P2P业务的正常运行。新式的设备应该支持的越来越多。

在这里插入图片描述

三元组NAT方式配置如下:(三元组NAT不能配置黑洞路由,否则会影响业务)

配置NAT地址池
nat address-group GW 1
 mode full-cone local
 section 0 210.1.1.5 210.1.1.6

配置NAT策略
nat-policy
 rule name NAT
  source-zone trust
  source-zone untrust
  source-address 192.168.0.0 mask 255.255.0.0
  action source-nat address-group GW

配置安全策略
 rule name NAT
  source-zone trust
  source-zone untrust
  source-address 192.168.0.0 mask 255.255.0.0
  action permit

连续访问2次服务器,HTTP协议。

在这里插入图片描述

在这里插入图片描述
在一时间内,转换的端口都是固定的。

查看MAP表。由于是闲置了会,抓的,和上面的端口就有差别了。同一时间的通信,端口都是固定的。

在这里插入图片描述

从表中可以看出,三元组NAT生成了两条Server-map表项(FullCone Src),和目的(FullCone Des)。作用如下:

源Server-map表项(FullCone Src):

老化之前,PC1访问Untrust区域内任意主机ANY,NAT转换后的地址和端口都是210.1.1.6:61440,端口不会变化,这样就保证了PC1对外所呈现的端口一致性。

目的(FullCone Des)

表项老化之前,Untrust区域内的任意主机ANY都可以通过210.1.1.6:53248端口来访问PC1的:138端口,这样就保证了Internet上的P2P客户端可以主动访问PC1。

由此可知,三元组NAT方式通过源和目的Server-Map表项解决了P2P业务与NAT地址转换共存的问题。三元组在转换时,仅和源IP地址、源端口和协议类型这个3个元素有关,故称三元组。

————————————————————

大家又可以说,三元组NAT生成的Server-map表项不就是ASPF功能生成的Server-map表项那样,报文命中表项之后就不受安全策略控制了?其实还暗藏玄机,防火墙针对三元组NAT还支持端点无关过滤功能。

命令:firewall endpoint-independent filter enable

命令中: endpoint-independent 原意是:不关心对端地址和端口转换模式。表示一种NAT转换模式,其实可以看成三元组NAT方式另一种叫法。

endpoint-independent 使用此命令代表三元组NAT方式下控制报文是否进行安全策略检查。

开启后,报文只要命中Server-map就可以通过防火墙,不受安全策略控制。关闭后,就要配置相应的策略允许报文通过。默认情况下,防火墙是开启了端点无关过滤功能。所以说internet上的P2P客户端可以主动访问内部网络的PC1。

——————————————————————————————————————————————————

1.6.多出口场景下的源NAT

各种各样的源NAT都见识了吧,看似各种源地址转换问题都能一网打尽了,但实际上吧这些NAT理论应用在现实网络中很快就会出现告急。在多出口网络中,源NAT该何去何从?

首先,我们以防火墙通过两个出口连接Internet为例,探讨源NAT的配置方法,如图:某企业在内部网络的出口处部署了防火墙作为出口网关,通过ISP1和ISP2两条链路连接到Internet,企业内部网络中的PC有访问Internet的需求。

在这里插入图片描述

该场景中,防火墙面临主要问题是在转发内部网络访问Internet报文如何进行出口选路,本应该从ISP1发出的却从ISP2发出,可能会导致报文绕路到达目的地。

选路方式有很多种,如果根据报文目的地址进行选路,可以配置两条缺省路由,如果根据源地址进行选路,还可以配置策略路由。这些都不是目前的重点,后续对出口选路会详细的介绍。对于源NAT来说,无非就是报文从ISP1出去或者从ISP2出去,不管走那条路,只要在发出去之前把报文私网地址转换成相应的公网地址,源NAT作用就完成了。

我们会把防火墙ISP1和ISP2两个接口分别加入到不同的区域,然后基于内部网络所在的安全区配置源NAT策略。

下面给出配置:假设ISP1,给的公网地址是:210.1.1.5·····210.1.1.6。ISP2,给的公网地址是:110.1.1.5·····110.1.1.6。


配置区域加入端口
firewall zone name ISP1 
 set priority 20
 add interface GigabitEthernet1/0/1
#
firewall zone name ISP2
 set priority 21
 add interface GigabitEthernet1/0/0

配置地址池
nat address-group ISP1 2
 section 0 210.1.1.5 210.1.1.6
 route enable
nat address-group ISP2 3
 section 0 110.1.1.5 110.1.1.6
 route enable

基于不同域间关系配置两条NAT策略
nat-policy
 rule name ISP1
  source-zone trust
  destination-zone ISP1
  source-address 192.168.0.0 16
  action source-nat address-group ISP1
 rule name ISP2
  source-zone trust
  destination-zone ISP2
  source-address 192.168.0.0 16
  action source-nat address-group ISP2


配置安全策略
security-policy
 default action permit
 rule name ISP1
  source-zone trust
  destination-zone ISP1
  source-address 192.168.0.0 16
  action permit
 rule name ISP2
  source-zone trust
  destination-zone ISP2
  source-address 192.168.0.0 16
  action permit

配置默认路由
ip route-static 0.0.0.0 0.0.0.0 210.1.1.2
ip route-static 0.0.0.0 0.0.0.0 110.1.1.2 

我们把防火墙接口规划成1个区域。

firewall zone untrust
 add interface GigabitEthernet1/0/1
 add interface GigabitEthernet1/0/0

nat-policy
 rule name ISP1
  source-zone trust
  destination-zone untrust
  source-address 192.168.0.0 16
  action source-nat address-group ISP1
 rule name ISP2
  source-zone trust
  destination-zone untrust
  source-address 192.168.0.0 16
  action source-nat address-group ISP2
  
security-policy
 default action permit
 rule name NAT
  source-zone trust
  destination-zone untrust
  action permit

ip route-static 0.0.0.0 0.0.0.0 210.1.1.2
ip route-static 0.0.0.0 0.0.0.0 110.1.1.2

如果我们把防火墙与ISP1和ISP2两个接口加入同一安全区域,无论报文走ISP1还是ISP2,安全域间关系都是Trust到Untrust,基于相同安全域间关系配置NAT策略,就无法区分两条链路。由于ruleISP1匹配顺序高于ISP2,此时内部访问外部都匹配ISP1,不会再向下继续匹配ISP2。
在这里插入图片描述

在实际中配置默认路由,具体使用时可能需指定多条静态路由,为特定目的地址配置明细路由,因此需要咨询运营商获取ISP所属网段信息。

后续专门章节介绍多出口。

——————————————————————————————————————————————————

总结

NAT No-PAT:一对一,不转换端口,生成Server-map表,需要配置路由黑洞。
NAPT:多对一,多对多。转换端口,不生成server-map表,需要配置路由黑洞。
Easy-IP:多对一,转换端口,不生成server-map表,无需配置路由黑洞。
Smart NAT:一对一,多对一(针对预留地址),预留地址会转换端口,仅NAT No-PAT方式生成Server-map表,需要配置路由黑洞。
三元组NAT:多对一,多对多,转换端口,生成Server-map表,不必配置路由黑洞。

——————————————————————————————————————————————————

延伸

三元组NAT还有一个学名:Full Cone(全圆锥)。(Full Cone)全圆锥是4种NAT端口映射方式的一种,

其他3种分为:(Restricted Cone)受限圆锥、(Port Restricted Cone)端口受限圆锥和(Symmetric)对称型。

介绍下Full Cone(全圆锥)和(Symmetric)对称型。由于RFC3489已废弃,故不对(Restricted Cone)受限圆锥、(Port Restricted Cone)端口受限圆锥进行介绍。

Full Cone(全圆锥):内网主机进行NAT转换后的地址和端口在一段时间内保持不变,不会因为目的地址不同而不同,所以内网主机可以使用转换后相同三元组访问不同的外网主机,外网主机也都可以通过该三元组访问内网主机。就是前面说的P2P业务。

(Symmetric)对称型:内网主机根据不同的目的地址进行NAT转换,NAT转换后的地址和端口一般是不相同的,由于对不同外网主机呈现不同三元组,所以只有特定的外网主机的特定端口才能进入内网,即需要限定目标主机和端口。对称型NAT也称为五元组NAT,NAPT方式即五元组NAT。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值