日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NAT技术之NAT server

發(fā)布時間:2023/12/31 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NAT技术之NAT server 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

技術(shù)背景:

在很多場景中,比如企業(yè)、學(xué)校、甚至家里都有一些對外訪問的業(yè)務(wù)提供,比如門戶網(wǎng)址、NAS、ERP等,在實際部署中,這些提供訪問的服務(wù)器都屬于內(nèi)網(wǎng)內(nèi),配置的是內(nèi)網(wǎng)地址,導(dǎo)致的情況是公網(wǎng)用戶沒法對私網(wǎng)地址直接進行訪問,學(xué)過上篇內(nèi)容的源NAT功能是把私網(wǎng)用戶的源地址轉(zhuǎn)換成可上網(wǎng)的地址(當然可上網(wǎng)的就分私網(wǎng)跟公網(wǎng)了,由運營商分配的)然后發(fā)送出去,那么NAT Server的作用正好相反, 它是當其他公網(wǎng)用戶訪問我們服務(wù)的公網(wǎng)地址時候,進行目的地址轉(zhuǎn)換(注意一定要是公網(wǎng)地址),在華為防火墻里面的這個功能叫做---NAT server(服務(wù)器映射),可能大家都奇怪,為什么標題里面有端口映射、甚至DMZ,這個主要是各個廠商的叫法不一樣,可能客戶只會某一種叫法,導(dǎo)致在了解需求的時候,有點懵!

不過不要緊,學(xué)完本篇后就都會很清晰了,下面來看看多個場景下使用什么樣的技術(shù)。

NAT Server之一對一映射:

這里先說下一對一映射的功能的作用,它是完全把這個地址映射給內(nèi)網(wǎng)的某個服務(wù)器地址,一旦映射后,當有人訪問這個公網(wǎng)的任何服務(wù),注意這里說的是任何(比如HTTP、FTP、ping)都原封不動的丟給映射后的服務(wù)器,先來感受下,然后博主來說說在什么場景下建議使用,以及注意什么。

環(huán)境比較簡單,在互聯(lián)網(wǎng)的另外一邊有路人甲用戶需要訪問左邊服務(wù)器提供的FTP、HTTP服務(wù),由于服務(wù)器配置的是私網(wǎng)192.168.10.1的地址,需要防火墻做NAT server,把202.100.1.12映射到192.168.10.1,這時候外網(wǎng)用戶只需要訪問202.100.1.12即可。

基礎(chǔ)的對接

#interfaceGigabitEthernet1/0/0?undo?shutdown?ip?address?192.168.10.254?255.255.255.0#interfaceGigabitEthernet1/0/1?undo?shutdown?ip?address?202.100.1.11?255.255.255.0#ip?route-static?0.0.0.00.0.0.0?202.100.1.1#firewall?zone?untrust?set?priority?5?add?interface?GigabitEthernet1/0/1#firewall?zone?dmz?set?priority?50?add?interface?GigabitEthernet1/0/0#一對一映射配置:?[USG6000V1]natserver??global?202.100.1.12?inside192.168.10.1?沒錯就一條命令,非常的簡單的,難點就在于,安全策略如何放行,之前博主介紹過一個解決方法,在不知道如何放行安全策略的時候,直接把默認安全策略改為permit。?臨時安全策略放行:[USG6000V1]security-policy[USG6000V1-policy-security]default??action?permit?

實際測試:

通了,配置非常非常的簡單,但我們需要了解的不單單是配置,而是它為什么通的,策略應(yīng)該如何去放行。

看會話表似乎看不出來什么,跟源NAT一樣,一對一映射的202.100.1.12被轉(zhuǎn)換成了192.168.10.1,安全策略還是不知道如何放行,我們來看一個神奇的地方!

神奇不神奇?服務(wù)器能夠直接上外網(wǎng),轉(zhuǎn)換的是202.100.1.12出去的,但是博主這里是沒有配置任何的源NAT策略的,只有一對一的映射配置,這里就要說一下 NAT server配置后,它會生成server-map表,這個表項在學(xué)習(xí)多通道協(xié)議的時候遇見過,來看看NAT Server 生成的server-map表有哪些內(nèi)容。

與多通道協(xié)議生成的server-map不一樣的地方,可以發(fā)現(xiàn)這個表項是沒有時間的,也就是說是靜態(tài)的,只要配置了nat server,那么就會自動生成表項,細心的會發(fā)現(xiàn),這里有兩個表項。

(1)正向 server-map表,Type: Nat Server, ANY ->202.100.1.12[192.168.10.1], , 這個的意思是什么呢,當任意地址(any)向(->)202.100.1.12發(fā)起訪問的時候,報文的目的地址和端口號會被轉(zhuǎn)換成192.168.10.1,包括端口號,這個的作用就是當公網(wǎng)用戶訪問服務(wù)器時能夠正常的進行目的地址轉(zhuǎn)換,完成映射。

