1. 程式人生 > >華為防火墻中所有NAT技術解析

華為防火墻中所有NAT技術解析

華為 防火墻 usg6000 nat napt nat-server

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-serverUSG5500

基於目的的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

questionsNAT 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-servereasy-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

此時 SIP10.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)訪問內網時,由UNtrusttrust為放行。

會存在server-map用來控制連接

服務器負載均衡SLBserver 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後,需要匹配出源zonelocal,檢查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/24FW,形成了環路。

解決方法:

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技術解析