【防火墙技术连载13】强叔侃墙 NAT篇 一墙当关,万夫上网——源NAT(上篇)

digest [复制链接]
发表于 : 2014-4-29 14:51:51 最新回复:2018-08-20 17:27:59
49613 61
强叔侃墙
强叔侃墙 官方号

当Internet技术初兴时,人们不会想到他会发展得如此迅猛,短短二十年已然深入到社会的方方面面。与此同时,很多之前没有考虑到的问题也都暴露出来,比如IP地址资源正在逐渐枯竭。人们在寻求IPv4替代方案的同时,也在积极研究各种技术来减少对IP地址的消耗,其中最出色的技术之一就是NAT技术(人们平时常说的NAT其实就是源NAT)。
源NAT技术通过对报文的源地址进行转换,使大量私网用户可以利用少量公网IP上网,大大减少了对公网IP地址的需求。
下图示意了源NAT转换的过程:当上网流量到达防火墙时,报文的私网源IP将被转换为公网IP;当回程报文到达防火墙时,报文的公网目的IP将被转换为私网IP。整个NAT转换过程对于内、外网主机来说是完全透明的。

 

在介绍各种源NAT功能的特点和异同前,先介绍一下“NAT地址池”。NAT地址池是一个虚拟的概念,它形象地把“公网IP地址的集合”比喻成一个“放IP地址的池子或容器”,防火墙在应用源NAT功能时就是从地址池中挑选出一个公网IP,然后对私网IP进行转换。挑选哪个公网IP是随机的,和配置时的顺序、IP大小等因素都没有关系。

例1 创建一个NAT地址池(以eNSP中的USG5500系列为例)
#                                                                              
nat address-group 1  202.169.1.2  202.169.1.5

下面通过一个例子来说明地址池的使用方法。如下图所示,内网用户群(10.10.2.1-10.10.2.10)最初都在一个区域内,有两个公网IP(210.1.1.10和210.1.1.11)可用于做NAT转换,由于无需对这些用户进行区分,所以可将2个公网IP放在同一地址池内。上网流量到达防火墙后,将从地址池中随机选取一个公网IP做NAT转换。
网络运行一段时间后,需要对用户进行区分,使用户群1(10.10.2.1-10.10.2.5)和用户群2(10.10.2.6-10.10.2.10)以不同的公网IP上网。由于NAT转换是随机选取公网IP的,所以2个公网IP在同一地址池内是无法满足此要求的。此时可将2个公网IP分别放在不同的地址池内,并指定用户群1使用地址池1做NAT转换,用户群2使用地址池2做NAT转换。这样,两个用户群做NAT转换后的IP就是不同的了。

 

华为防火墙支持的源NAT功能如下表所示,且听强叔一一道来他们的特点和异同。

NAT类型

私网IP和公网IP的数量对应关系

是否转换端口

NAT No-PAT

一对一

NAPT

多对一

多对多

