为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(1)

知识点学习视频推荐(免费),每天新知识点 1

新手网工必知!让你每天的新知识点 1

华为下一代防火墙入门课程


技术出现背景

NAT技术的出现主要是为了解决IPV4地址枯竭的问题,回想下上一篇,学过了几种主流接入Internet的方式,但是这几种方式都是配置在防火墙上面,防火墙访问外网没问题,但是下面的终端设备呢?不管是DHCP还是PPPOE拨号都只有一个可以上网的地址分配下来,而固定专线可能有几个,对于一个局域网几十台、几百台终端设备的场景显然可上网地址就不够用了,就需要利用NAT技术了。NAT技术里面分为两大类,这一篇我们来讲解源NAT技术,也就是解决局域网下多个终端通过一个或者数个可上网地址来复用共享上网。

案例中了解源NAT实现原理

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(2)

接口部分的配置

dhcp enable

#

interface GigabitEthernet1/0/1

undo shutdown

ip address 192.168.11.254 255.255.255.0

service-manage http permit

service-manage https permit

service-manage ping permit

service-manage ssh permit

dhcp select interface

dhcp server ip-range 192.168.11.1 192.168.11.250

dhcp server gateway-list 192.168.11.254

dhcp server dns-list 223.5.5.5 114.114.114.114

#

interface GigabitEthernet1/0/2

undo shutdown

ip address 192.168.12.254 255.255.255.0

service-manage http permit

service-manage https permit

service-manage ping permit

service-manage ssh permit

dhcp select interface

dhcp server ip-range 192.168.12.1 192.168.12.200

dhcp server gateway-list 192.168.12.254

dhcp server dns-list 223.5.5.5 114.114.114.114

#

interface g1/0/0

ip address dhcp-alloc (这里外网采用DHCP对接)

安全区域部分的配置

firewall zone untrust

add interface GigabitEthernet1/0/0

#

firewall zone name office1

set priority 80

add interface GigabitEthernet1/0/1

#

firewall zone name office2

set priority 79

add interface GigabitEthernet1/0/2

#

安全策略部分的配置

分析:对应区域office1与2想要上网,那么必须放行office1与2到untrust的策略即可,只需要匹配office1与2的源地址,然后源目安全区域,动作permit,目的地址不填(Internet的目的地址太多了,匹配不现实),服务也不限制,本身就希望用户上外网,不做限制,这里在多做一个Local_untrust的策略,方便测试外网通不通。

#

security-policy

rule name office1_untrust

source-zone office1

destination-zone untrust

source-address 192.168.11.0 mask 255.255.255.0

action permit

rule name office2_untrust

source-zone office2

destination-zone untrust

source-address 192.168.12.0 mask 255.255.255.0

action permit

rule name Local_untrust

source-zone local

destination-zone untrust

action permit

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(3)

现在防火墙访问外网没任何问题

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(4)

因为接口已经获取到了一个可以上网的地址,通过DHCP方式,现在需要解决的就是内网,比如office1的192.168.11.0/24以及office2的192.168.12.0/24如何去上网。

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(5)

客户端访问外网不通,我们来分析下为什么不通!

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(6)

(1)PC1 192.168.11.221访问114.114.114.114,交给网关192.168.11.254(防火墙处理)

(2)交换机是傻瓜交换机直接把数据包通过MAC表发送给防火墙

(3)防火墙这个时候先检查安全策略(已经配置了office1到untrust的策略允许通过),然后查找路由表,有默认路由指向出口,把数据包发送出去了。

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(7)

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(8)

这么看防火墙是把数据包发送出去了的,但是看会话表里面的现象,发送出去了,回来的数据包统计是0,也就是说没有数据包回来,造成这样的原因就是,运营商过来的终端设备(比如猫、政企设备)给了防火墙一个上网地址,那么能上网的就是这个地址而已,防火墙下面的网段过来的流量,运营商的终端设备一看,不属于它处理的范围直接给丢弃了(因为它本身也不知道192.168.11.0以及12.0在哪,它也不会去关心这个),这个时候需要能让192.168.11.0以及12.0上网的话,则需要伪装一下,把这两个网段过来的流量给转换成防火墙能够上网的那个地址,这样运营商终端设备看到实际地址是被防火墙转换成了允许上网的那个地址,直接就转发走了,这个技术就是这篇要讲解的源NAT,其实学过路由技术的朋友,应该对原理还是比较懂的了,博主这里就简单的从数据包的转发上面来分析下,让大家从不同的角度来了解下。

