隨著Internet的快速發(fā)展,IPv4的公網(wǎng)地址資源已非常匱乏,NAT(Network Address Translation)技術(shù)通過(guò)對(duì)IP報(bào)文中的地址或端口進(jìn)行轉(zhuǎn)換,可以使大量的私網(wǎng)IP地址通過(guò)共享少量的公網(wǎng)IP地址來(lái)訪問(wèn)公網(wǎng),從而有效減少了對(duì)公網(wǎng)地址的需求,減緩IP地址空間枯竭的速度。
針對(duì)NAT的類型可分為以下三種:
1、源NATa) 地址池方式,轉(zhuǎn)換源IP信息,適用大量私網(wǎng)用戶訪問(wèn)Internet的場(chǎng)景。b) 出接口地址方式(Easy IP),適用于公網(wǎng)接口IP地址是動(dòng)態(tài)獲取的情況。
2、服務(wù)器映射a) 靜態(tài)映射(NAT Server),適用于公網(wǎng)用戶訪問(wèn)私網(wǎng)內(nèi)部服務(wù)器的場(chǎng)景。b) 服務(wù)器負(fù)載均衡,適用于多個(gè)內(nèi)網(wǎng)服務(wù)器提供相同的服務(wù),對(duì)外虛擬成一個(gè)服務(wù)器。
3、目的NAT
主要應(yīng)用在轉(zhuǎn)換手機(jī)用戶WAP網(wǎng)關(guān)地址,使手機(jī)用戶可以正常上網(wǎng)的場(chǎng)景。NAT基本概念:在USG系列防火墻上,還有Server-map用于存放關(guān)于地址轉(zhuǎn)換的映射關(guān)系,設(shè)備根據(jù)這種映射關(guān)系對(duì)報(bào)文的地址進(jìn)行轉(zhuǎn)換,并轉(zhuǎn)發(fā)。NAT生成Server-map的兩種情況:
配置NAT Server成功后生成靜態(tài)表項(xiàng)。
配置NAT No-PAT后,需要由流量觸發(fā)建立Server-map表。
NAT ALG基本概念:NAT ALG(Application Level Gateway,應(yīng)用級(jí)網(wǎng)關(guān))是特定的應(yīng)用協(xié)議的轉(zhuǎn)換代理,可以完成應(yīng)用層數(shù)據(jù)中攜帶的地址及端口號(hào)信息的轉(zhuǎn)換。
FTP應(yīng)用就由數(shù)據(jù)連接和控制連接共同完成,而且數(shù)據(jù)連接的建立動(dòng)態(tài)地由控制連接中的載荷字段信息決定,這就需要ALG來(lái)完成載荷字段信息的轉(zhuǎn)換,以保證后續(xù)數(shù)據(jù)連接的正確建立。

