首页 > 其他 > 详细

华为防火墙中所有NAT技术解析

时间:2017-10-25 23:16:23      阅读:3889      评论:0      收藏:0      [点我收藏+]

nat分类

根据源地址分类

根据目的地址

Inbound/outbound

静态动态

分类


转换内容

是否转换端口

特点

源NAT

地址池方式

源IP地址

可选

采用地址池中的公网地址为私网用户进行地址转换,适用于大量私网用户访问Internet的场景。


出接口地址方式(Easy IP)

源IP地址

是

内网主机直接借用公网接口的IP地址访问Internet,特别适用于公网接口IP地址是动态获取的情况。

服务器映射

静态映射(NAT Server)

目的IP地址

可选

公网地址和私网地址一对一进行映射,适用于公网用户访问私网内部服务器的场景。


服务器负载均衡

目的IP地址

可选

适用于多个内网服务器提供相同的服务,对外虚拟成一个服务器,对用户的访问流量进行负载均衡的场景。

目的NAT


目的IP地址

可选

主要应用在转换手机用户WAP网关地址,使手机用户可以正常上网的场景。

源NAT类型

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

是否转换端口

是否生成server-map

是否有黑洞路由

NAT  No-PAT

一对一

否

是

是

NAPT

多对一

多对多

是

否

是

出接口地址方式(Easy-IP)

多对一

是

否

否

Smart  NAT

(仅高端防火墙USG9000

系列支持)

一对一

(预留IP做多对一转换)

否

(预留IP做端口

转换)

是

(仅NAT NO-PAT)

是

三元组NAT

(仅高端防火墙USG9000

系列支持)

多对一

多对多

是

是

否

 

 

easy-ip中配置(USG6000)时:源地址可以不写,但是目的地址必须写,因为easy-ip转换根据出接口寻找

nat-policy

rule name easy_ip

  source-zone dmz

  destination-zone untrust

  action nat easy-ip

 

 

NAPT  --- NAT  NO-PAT                                                                               技术分享

配置基于域间:(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技术解析

原文:http://hcietea.blog.51cto.com/9642637/1975828

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!