出接口地址方式(easy-ip

多对一

Smart NAT

(仅高端防火墙USG9000系列支持)

一对一

(预留IP做多对一转换)

(预留IP做端口转换)

三元组NAT

(仅高端防火墙USG9000系列支持)

多对一

多对多

 

NAT No-PAT
“No-PAT”表示不进行端口转换,所以NAT No-PAT只转换IP地址,故也称为“一对一IP地址转换”。我们使用如下组网进行演示:

 

在FW上配置源NAT模式,选择为no-pat;将公网IP地址202.30.1.1和202.30.1.2加入NAT地址池1;配置NAT策略,即对流量设置各种要求项,只有完全匹配上这些要求的流量才能利用NAT地址池1中的IP做NAT转换(如果要针对源IP设置NAT策略,那么应该是做源NAT转换前的IP)。

例2 配置NAT No-PAT
#                                                                              
 nat address-group 1 202.30.1.1 202.30.1.2                                           
#                                                                              
nat-policy interzone trust untrust outbound                                          
 policy 1                                                                       
  action source-nat                                                              
  policy source 192.168.0.0  0.0.0.255                                              
  address-group 1 no-pat    //使用地址池1做NAT No-PAT转换                       

 

这里强叔要强调两个配置:安全策略和黑洞路由。

安全策略和NAT策略在字面上长的挺像,但是二者各司其职:安全策略检验是否允许流量通过,NAT策略检验是否对流量进行NAT转换。由于防火墙检验流量是否符合安全策略的操作发生在检查NAT策略之前,所以如果要针对源IP设置安全策略,则该IP应该是做源NAT转换前的IP

例3 配置安全策略
#                                                                               
policy interzone trust untrust outbound                                                
 policy 1                                                                        
  action permit                                                                   
  policy source 192.168.0.0  0.0.0.255                                                

黑洞路由是一个让路由“有来无回”的路由,它的效果就是让设备丢弃命中该路由的报文。针对地址池中的公网IP必须配置黑洞路由,目的是防止产生路由环路。

例4 配置黑洞路由
#                                                                             
ip route-static 202.30.1.1  255.255.255.255 NULL0                                   
ip route-static 202.30.1.2  255.255.255.255 NULL0                                            

从PC1上ping PC2,在FW上查看会话表和Server-map表。

从会话表中可以看到PC1(192.168.0.2)的IP进行了NAT转换(中括号[]内的是NAT转换后的IP和端口),而端口没有转换。

 

从Server-map表中可以看到NAT类型是No-PAT、NAT转换前后的IP地址,由于端口没有转换,所以并没有显示端口信息。这里可以注意到正、反向Server-map表中的目的IP均为any,也就是说只要Server-map表没有老化,理论上任何外网主机只要知道NAT转换后的IP,都可以主动访问内网主机的公网IP。

 

我们再从PC1上ping Server 2,在FW再上查看会话表和Server-map表。各位发现了吗?做NAT转换后的公网IP还是202.30.1.1,而不是202.30.1.2。这说明:做源NAT时,虽然选择哪个公网IP是随机的,但是这个公网IP由私网源IP决定,和目的IP无关。只要私网源IP不变、地址池相关配置不变,同一个私网源IP就会固定的转换为同一个公网IP。

 

NAPT
NAPT表示网络地址端口转换,即同时对IP地址和端口号进行转换,也可称为PAT(PAT不是只转换端口号的意思,而是IP、端口号同时转换)。NAPT是最常用的源NAT技术之一,他可以实现用少量公网IP满足大量私网用户上网的需求。
NAPT和NAT No-PAT在配置上的区别仅在于选择不同的源NAT模式:NAPT的nat-policy在指定NAT地址池时,不配置命令关键字“no-pat”,其他配置都是类似的。

例5 NAPT和NAT No-PAT配置上的差异点
#                                                                              
nat-policy interzone trust untrust outbound                                            
 policy 1                                                                       
  address-group 1       //不配置no-pat                                                        

从PC1上ping PC2,在FW上查看会话表。可以看到源IP和源端口都做了NAT转换,而且端口号是顺序转换的。

 

再看Server-map表,没有显示信息?没错,NAPT就是没有Server-map表!原因其实很好理解,NAPT主要用于让大量用户上网,如果每个连接都建立Server-map表,则会占用大量的设备资源。

 

 

从PC1上ping Server 2,在FW上查看会话表。我们发现NAPT也是由源IP决定转换后的公网IP,且端口顺序转换。端口从2048开始转换的现象说明:对于不同的连接来说, NAT处理过程是彼此独立的。只要五元组不完全相同,就不用担心NAT转换冲突的问题(对于现在的网络通信来说,五元组完全一致的情况发生概率非常小)。

 

出接口地址方式(easy-ip)
出接口地址方式是利用出接口的公网IP做源NAT转换,适用于公网IP非常少或接口动态获取IP的场景(仅中低端防火墙支持接口动态获取IP)。

easy-ip的NAT转换方式和NAPT一样,都是同时转换IP和端口。但是在具体配置上,高端防火墙和中低端防火墙是不一样的:

  • 高端防火墙需要配置NAT地址池,并将出接口IP配置在地址池中。实际上就是配置NAPT功能,只不过出接口IP和NAT地址池中的IP一样了。
  • 中低端防火墙不需要配置NAT地址池,而是在NAT策略中指定做easy-ip转换。

我们使用如下组网进行演示。easy-ip无需配置NAT地址池,只需在NAT策略中指定利用哪个接口做easy-ip。安全策略的配置可以参考上面的NAT No-PAT,easy-ip不用配置黑洞路由。

 

例6 配置easy-ip
#                                                                              
nat-policy interzone trust untrust outbound                                          
  policy 1                                                                      
   action source-nat                                                             
   source-address 192.168.0.0 0.0.0.255                                             
   easy-ip GigabitEthernet0/0/3     //源NAT转换后的公网IP为接口GE0/0/3的IP        

分别从PC1和PC2上ping Server,查看到会话表如下所示(部分PC1的会话已老化,GE0/0/3的IP是210.10.2.1/24)。可以看到源IP和端口都做了NAT转换,且转换后的端口是顺序增大的。这说明:虽然源IP不同,但是NAT转换都走同一个流程,所以端口号顺序增大。此外,和NAPT一样,easy-ip也是没有Server-map表的。

 

今天我们先介绍这三种源NAT,强叔会在下期继续和大家聊聊余下的两种源NAT,敬请期待!

强叔提问:

1、如果组网是多出口的情况(例如电信、联通),该如何配置地址池呢?

2、配置完NAT No-PAT、NAPT或easy-ip后,我们该如何检验是否配置成功?

小伙伴们对于这三种源NAT还有什么疑问,欢迎留言!

 

 

上一篇 攻击防范篇 应用层攻击及防御

下一篇 NAT篇 一墙当关,万夫上网――源NAT(下篇)

汇总贴

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

PETTING
PETTING 发表于 2019-6-3 16:29
模拟器的那个版本是6000的,你现在这里的版本是5500的,那个6000的版本在哪里找  
跳转到指定楼层
temp000
temp000   发表于 2014-5-28 11:45:13 已赞(0) 赞(0)

学习收纳中
  • x
  • 常规:

点评 回复

xinggm
xinggm   发表于 2014-5-2 13:49:57 已赞(0) 赞(0)

学习了!!
  • x
  • 常规:

点评 回复

HUAWEI_Rjzr
HUAWEI_Rjzr   发表于 2014-5-2 23:14:27 已赞(0) 赞(0)

回复 6 楼

没有啊。。。

  • x
  • 常规:

点评 回复

HUAWEI_Rjzr
HUAWEI_Rjzr   发表于 2014-5-2 23:34:33 已赞(0) 赞(0)

问题1回答:

假设ISP1分配的IP地址是200.1.1.1~200.1.1.3,ISP2分配的IP地址是202.1.1.1~202.1.1.3,掩码均为24位。
nat address-group 1 200.1.1.2 200.1.1.3
nat address-group 2 202.1.1.2 202.1.1.3

创建安全区域ISP1、ISP2

# 在Trust—ISP1域间配置NAT策略,将私网IP地址转换为ISP1提供的公网IP地址。
#
nat-policy interzone trust isp1 outbound
 policy 1
  policy source 10.1.0.0 0.0.255.255
  action source-nat
  address-group 1
#

# 在Trust—ISP2域间配置NAT策略,将私网IP地址转换为ISP2提供的公网IP地址。
#
nat-policy interzone trust isp2 outbound
 policy 1
  policy source 10.1.0.0 0.0.255.255
  action source-nat
  address-group 2
#

配置两条缺省路由
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet 0/0/1 200.1.1.10
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet 0/0/2 202.1.1.10

 

这样应该没问题吧

 

  • x
  • 常规:

点评 回复

HUAWEI_Rjzr
HUAWEI_Rjzr   发表于 2014-5-2 23:36:48 已赞(0) 赞(0)

问题2回答:

ping防火墙流量出口对端设备的地址,然后

display firewall session table.

  • x
  • 常规:

点评 回复

fcm
fcm  精英 发表于 2014-5-3 00:53:45 已赞(0) 赞(0)

回复 9 楼

以前USG的特性有说过这个的哦,难道现在的版本没了?!Extended NAT,实现一个地址支持无限连接

防火墙在转换源端口时参考了报文的五元组,即使源端口相同,依然可以区分应答报文的真实目的地址(私网地址)实现转换;

目的

目的端口

源地址

源端口

私网地址

www.baidu.com

80

202.110.1.241

8889

10.110.5.100

www.google.com

80

202.110.1.241

8889

10.110.5.101

  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-5-4 10:17:24 已赞(0) 赞(0)

回复 3 楼

配置黑洞路由的目的是防止产生路由环路。

举个简单的例子进行说明,组网:PC——FW——Router——Internet

当Internet中的用户主动访问地址池中的IP时,如果报文在FW上没有匹配到会话,则FW会根据路由表来转发报文,即会转发给Router。Router收到报文后会继续转发给FW,此报文就会在FW和Router之间循环转发,直到TTL为0后被丢弃。当外网中有大量恶意用户主动访问地址池中的IP时,将会影响FW和Router的处理性能。

后续会有专门的番外帖介绍黑洞路由相关内容,敬请期待~

  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-5-4 10:22:52 已赞(1) 赞(1)

回复 4 楼

如果要使NAT policy生效,必须配置action source-nat。

例5中只是列出了NAPT和NAT No-PAT的差异点,就没写出一个完整的NAT policy配置。

你看的很细致啊~ ^_^

  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-5-4 10:34:48 已赞(0) 赞(0)

回复 9 楼

华为防火墙的确突破了65535的限制!

强叔后续会在“内功心法”中较详细的介绍突破65535的原理,敬请期待~

 

  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录