ASPF功能的主要目的是通過(guò)對(duì)應(yīng)用層協(xié)議的報(bào)文分析,為其開(kāi)放相應(yīng)的包過(guò)濾規(guī)則,而NAT ALG的主要目的,是為其開(kāi)放相應(yīng)的NAT規(guī)則。由于兩者通常都是結(jié)合使用的,所以使用同一條命令就可以將兩者同時(shí)開(kāi)啟。
華為HCIE-Security認(rèn)證針對(duì)以上類型展開(kāi)分析,由技術(shù)的原理開(kāi)始,再到使用的場(chǎng)景,到最后場(chǎng)景的故障分析,完整地解析地址轉(zhuǎn)換技術(shù)相關(guān)知識(shí)。
首先我們將帶大家了解在出口部署源NAT地址池方式的大致框架及邏輯,如下圖:
如上圖內(nèi)網(wǎng)用戶群(10.1.10.2-10.1.10.100)最初都在一個(gè)區(qū)域內(nèi),有兩個(gè)公網(wǎng)IP(210.1.1.11和210.1.1.12)可用于做NAT轉(zhuǎn)換,由于無(wú)需對(duì)這些用戶進(jìn)行區(qū)分,所以可將兩個(gè)公網(wǎng)IP放在同一地址池內(nèi)。上網(wǎng)流量到達(dá)防火墻后,將從地址池中隨機(jī)選取一個(gè)公網(wǎng)IP做NAT轉(zhuǎn)換。這個(gè)過(guò)程看似很簡(jiǎn)單,但是一些相對(duì)復(fù)雜的環(huán)境還是會(huì)難倒部分技術(shù)人員,下面通過(guò)案例為大家分享下。
例如有道這樣的安全競(jìng)賽題:LAB2有部分需求如下,其中FW1的G1/0/1地址為10.1.10.254/24,ISP1的G0/0/1地址為10.1.10.10/24,問(wèn)題需求是:
1、在FW1部署NAT雙出口為內(nèi)網(wǎng)設(shè)備訪問(wèn)外部數(shù)據(jù),在出口ISP1或ISP2路由設(shè)備故障進(jìn)行切換,其中ISP1申請(qǐng)地址池范圍為10.1.10.9/29,向ISP2申請(qǐng)地址范圍為10.1.22.9/29,并配置相應(yīng)安全策略允許內(nèi)向流通通過(guò)。
2、考慮在FW1出口的兩個(gè)ISP可能會(huì)出現(xiàn)的潛在環(huán)路或ARP廣播問(wèn)題,該如何解決?
通過(guò)分析發(fā)現(xiàn)這個(gè)LAB2的需求并不是難,無(wú)非是是基礎(chǔ)知識(shí)組合在一起。但大部分工程師并沒(méi)有能提交完整的答案。反饋的問(wèn)題是在FW1設(shè)備無(wú)法將流量訪問(wèn)到ISP1的G0/0/1接口直連。(其中ISP1設(shè)備G0/0/1地址為10.1.10.10/24,F(xiàn)W1設(shè)備G1/0/1地址為10.1.10.254/24)
詢問(wèn)大家在這個(gè)位置做了什么操作時(shí),有人說(shuō)到在NAT地址池與出口處于同網(wǎng)段時(shí)可能引起ARP廣播問(wèn)題,NAT地址池與出口處于不同網(wǎng)段時(shí)可能引起環(huán)路問(wèn)題。
登錄防火墻,此時(shí)FW1上的路由條目如下:
在FW上查會(huì)話如下:
產(chǎn)生ARP廣播條件:向FW1的G1/0/1口發(fā)送目的為10.1.10.13的數(shù)據(jù)包:
在FW1的G1/0/1接口抓包如下:
此處ARP廣播產(chǎn)生的原因是因?yàn)榉阑饓κ盏綀?bào)文后,發(fā)現(xiàn)報(bào)文的目的地址和自己的接口在同一網(wǎng)段,直接發(fā)送ARP請(qǐng)求報(bào)文(第2個(gè)ARP報(bào)文),尋找該地址的MAC地址(防火墻依然沒(méi)有意識(shí)到該報(bào)文的目的地址是自己的NAT地址池地址)。如果公網(wǎng)上的不法分子發(fā)起大量訪問(wèn)時(shí),防火墻將發(fā)送大量的ARP請(qǐng)求報(bào)文,也會(huì)消耗系統(tǒng)資源。解決的辦法是在FW1上針對(duì)NAT地址池寫(xiě)黑洞路由,隨即在FW1上配置了如下命令"ip route-static 10.1.10.9/29 NULL 0",此時(shí)FW1路由表如下:
接著在FW1上查的會(huì)話也老化消失:
之后就出現(xiàn)經(jīng)過(guò)FW1訪問(wèn)ISP1直連不通的現(xiàn)象,甚至有人在此排查了半個(gè)多小時(shí)。在針對(duì)直連鏈路訪問(wèn)失敗問(wèn)題,我們可在FW1執(zhí)行“display ip routing-table 10.1.10.10”就會(huì)得到你想要的結(jié)果,發(fā)現(xiàn)數(shù)據(jù)都丟NULL 0 接口。原因是:根據(jù)路由匹配原則,路由器會(huì)優(yōu)先選擇掩碼最長(zhǎng)的條目,導(dǎo)致數(shù)據(jù)無(wú)法從FW1的G1/0/1口發(fā)送出來(lái),ISP1設(shè)備不能收到請(qǐng)求報(bào)文。
解決此場(chǎng)景"在NAT地址池與出口處于同網(wǎng)段時(shí)可能引起ARP廣播問(wèn)題",可寫(xiě)關(guān)于地址池的明細(xì)路由(排除已配置的IP)指向NULL 0接口,或者規(guī)劃好IP地址的使用,避開(kāi)NAT地址池的范圍10.1.10.9/29,使用其他地址配置物理接口。
通過(guò)上述案例可以發(fā)現(xiàn),很多的場(chǎng)景并不復(fù)雜,只是我們忘了原本基礎(chǔ)的內(nèi)容。包括很多高級(jí)學(xué)員參加HCIE考試,經(jīng)常會(huì)忘記基礎(chǔ)的內(nèi)容。排錯(cuò)是技術(shù)工程師務(wù)必掌握的內(nèi)容,而排錯(cuò)這個(gè)技能往往離不開(kāi)平時(shí)的實(shí)驗(yàn)練習(xí)與基礎(chǔ)理論部分。