(2)反向server-map表,Type: Nat Server Reverse, 192.168.10.1[202.100.1.12] -> ANY,這個的作用是當私網(wǎng)192.168.10.1主動發(fā)起訪問外網(wǎng)的時候,直接可以通過該反向表轉(zhuǎn)將源地址轉(zhuǎn)換成202.100.1.12,從而能夠讓私網(wǎng)用戶訪問外網(wǎng)的操作,不需要在單獨的做源NAT策略。也就是一旦配置了nat server后,一條命令同時打通了兩個方向的地址轉(zhuǎn)換。

(3)注意的是這里的server-map僅僅是轉(zhuǎn)換的功能,并沒有繞過安全策略的通道,所以可以發(fā)現(xiàn)在會話表里面不管是外網(wǎng)訪問服務(wù)器的地址,還是內(nèi)網(wǎng)服務(wù)器主動訪問外網(wǎng),都能夠匹配上default的安全策略。?但是這里博主說下,nat server的server-map雖然不能過繞過安全策略,但是它處理的流程還是一樣的優(yōu)先查看server-map表,明白了這個,把整體流程整理下就應(yīng)該知道如何放行安全策略了。

整體的流程就是,公網(wǎng)的某個路人甲用戶(61.128.0.1)發(fā)起對于202.100.1.12的WWW或者FTP的訪問,防火墻收到這個報文后首先會匹配server-map表,發(fā)現(xiàn)有匹配項,直接把202.100.1.12轉(zhuǎn)換成了192.168.10.1,然后查找路由,找到出接口,根據(jù)入與出接口所在的安全區(qū)域,得到報文在哪兩個安全區(qū)域之間流動,然后進行安全策略匹配,?所以這里得到的結(jié)論就是服務(wù)器轉(zhuǎn)換的過程在安全策略之前,那么安全策略放行服務(wù)器的流量的時候,則放行的是真實的服務(wù)器地址與端口號,并不需要去關(guān)心公網(wǎng)IP與服務(wù)是多少。

實際的安全策略配置:

[USG6000V1]??security-policy

[USG6000V1-policy-security]defaultaction??deny#先還原默認的策略為deny?[USG6000V1-policy-security]rulename?untrust_dmz[USG6000V1-policy-security-rule-untrust_dmz]source-zoneuntrust[USG6000V1-policy-security-rule-untrust_dmz]destination-zonedmz[USG6000V1-policy-security-rule-untrust_dmz]destination-address192.168.10.1?32[USG6000V1-policy-security-rule-untrust_dmz]service?http[USG6000V1-policy-security-rule-untrust_dmz]service?ftp[USG6000V1-policy-security-rule-untrust_dmz]actionpermit?[USG6000V1-policy-security]rulename??DMZ_untrust[USG6000V1-policy-security-rule-DMZ_untrust]source-zonedmz[USG6000V1-policy-security-rule-DMZ_untrust]destination-zone??untrust[USG6000V1-policy-security-rule-DMZ_untrust]source-address192.168.10.1?32[USG6000V1-policy-security-rule-DMZ_untrust]actionpermit

這里配置了兩個策略:

(1)第一個策略配置的是從untrust到DMZ抵達192.168.10.1的http/ftp流量放行,博主這里比較建議,實際中對外提供什么樣的服務(wù),那么安全策略就放行對應(yīng)的服務(wù)端口號即可,不建議用any,一對一會把所有的端口號都映射給服務(wù)器,但是這樣帶來的安全隱患太大了,安全策略里面加以控制。

(2)第二個策略是配置的DMZ到untrust,讓服務(wù)器能夠正常的訪問外網(wǎng)的流量。

這個時候看會話表中的安全策略已經(jīng)匹配對應(yīng)的了。

一對一映射使用場景、帶來的問題以及跟DMZ有什么關(guān)系?

1、?先聊聊DMZ,不知道大家在家用路由器以及軟路由或者是光貓里面有沒有見到過有一個DMZ的配置選項,防火墻安全區(qū)域里面也有一個DMZ,博主在介紹區(qū)域的時候講解DMZ的作用提到過,當有對外網(wǎng)提供服務(wù)的服務(wù)器主機的時候,可以把它放到DMZ區(qū)域,這樣對內(nèi)網(wǎng)的安全多了一層保護,那么這些家用路由器、光貓、軟路由上面的DMZ實際指的是DMZ主機,當你在配置后它的作用就是跟華為防火墻的一對一映射效果是一樣的,所以當客戶跟你說要實現(xiàn)DMZ主機功能或者是DMZ映射的時候,那就是說的一對一的轉(zhuǎn)換。

