华为防火墙中所有NAT技术解析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为防火墙中所有NAT技术解析相关的知识,希望对你有一定的参考价值。
nat分类
根据源地址分类
根据目的地址
Inbound/outbound
静态动态
分类 | 转换内容 | 是否转换端口 | 特点 | |
源NAT | 地址池方式 | 源IP地址 | 可选 | 采用地址池中的公网地址为私网用户进行地址转换,适用于大量私网用户访问Internet的场景。 |
出接口地址方式(Easy IP) | 源IP地址 | 是 | 内网主机直接借用公网接口的IP地址访问Internet,特别适用于公网接口IP地址是动态获取的情况。 | |
服务器映射 | 目的IP地址 | 可选 | 公网地址和私网地址一对一进行映射,适用于公网用户访问私网内部服务器的场景。 | |
目的IP地址 | 可选 | 适用于多个内网服务器提供相同的服务,对外虚拟成一个服务器,对用户的访问流量进行负载均衡的场景。 | ||
目的NAT | 目的IP地址 | 可选 | 主要应用在转换手机用户WAP网关地址,使手机用户可以正常上网的场景。 |
源NAT类型 | 私网IP和公网IP的数量对应 | 是否转换端口 | 是否生成server-map | 是否有黑洞路由 |
一对一 | 否 | 是 | 是 | |
多对一 多对多 | 是 | 否 | 是 | |
出接口地址方式(Easy-IP) | 多对一 | 是 | 否 | 否 |
(仅高端防火墙USG9000 系列支持) | 一对一 (预留IP做多对一转换) | 否 (预留IP做端口 转换) | 是 (仅NAT NO-PAT) | 是 |
(仅高端防火墙USG9000 系列支持) | 多对一 多对多 | 是 | 是 | 否 |
easy-ip中配置(USG6000)时:源地址可以不写,但是目的地址必须写,因为easy-ip转换根据出接口寻找
nat-policy
rule name easy_ip
source-zone dmz
destination-zone untrust
action nat easy-ip
配置基于域间:(USG5500)
定义地址池:
nat address-group 1 20.1.1.10 20.1.1.20
配置NAT策略:
nat-policy interzone huawei ahang inbound
policy 1
action source-nat (no-pat)
policy source 10.1.1.0 0.0.0.255
address-group 1
dis cur conf nat-policy-interzone
NAT-server(USG5500)
基于目的的IP转换
nat server 0 protocol tcp global 20.1.1.254 3333 inside 10.1.1.1 telnet
nat server 1 protocol icmp global interface GigabitEthernet0/0/2 inside 10.1.1.1
查看NAT表项----一对一静态绑定中会出现server-map,无需动态触发,静态生成,动态的会产生大量的map表,占用大量资源
------三元组,smart-nat也存在server-map表
Display Firewall server-map
Current Total Server-map : 2
Type: No-Pat Reverse, ANY -> 10.1.1.254[10.1.2.1], Zone:---
Protocol: ANY, TTL:---, Left-Time:---, Pool: 0, Section: 0
Vpn: public
Type: No-Pat, 10.1.2.1[10.1.1.254] -> ANY, Zone:---
Protocol: ANY, TTL:360, Left-Time:357, Pool: 0, Section: 0
Vpn: public
questions:NAT Server 中为了让公网用户访问私网的服务器,那么配置安全策略时目的地址是私网地址,还是转换的公网地址?
公网用户通过20.1.1.254:3333访问服务器时,防火墙收到报文首包后查看目的地址和端口匹配到server-map,然后转换为私网的
10.1.1.1:23 ,然后根据目的私网地址查路由表,从出接口trust出去,从入接口UNtrust进入。
因此安全策略中,destination-address 为私网的IP地址20.1.1.1,不是公网的
nat server C 0 zone untrust protocol tcp global 10.1.2.250 ftp inside 10.1.1.1 ftp
一条NAT server会生成两条server-map,一条用于外网访问内网时可针对特定端口,一条用于内网主动去往外网
[FW]dis firewall server-map
Current Total Server-map : 2
Type: Nat Server, ANY -> 10.1.2.250:21[10.1.1.1:21], Zone: untrust , protocol:tcp
Vpn: public -> public
Type: Nat Server Reverse, 10.1.1.1[10.1.2.250] -> ANY, Zone: untrust , protocol:tcp
Vpn: public -> public, counter: 1
但是存在几点问题:
1.同一区域不同出接口不能同时配
[FW]nat server D zone untrust protocol tcp global 10.1.3.250 ftp inside 10.1.1.1 ftp
Error: This inside address has been used
因为如果多个出口会生成多个Reverse,但是10.1.1.1映射成哪一个会出现混乱,故不能同时配
但是可以配置为
[FW]nat server D zone untrust protocol tcp global 10.1.3.250 ftp inside 10.1.1.1 ftp no-reverse
2.不同区域可以同时配
[FW]nat server D zone untrust11 protocol tcp global 10.1.3.250 ftp inside 10.1.1.1 ftp
3.no-reverse作用:
不会生成一条反向的NAT条目
4.配置源进源出,保证来回的路径一致。
多出口不同ISP时,做了地址转换后,回包时防火墙上存在多个默认路由,可能会导致回包路径不一致
接口下配置:USG9500---redirect-reverse next-hop 1.1.1.254(下一跳地址)
USG6000-----gateway1.1.1.254 redirect-reverse enable
USG5500/2000---reverse-route nexthop 1.1.1.254
5.NAT-ALG(Application level gateway)
通过在全局,区域下开启ASPF (detect ftp)实现
Firewalls session table中存在控制连接,数据传输时生成server-map放行ftp数据
6.当nat-server和easy-ip同时配置时,且转换同一个地址时,nat-server会生效,因为nat-server生成server-map表项
根据策略顺序先查server-map表。
双向转换
NAT-server+ NAT inbound
第一步:NAT-server转换,当外部用户访问服务器时,将服务器私网地址和公网映射,此时外部用户直接访问公网地址
20.1.1.1--->20.1.1.254 ==等价== 20.1.1.1---->10.1.1.1
此时 SIP:20.1.1.1 DIP:10.1.1.1
第二步:在外部访问内部域间做NAT策略,使SIP公网IP变为私网IP
nat address-group 0 10.1.1.254 10.1.1.254
nat-policy interzone trust untrust inbound
policy 1
action source-nat
policy destination 10.1.1.1 0
address-group 0
此时 SIP:10.1.1.254 DIP:10.1.1.1
好处:服务器不用找网关了,同一网段的
不用学到公网地址
当网关变了,不用重新配置(当有数百台服务器时)
NAT-server + 域内NAT
端口复用技术
Smart-NAT
只有USG9500上才有
同时配置基于接口的和基于地址池的
正常用接口的,接口的端口不够用时用地址池的
三元组NAT
只有USG9500上才有
对于P2P业务中,对外访问的地址和端口会保持一致(如100.1.1.1---3000),支持外网其他主机以目的地址和端口(100.1.1.1---3000)访问内网时,由UNtrust到trust为放行。
会存在server-map用来控制连接
服务器负载均衡SLB(server load balance)
将多个提供相同服务的服务器虚拟成一个服务器,在防火墙上配置使三个私有IP共用一个公有的IP地址
然后当外部访问时,根据防火墙上的负载方式:1.源hash负载 2.简单轮询 3.加权轮询 走流量到服务器
不能与NAT server共同提供服务
配置注意:
USG6000
<FW>dis cur conf slb
#
slb
group 1 A
metric roundrobin
health-check type tcp port 23
rserver 0 rip 10.1.2.1 port 23
rserver 1 rip 10.1.3.1
vserver 0 A
vip 0 10.1.1.10
protocol any
group A
<FW>dis security-policy rule 2
(2564 times matched)
rule name 2
source-zone local(当配置了health-check后,需要匹配出源zone为local,检查local去往trust的包)
source-zone untrust
destination-zone trust
action permit
NAT黑洞路由问题
场景一:A------FW----B 源NAT地址转换 (10.1.1.0/24----FW-----10.1.2.0/24)
[FW-address-group-a]d thi
#
nat address-group a 0
mode pat
route enable
section 0 10.1.4.1 10.1.4.10
[FW-policy-nat]d thi
#
nat-policy
rule name A
source-zone trust
destination-zone untrust
action nat address-group a
此时A访问B正常转换为虚地址转发,但是当B访问虚地址时,此时虚地址时不存在的,FW为出口所以存在出口网关默认路由指向B
B的去往10.1.4.0/24走FW,形成了环路。
解决方法:
1.写条去往虚地址的路由指向NULL0
2.在地址池中有一条命令: route enable 开启了之后效果跟1是相同的
场景二:A----FW---B 目的地址nat-server转换DMZ---FW---UNtrust
如果写nat-server时只是针对某些端口做了映射,当B去访问其他的端口时,也会出现环路
如果nat-server中针对一个地址的直接映射,包含了所有的端口则不会出现默认路由
解决方法:
写条去往虚地址的路由指向NULL0
写条虚地址指向NULL0还有个好处,当内部运行IGP时,可以将虚地址引入IGP中
本文出自 “hcietea” 博客,请务必保留此出处http://hcietea.blog.51cto.com/9642637/1975828
以上是关于华为防火墙中所有NAT技术解析的主要内容,如果未能解决你的问题,请参考以下文章