三、防火墙-源NAT

学习防火墙之前,对路由交换应要有一定的认识

  • 源NAT基本原理
    • 1.1.NAT No-PAT
    • 1.2.NAPT
    • 1.3.出接口地址方式(Easy IP)
    • 1.4.Smart NAT
    • 1.5.三元组 NAT
    • 1.6.多出口场景下的源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 1mode no-pat global                             local和global参数,global生成的Server-map表项不包含安全域参数,不受域间限制,local包含安全区域参数,受域间限制section 0 210.1.1.5 210.1.1.10                 地址池有5个公网IProute enable                                   用来开启NAT地址池中地址的OPR路由下发功能配置NAT
nat-policy
rule name source_natsource-zone trustdestination-zone untrustsource-address 192.168.0.0 16action source-nat address-group GW                 配置NAT策略规则的动作,表示源NAT地址转换,引用地址池

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

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

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

security-policyrule name sourcenatsource-zone trustdestination-zone untrustsource-address 192.168.0.0 16action 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 1route 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 1mode pat                                              section 0 210.1.1.5 210.1.1.10                 route enable                                 配置NAT
nat-policy
rule name source_natsource-zone trustdestination-zone untrustsource-address 192.168.0.0 16action source-nat address-group GW    配置安全策略
security-policyrule name sourcenatsource-zone trustdestination-zone untrustsource-address 192.168.0.0 16action 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-policyrule name easynatsource-zone trustsource-zone untrustegress-interface GigabitEthernet1/0/1             出接口方式source-address 192.168.0.0 mask 255.255.0.0action source-nat easy-ipsecurity-policyrule name sourcenatsource-zone trustdestination-zone untrustsource-address 192.168.0.0 16action 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 1mode no-pat localsmart-nopat 210.1.1.10section 0 210.1.1.5 210.1.1.9route enable配置NAT策略
nat-policyrule name smartsource-zone trustdestination-zone untrustsource-address 192.168.0.0 mask 255.255.0.0action source-nat address-group GW配置安全策略
security-policyrule name smartsource-zone trustdestination-zone trustsource-address 192.168.0.0 mask 255.255.0.0action 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 1mode full-cone localsection 0 210.1.1.5 210.1.1.6配置NAT策略
nat-policyrule name NATsource-zone trustsource-zone untrustsource-address 192.168.0.0 mask 255.255.0.0action source-nat address-group GW配置安全策略rule name NATsource-zone trustsource-zone untrustsource-address 192.168.0.0 mask 255.255.0.0action 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 20add interface GigabitEthernet1/0/1
#
firewall zone name ISP2set priority 21add interface GigabitEthernet1/0/0配置地址池
nat address-group ISP1 2section 0 210.1.1.5 210.1.1.6route enable
nat address-group ISP2 3section 0 110.1.1.5 110.1.1.6route enable基于不同域间关系配置两条NAT策略
nat-policyrule name ISP1source-zone trustdestination-zone ISP1source-address 192.168.0.0 mask 255.255.0.0action source-nat address-group ISP1rule name ISP2source-zone trustdestination-zone ISP2source-address 192.168.0.0 mask 255.255.0.0action source-nat address-group ISP2配置安全策略
security-policydefault action permitrule name ISP1source-zone trustdestination-zone ISP1action permitrule name ISP2source-zone trustdestination-zone ISP2action 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 

在这种情况下,分别有两个区域,配置默认路由如果是等价的,防火墙还会选择随机的转换。除非指定默认路由的优先级或在rule Nmae ISP的时候精确匹配网段。

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

firewall zone untrustadd interface GigabitEthernet1/0/1add interface GigabitEthernet1/0/0nat-policyrule name ISP1source-zone trustdestination-zone untrustsource-address 192.168.0.0 mask 255.255.0.0action source-nat address-group ISP1rule name ISP2source-zone trustdestination-zone untrustsource-address 192.168.0.0 mask 255.255.0.0action source-nat address-group ISP2security-policydefault action permitrule name NATsource-zone trustdestination-zone untrustaction permitip 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走。

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