2、?帶來的問題是什么呢?在理想的實驗環(huán)境下,發(fā)現(xiàn)訪問www/ftp這些,只要配置對了就沒任何問題,但是現(xiàn)實環(huán)境中,往往就不一樣了,就拿80、443、8080這些主流的WEB端口號來說,目前的運營商默認情況下大部分都是過濾禁止了,就是你配置了80,8080,會發(fā)現(xiàn)訪問不成功,這個是很多剛接觸網(wǎng)絡(luò)或者在實施映射的時候最常見的一件事情,對于80、443、8080這些端口號運營商是要求你提供的WEB服務(wù)已經(jīng)備案過了,這個時候運營商才會給你開通80、443、8080端口號,但是實際中往往很多比如ERP、臨時測試的業(yè)務(wù)內(nèi)網(wǎng)都是用的80端口號,沒到需要備案的地步,一對一或者說DMZ帶來的問題就是,外網(wǎng)用戶發(fā)對映射地址的80訪問,就會被轉(zhuǎn)換到內(nèi)網(wǎng)服務(wù)器的80,它們之間端口號是一致的,不能實現(xiàn)說外網(wǎng)訪問9999,映射到內(nèi)網(wǎng)的80這樣的效果;再一個問題就是安全性問題,一對一的映射是把所有端口號都給映射出去了,比如這臺服務(wù)器就對外提供了FTP服務(wù),但是還運行了3389、iis等應(yīng)用,一對一配置后,把不想對外提供的服務(wù)也給映射出去了,雖然可以通過安全策略來控制,但是實際是消耗了設(shè)備的性能的,因為中間會通過server-map表轉(zhuǎn)換一次。

3、?一對一使用的場景主要是(1)公網(wǎng)地址特別多,內(nèi)網(wǎng)服務(wù)器也多的情況? (2)需要映射的端口號比較多,比如10001到12500,這個時候還是比較建議用一對一來減少工作量的。

NAT Server之端口映射

端口映射從字面意思其實就容易理解,它的功能就是對需要對外提供服務(wù)的端口號已經(jīng)映射發(fā)布,這樣解決了一對一映射帶來的問題,而且比較靈活,靈活的地方在于一對一必須內(nèi)外網(wǎng)相同的端口號,而端口號映射則不一樣,比如內(nèi)網(wǎng)使用80、3389,而外網(wǎng)端口號可以自定義其他的,靈活性跟安全性都可以,唯一的缺點就是一次只能映射一條,不過華為防火墻提供了批量范圍配置的功能。

還是上面的環(huán)境與配置,只是這次對外提供的只有?WWW?服務(wù)了,考慮到標準的?80?、?8888?、?8080?這些端口號被運營商禁止了,外網(wǎng)端口號采用非標準的端口號?9898?來進行映射。

端口映射配置:

[USG6000V1]nat?server?protocol?tcp?global?202.100.1.12?9898?inside?192.168.10.1?80

安全策略配置:

之?前一對一映射是會生成正反server-map表項,端口映射也會生成正反,但是跟一對一有點小區(qū)別,多了一個端口號。

(1)正向server-map:Type: Nat Server, ?ANY ->202.100.1.12:9898[192.168.10.1:80], Zone:---, protocol:tcp,這個的意思是當任何外網(wǎng)客戶端訪問202.100.1.12:9898,會把目的地址轉(zhuǎn)換成192.168.10.1:80,并且規(guī)范了協(xié)議是TCP。

(2)反向server-map:Type: Nat Server Reverse, 192.168.10.1[202.100.1.12] -> ANY, Zone:---, ?protocol:tcp,之前一對一是允許192.168.10.1通過源地址轉(zhuǎn)換成202.100.1.12出去上網(wǎng),但是端口映射里面多?一個規(guī)范 protocl:tcp,那是不是異味只能訪問TCP的流量呢?來驗證下。

[USG6000V1]??security-policy

[USG6000V1-policy-security]rulename?untrust_dmz[USG6000V1-policy-security-rule-untrust_dmz]source-zoneuntrust[USG6000V1-policy-security-rule-untrust_dmz]destination-zonedmz[USG6000V1-policy-security-rule-untrust_dmz]destination-address192.168.10.1?32[USG6000V1-policy-security-rule-untrust_dmz]service?http[USG6000V1-policy-security-rule-untrust_dmz]actionpermit?[USG6000V1-policy-security]rulename??DMZ_untrust[USG6000V1-policy-security-rule-DMZ_untrust]source-zonedmz[USG6000V1-policy-security-rule-DMZ_untrust]destination-zone??untrust[USG6000V1-policy-security-rule-DMZ_untrust]source-address192.168.10.1?32[USG6000V1-policy-security-rule-DMZ_untrust]actionpermit?跟一對一映射一樣,放行了內(nèi)外網(wǎng)雙方向。