在防火墙里面,把源NAT功能叫做NAT策略,我们可以在防火墙上面配置多条NAT策略来实现不同的需求,以这个案例为主,来看看如何配置。

[USG6000V1]nat-policy

[USG6000V1-policy-nat]rule name office1_untrust

[USG6000V1-policy-nat-rule-office1_untrust]source-zone office1

[USG6000V1-policy-nat-rule-office1_untrust]destination-zone untrust

[USG6000V1-policy-nat-rule-office1_untrust]source-address 192.168.11.0 24

[USG6000V1-policy-nat-rule-office1_untrust]action source-nat easy-ip

[USG6000V1-policy-nat]rule name office2_untrust

[USG6000V1-policy-nat-rule-office2_untrust]source-zone office2

[USG6000V1-policy-nat-rule-office2_untrust]source-address 192.168.12.0 24

[USG6000V1-policy-nat-rule-office2_untrust]egress-interface g1/0/0

[USG6000V1-policy-nat-rule-office2_untrust]action source-nat easy-ip

配置看其实是不是很熟悉,它跟安全策略的思路是一样的,匹配源、目安全区域,然后源地址,执行动作即可,这里两个策略博主用了两种方式。

(1)在office1的策略中,博主用的是匹配的目的安全区域方式(destination-zone untrust )这样的配置,防火墙会去查找该安全区域里面有的接口,如果路由表从这个接口出去了,则进行转换,特别是在多个出口在同一个安全区域的时候必须使用基于目的安全区域的方式

(2)在office2的策略中,博主用的是匹配接口的方式(egress-interface g1/0/0)这种方式适合只有一个出口的时候,直接指定出接口即可。

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(9)

现在在来看PC1与PC2可以通过外网了,在来看看会话表发生了什么变化。

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(10)

是不是发现有些变化了,多了些内容,192.168.11.221:33137[192.168.255.11:2064],这个就是源NAT中的一种,叫做Easy-ip(也有的称为出接口地址方式,体现在配置里面就是 action source-nat easy-ip),工作的原理就是 当192.168.11.221去访问114.114.114.114的时候,查找安全策略放行,发现有NAT策略,匹配了office1_untrust的规则进行easy-ip操作,它会把192.168.11.221转换成出接口所获取的地址192.168.255.11,也就是进行了一次伪装转换,那么这个时候运营商的终端设备看到是192.168.255.11(允许范围内的上网地址),直接就进行转发了,而且easy-ip不单单会进行地址转换,还会在后面跟一个端口号,这个端口号有什么作用呢?

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(11)

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(12)

可以看到两个网段的主机地址访问外网都能够转换,假设不加这个端口号,当192.168.11.221访问外网的时候转换成了192.168.255.11了,而192.168.12.111也访问同一个外网地址,比如114.114.114.114,也转换成了192.168.255.11,但数据返回的时候,防火墙就傻眼了,到底这个包是给11.221呢还是12.111,但是有了这个端口号就不一样了,比如上面这里192.168.11.221访问114的时候,转换成了192.168.255.11:2074,而12.111访问114的时候转换成了192.168.255.11的2077,在收到回包的时候,只要看端口号就知道给谁了,所以这个端口号的作用就是在能上网的地址只有一个的情况下,而内网主机亮很大,则需要用到这种IP与端口号都转换的形式,达到一个地址复用的效果,这种技术的名称叫做NAPT(Network Address And port Translation),easy-ip只是NAPT中的一种,表示只有一个接口地址可以用于上网,没有在多余的地址使用了,那么下面来看看另外一种环境,当我们有两个可上网地址的时候,怎么来分配呢?

案例二:有多个上网地址该如何分配

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(13)