两种配置关系,两种不同的效果。

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

总结

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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/207482.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个人博客项目 - 测试报告

文章目录 一、项目背景二、测试报告功能测试1.编写测试用例2.登录测试3.编写文章测试4.查看文章测试5.删除文章测试7.注销登录测试 自动化测试性能测试1.VUG2.进行场景设计3.生成性能测试报告 总结 本文开始 一、项目背景 通过学习测试相关的知识,动手实践并测试一…

2023 年 亚太赛 APMCM ABC题 国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 以五一杯 A题为例子,以下是咱们做的一些想法呀&am…

【DevOps】Git 图文详解(八):后悔药 - 撤销变更

Git 图文详解(八):后悔药 - 撤销变更 1.后悔指令 🔥2.回退版本 reset3.撤销提交 revert4.checkout / reset / revert 总结 发现写错了要回退怎么办?看看下面几种后悔指令吧! ❓ 还没提交的怎么撤销&#x…

二十二、数组(4)

本章概要 随机生成泛型和基本数组 随机生成 我们可以按照 Count.java 的结构创建一个生成随机值的工具: Rand.java import java.util.*; import java.util.function.*;import static com.example.test.ConvertTo.primitive;public interface Rand {int MOD 10_0…

兼顾陪读|自由职业者赴美国加州大学尔湾分校访学

I老师出国访学除了提升自己的科研水平外,主要目标还是以陪伴孩子上学为主。最终我们为其落实了排名还不错的加州大学尔湾分校的职位,这对于已多年脱离科研工作岗位,学术背景非常薄弱的I老师来说相当不易。 I老师背景: 申请类型&a…

22LLMSecEval数据集及其在评估大模型代码安全中的应用:GPT3和Codex根据LLMSecEval的提示生成代码和代码补全,CodeQL进行安全评估

LLMSecEval: A Dataset of Natural Language Prompts for Security Evaluations 写在最前面主要工作 课堂讨论大模型和密码方向(没做,只是一个idea) 相关研究提示集目标NL提示的建立NL提示的建立流程 数据集数据集分析 存在的问题 写在最前面…

[计算机网络实验]头歌 实验二 以太网帧、IP报文分析(含部分分析)

目录 第1关:Wireshark基本使用入门 【实验目的】 【实验环境】 【本地主机、平台虚拟机之间数据传递】 wireshark基本用法】 1、wireshark主界面 2、抓取分组操作 3、Wireshark窗口功能 4、筛选分组操作 【实验操作】 ​编辑 第2关:Ethernet帧…

关于软raid的实现及常见问题

RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。 磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡)或软件(MDADM&…

[Docker]九.Docker compose讲解

docker-compose 是 docker 官方的一个开源项目,可以实现对 docker 容器集群的快速编排, docker-compose 通过一个 配置文件 来管理多个 Docker 容器,在配置文件中,所有的容器通过 services 来定义,然后使用 docker-compose脚本 来 启动&am…

9、鸿蒙应用桌面图标外观和国际化

一、项目资源目录 项目下的resoueces目录为资源配置目录,其中base为基础配置,即在任何语言环境下都会加载的资源, color.json:用于配置颜色,如页面的背景和文字的颜色。 string.json:用于设置文字&#…

基于单片机声光控智能路灯系统仿真设计

**单片机设计介绍, 基于单片机声光控智能路灯系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的声光控智能路灯系统是一种利用单片机技术实现智能控制的路灯系统。它通过感知环境音量和光照强度…

opengl制作天空盒

首先创建顶点数组 unsigned int m_uiVaoBufferID; glGenVertexArrays(1, &m_uiVaoBufferID); 然后创建顶点缓冲区 float skyboxVertices[] {// positions-1.0f, 1.0f, -1.0f,-1.0f, -1.0f, -1.0f,1.0f, -1.0f, -1.0f,1.0f, -1.0f, -1.0f,1.0f, 1.0f, -1.0f,-1.0f, 1.…