實際測試:

首先公網(wǎng)的路人甲訪問是沒任何問題的,注意端口號是9898.

沒通,看會話表的情況是包出去了,沒有回包,沒回包是正常的,因為192.168.10.1并沒有被轉(zhuǎn)換,那么這個私網(wǎng)地址跑到公網(wǎng)去,肯定是沒法回復(fù)的,最終丟棄了,那么是不是真的只轉(zhuǎn)換TCP的流量呢?

可以把客戶端與服務(wù)器對換下位置,然后在來測試下。

確實TCP的流量直接被轉(zhuǎn)發(fā)了,但其他協(xié)議的流量是不會轉(zhuǎn)換的,所以端口映射的反向轉(zhuǎn)發(fā)流量取決于protocol定義的協(xié)議來決定能否轉(zhuǎn)發(fā),如果定義的TCP,那么在沒有配置源NAT策略的時候,只轉(zhuǎn)換TCP流量,所以這個時候如果內(nèi)網(wǎng)的服務(wù)器需要訪問外網(wǎng),建議單獨配置一個源NAT策略。

nat-policy

?rule?name?DMZ_untrust??source-zone?dmz??destination-zone?untrust??source-address?192.168.10.0?mask255.255.255.0??action?source-nat?easy-ip

這個時候能夠訪問了,但是注意的是這里轉(zhuǎn)換的是出接口的地址 202.100.1.11,而不是用的server-map反向直接轉(zhuǎn)換的。

如果公網(wǎng)地址就一個怎么辦呢?

在實際的場景中,很多時候公網(wǎng)地址只有一個,那么這一個就是會配置在接口上面,即提供源NAT功能,如果有需要對外提供服務(wù)的時候,還需要做NAT server,映射的方式是一樣的,但是這里博主講解幾個需要注意的地方。

(1)能用端口映射解決的就用端口映射,不要用一對一。

(2)如果端口號非常多,只能使用一對一的方式的話,會造成防火墻本身的管理訪問受影響,比如HTTPS、TELNET、SSH等,都會被映射轉(zhuǎn)換。

(3)如果對接外網(wǎng)的方式是PPPOE方式,是動態(tài)公網(wǎng)IP的話,需要關(guān)聯(lián)DDNS(主流的花生殼或者3322都可以),關(guān)聯(lián)后,映射配置不要使用WEB配置,用命令行配置,WEB會有一個非常坑的地方,WEB關(guān)聯(lián)的是地址,而不是接口,而PPPOE撥號的地址是會變化的,命令行是可以直接關(guān)聯(lián)接口的,這樣不管怎么變化都沒關(guān)系。(這個在后面實際案例中會詳細講解,這里先提及下)。

實際案例:假設(shè)有100個端口(10501-10600)需要映射,怎么辦?

如果是在UTM時代是不支持批量映射的以及在下一代防火墻早期版本也是不支持,到了后面版本(具體多少開始的查不到了),開始支持批量范圍的設(shè)置了,但是現(xiàn)實就沒這么美好,華為防火墻設(shè)備根據(jù)性能的不同,批量映射支持的范圍也不一樣

比如模擬器或者博主真機的6307E的低端系列測試的結(jié)果是一次性只能映射64個,超過64個提示映射的范圍太大,而且會發(fā)現(xiàn)這些系列 nat server的條目也差不多在64個左右,多了就不讓創(chuàng)建了,而性能好一些的創(chuàng)建范圍在200個都沒問題,但是在多就不行了,博主這里也沒法給一個具體值,只能自己實踐下測試或者是問華為的400。

一對一映射和端口映射如何選擇?

(1)如果公網(wǎng)IP就一個的情況下,能使用端口映射盡量使用端口映射

(2)一對一映射比較適合在映射端口號非常多,而公網(wǎng)IP有多個的情況下

(3)在實在沒辦法只能一對一映射的情況下安全策略盡量做到精細匹配,保證業(yè)務(wù)不受影響的情況下,盡可能的保障安全。

“承上啟下”

對于單一出口的場景,博主主要的內(nèi)容都介紹完畢了,在實際工作中可能客戶還存在這樣的情況,多出口(聯(lián)通、電信),這樣的場景下該如何去部署NAT server功能呢?答案下篇認真學(xué),可以解決這個疑問!~

總結(jié)

以上是生活随笔為你收集整理的NAT技术之NAT server的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。