拓扑引用上面那个,在实际中这种案例一般是在一个外网专线里面,存在多个公网固定IP,接口上面配置一个,那么多出来的就浪费了,这个时候可以怎么分配呢?(这里博主强调下,实验环境用的是192.168.255.11跟192.168.255.12,实际中的地址由运营商分配)

更改配置的地方

#

[USG6000V1]int g1/0/0

[USG6000V1-GigabitEthernet1/0/0]ip address 192.168.255.11 24

#

[USG6000V1]ip route-static 0.0.0.0 0.0.0.0 192.168.255.254

#

固定公网IP是需要把接口配置在接口下面的,然后写上默认路由。在实际工作中,有2个公网IP的场景,可以这样使用,可以根据部门来划分,也可以根据业务来划分,比如这个案例里面有office1与2,可以让office1用192.168.255.11,而office2用192.168.255.12,由于192.168.255.11在接口上面,我们可以直接使用easy-ip的方式,而192.168.255.12是没有配置在接口的,这个时候就需要定义一个NAT地址池组了。

[USG6000V1]nat address-group 192.168.255.12

[USG6000V1-address-group-192.168.255.12]section 0 192.168.255.12 192.168.255.12

[USG6000V1-address-group-192.168.255.12]mode pat

这里的意思是定义一个地址池组,名字这里博主以地址形式命名,然后定义地址的范围,我们案例里面就是192.168.255.12,所以起始于结束都是以这个,最后模式为pat(也就是NAPT)

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(14)

模式支持几种,常用的为PAT,其他几种用的并不多。

[USG6000V1]nat-policy

[USG6000V1-policy-nat]rule name office1

[USG6000V1-policy-nat-rule-Office1]source-address 192.168.11.0 24

[USG6000V1-policy-nat-rule-Office1]source-zone office1

[USG6000V1-policy-nat-rule-Office1]destination-zone untrust

[USG6000V1-policy-nat-rule-Office1]action source-nat easy-ip

[USG6000V1-policy-nat]rule name office2

[USG6000V1-policy-nat-rule-office2]source-zone office2

[USG6000V1-policy-nat-rule-office2]destination-zone untrust

[USG6000V1-policy-nat-rule-office2]source-address 192.168.12.0 24

[USG6000V1-policy-nat-rule-office2]action source-nat address-group 192.168.255.12

实际测试下

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(15)

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(16)

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(17)

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(18)

可以通过会话表信息看到,192.168.11.0与12.0转换的出口地址是不一样的,11.0用的easy-ip接口的形式,而12.0用的地址组里面的地址。

源NAT的其他几种方式

源NAT在工作中用的最多的就是NAPT的方式了,其实还有两种方式的方式的,用的场景比较少,这里就简单介绍下。

(1)NAT No-PAT:这种适合公网地址特别多的情况下,一个私网用户占用一个公网地址(可上网的地址),在实际中这种场景很少,以目前IPV4的地址来看,有几个已经就很不错了。

(2)三元组NAT:NAPT中,私网地址的端口号与转换后的端口号是随机生成的,在某些P2P的应用中,可能要求私网的端口号与转换后的端口号要一致,这个功能就可以实现在私网转换后,端口号保持一致。

源NAT维护以及排错

1、通过display firewall session table verbose (会话比较多的时候,可以跟具体地址),当前地址是否有会话产生(并且有转换项)

2、display nat-policy rule all:通过该命令查找NAT策略的匹配、以及创建了哪些策略

3、display nat-policy rule name:查看某一条策略的配置,以及匹配项

4、检查安全策略是否配置正确,通过会话表查看是否有会话表项,如果有会话表项,而没有NAT转换,说明安全策略已经成功了,检测NAT策略的配置,如果连会话信息都没有,则需要从安全策略以及对接角度来进行排查。

5、会话信息里面没有NAT转换,很大的可能就是NAT策略配置错误了,容易出错的地方(1)源区域 (2)目的区域或者接口(3)源地址 (4)执行动作,有好几种,容易选择错误。

6、会话信息以及NAT转换都有,但是上不了网,这个时候检测(1)DNS是否错误 (2)终端ping 114.114.114.114 (3)防火墙上面ping 114,记得放行Local到Untrust的流量 (4)如果是固定专线的话,测试下直连网关通不通。

7、rule move 可以通过这个移动策略之间的顺序

8、如果某个规则暂时不需要用了,可以进入对应的规则下面 输入disable禁用,启用的话输入enable即可。

WEB相关操作

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(19)

在策略----NAT策略----新建----

为什么需要配置nat(NAT技术之源NAT-想上外网少不了它)(20)

WEB的配置跟命令行是一样的,输入名称、NAT类型、源安全区域、目的类型(可以选择目的安全区域以及出接口)、源地址、转换的动作,比如上面的案例有个建立地址池的,可以选择地池中的地址,然后新建一个地址池组,选中即可。

实际源NAT博主经验分享

[USG6000V1]nat-policy

[USG6000V1-policy-nat]rule name office1_untrust

[USG6000V1-policy-nat-rule-office1_untrust]source-zone office1

[USG6000V1-policy-nat-rule-office1_untrust]destination-zone untrust

[USG6000V1-policy-nat-rule-office1_untrust]source-address 192.168.11.0 24

[USG6000V1-policy-nat-rule-office1_untrust]action source-nat easy-ip

[USG6000V1-policy-nat]rule name office2_untrust

[USG6000V1-policy-nat-rule-office2_untrust]source-zone office2

[USG6000V1-policy-nat-rule-office2_untrust]source-address 192.168.12.0 24

[USG6000V1-policy-nat-rule-office2_untrust]egress-interface g1/0/0

[USG6000V1-policy-nat-rule-office2_untrust]action source-nat easy-ip

记得第一个案例,只有一个可上网地址的时候,在配置中写了两个rule规则,在实际中可以简化成一个的

[USG6000V1]nat-policy

[USG6000V1-policy-nat]rule name Internet

[USG6000V1-policy-nat-rule-internet]source-zone office1

[USG6000V1-policy-nat-rule-internet]source-zone office2

[USG6000V1-policy-nat-rule-internet]destination-zone untrust

[USG6000V1-policy-nat-rule-internet]source-address 192.168.11.0 24

[USG6000V1-policy-nat-rule-internet]source-address 192.168.12.0 24

[USG6000V1-policy-nat-rule-internet]action source-nat easy-ip

也就是一个规则里面匹配两个安全源区域,以及源地址,然后完成整个操作,之前两个rule的效果就是实现office1的192.168.11.0与office2的192.168.12.0利用这个上网,这个合并成一个规则直接匹配两个源区域,两个源地址也可以同时实现一样的效果,简化了配置。

在实际中其实还有更简单粗暴的,就是一个NAT策略允许所有。

[USG6000V1]nat-policy

[USG6000V1-policy-nat]rule name Internet

[USG6000V1-policy-nat-rule-internet]destination-zone untrust

[USG6000V1-policy-nat-rule-internet]action source-nat easy-ip

允许任何内网的用户去往外网进行上网,那么带来的问题是,如何去控制不想让他上网的呢?控制上网实际中更多的是使用安全策略,而NAT这块则宽松配置,这种比较适合常见的组网,在比较中大型的网络中,建议还是严格匹配。

实际案例思考:

在实际中有这样的情况出现,比如公司在阿里云部署了业务,做了一些安全的策略,只允许公司的某个固定公网地址才能访问,但公司有两条线路,一个固定公网用于访问阿里云业务的,还有一条拨号宽带用于上网,这样的情况下NAT该如何去部署?应该注意什么呢?(案例适合很多场景,比如一个可上网的互联网线路,一个内网专线等)

介绍

《华为下一代USG防火墙(由浅入深实际案例系列)》是博主原创的针对华为厂商下一代USG防火墙组网系列应用部署为主的系列课程,结合实际环境出发,加上了博主部署经验以及会遇到哪些问题等进行综合,做到学以致用,给各位看官朋友一个不一样的学习体验。

如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路Blog,版权归网络之路Blog所有,原创不易,侵权必究,觉得有帮助的,关注、转发、点赞支持下!~。

上一篇回顾

24、基于无线场景的内置portal匿名登录与接入码功能

下一篇学习

26、基于爱快网关自带的认证功能打造一个低成本的网页认证网络

,