假設(shè)現(xiàn)在企業(yè)內(nèi)部有文件服務(wù)器、OA服務(wù)器、郵件服務(wù)器等等。而企業(yè)還希望這些服務(wù)器能夠被外部網(wǎng)絡(luò)的用戶訪問。如企業(yè)可能在異地有一個銷售辦事處,或者有些員工經(jīng)常需要出差。為了方便他們的工作,就需要允許這些員工來訪問企業(yè)內(nèi)部的這些應(yīng)用服務(wù)器。但是現(xiàn)實情況是,大部分企業(yè)可能僅僅擁有一個到連個合法的IP地址。而需要讓外部用戶能夠訪問企業(yè)內(nèi)部的應(yīng)用服務(wù)器,首要的一個條件就是企業(yè)有足夠多數(shù)量的合法IP地址。筆者這里要給大家介紹的是,如何通過路由器自帶NAT功能,來實現(xiàn)一個合法IP地址同時綁定多臺應(yīng)用服務(wù)器。
一、選擇合適的NAT類型
NAT,又叫做網(wǎng)絡(luò)地址類型轉(zhuǎn)換,其主要有三種類型,分別為靜態(tài)NAT、動態(tài)NAT與端口地址映射。這里需要注意,這三種類型之間有很大的差異。網(wǎng)絡(luò)管理員在使用這個技術(shù)的時候,必須要了解它們之間的差異,然后結(jié)合企業(yè)的實際情況,選擇合適的實現(xiàn)手段。
第一種類型是靜態(tài)網(wǎng)絡(luò)地址轉(zhuǎn)換。其主要的特點是一對一。也就是說,這種類型的網(wǎng)絡(luò)地址轉(zhuǎn)換是為了在本地和全球地址之間進行一對一的映射而設(shè)計的。這就要求網(wǎng)絡(luò)中的每一臺主機都有用一個真實的合法的IP地址。結(jié)合上面這個案例,如果企業(yè)內(nèi)部三臺服務(wù)器都需要被外部用戶訪問的話,那么就需要至少三個IP地址。顯然這種方式并不能夠達到節(jié)省IP地址的目的。一般來說,靜態(tài)NAT主要的目的是為了隱藏企業(yè)內(nèi)部服務(wù)器的IP地址,以達到保護服務(wù)器的目的。
第二種類型是動態(tài)NAT。這種類型的網(wǎng)絡(luò)地址轉(zhuǎn)換是將一個企業(yè)內(nèi)部的IP地址與一個合法的IP地址進行映射。雖然這也是一對一的關(guān)系,但是與靜態(tài)NAT有很大的差別。前者要求企業(yè)內(nèi)部服務(wù)器也必須有一個公網(wǎng)IP地址。而動態(tài)NAT則沒有這個要求,即企業(yè)內(nèi)部的服務(wù)器可以采用內(nèi)部地址。不過此時一個公網(wǎng)IP地址也只能夠解決一臺內(nèi)部服務(wù)器的訪問問題。這與我們上面提到的需求還是有一定的差異。
第三種類型是端口地址映射。端口地址映射在動態(tài)NAT上又進了一步。簡單的說,其工作模式就是多對對一??梢詫⒍鄠€內(nèi)部IP地址(內(nèi)網(wǎng)地址)對應(yīng)到一個公網(wǎng)IP地址。具體的說,就是內(nèi)網(wǎng)地址+端口號與公網(wǎng)地址進行對應(yīng)。采用這個端口地址映射,那么企業(yè)網(wǎng)絡(luò)管理員就可以將企業(yè)內(nèi)部的應(yīng)用服務(wù)器(即使其不具有合法的公網(wǎng)地址)放置到外網(wǎng)上,供外網(wǎng)用戶訪問。
可見在實現(xiàn)NAT網(wǎng)絡(luò)地址轉(zhuǎn)換的過程中,了解這三種不同的工作模式,然后結(jié)合企業(yè)的實際情況,來選擇合適的實現(xiàn)方式,這是最關(guān)鍵的內(nèi)容。一般來說,如果企業(yè)有足夠多的公網(wǎng)地址,而只是出于安全考慮,要隱藏內(nèi)部服務(wù)其,則采用靜態(tài)的NAT為好。相反,如果企業(yè)有多臺服務(wù)器,而合法的IP地址又不夠用。在這種情況下,就需要采用端口地址映射,將多個內(nèi)部IP地址通過端口這個參數(shù)對應(yīng)到公網(wǎng)IP地址。
二、端口NAT的配置
對于NAT技術(shù)來說,其實配置是其中最簡單的一個環(huán)節(jié)。筆者一般將NAT分為四個部分,分別是設(shè)計、配置、驗證和排錯。其中設(shè)計的關(guān)鍵就是上面提到的“選擇合適的NAT類型”。而配置就是具體實現(xiàn)的配置。這里主要用的命令是IP NAT 相關(guān)的命令。其主要的工作就是將內(nèi)部服務(wù)器所采用的地址與端口號與公網(wǎng)地址進行映射。由于配置相對來說比較簡單,為此筆者不做過多說明。筆者要將重點放在后續(xù)的驗證和排錯環(huán)節(jié)上。
三、NAT配置的驗證
NAT網(wǎng)絡(luò)地址轉(zhuǎn)換配置好之后,需要對相關(guān)的配置進行驗證。而不是等到用戶來反映問題,無法正常訪問時,你再去驗證。在思科網(wǎng)絡(luò)環(huán)境中,要驗證NAT配置的有效性,主要用到了兩個命令。
一是查看相關(guān)的配置信息。在查看消息的時候,重要是弄清楚方向。即哪些是內(nèi)部主機,哪些是外部主機。有時候可能一組內(nèi)部IP地址會對應(yīng)一個公網(wǎng)IP地址,此時網(wǎng)絡(luò)管理員就會看到許多轉(zhuǎn)換是從不同的主機到相同目的主機之間的轉(zhuǎn)換。在端口地址轉(zhuǎn)換的模式下,可以根據(jù)IP地址的類型來判斷。一般情況下,企業(yè)內(nèi)部服務(wù)器采用的IP地址都是私網(wǎng)IP地址,如192開頭的。如果要查看具體的配置信息,可以使用下面這個命令。
Show ip nat translation
二是判斷其連通性。也就是說,這個配置是否真的有效。此時網(wǎng)絡(luò)管理員可以采用debug ip nat命令來驗證NAT的配置。使用這個命令后,在輸出結(jié)果中會顯示發(fā)送端的IP地址、轉(zhuǎn)換目的地址、端口信息等內(nèi)容。
通過這兩個命令,可以基本判斷NAT的配置是否有問題。不過需要注意的是,這只能夠判斷出其配置是否有問題。而對于這個配置是否合理、在性能上是否需要優(yōu)化等等不能夠提供有效的信息。
四、NAT故障的分析與排除
在這一塊內(nèi)容中筆者又將其分為兩部分。一部份是NAT本身的配置問題,另外一部分是NAT技術(shù)以外的問題導(dǎo)致的NAT應(yīng)用故障。在實際工作中,我們可能更加的關(guān)注與后者。因為只要一開始NAT設(shè)計與配置合適,那么NAT本身不會出現(xiàn)多大的問題。
對于NAT本身的配置問題,筆者認為網(wǎng)絡(luò)管理員只要注意以下五個規(guī)則。只要這個五個規(guī)則沒有問題,那么NAT本身的配置就是OK的。這個五個規(guī)則如下:
一是訪問列表相關(guān)。在配置時需要確保訪問列表指定了正確的轉(zhuǎn)換地址。注意這個非常的重要。因為這個錯誤在后續(xù)排查中比較難發(fā)現(xiàn)。所以在設(shè)置時就需要采取相關(guān)的控制措施,來確保其能夠被合理的配置。
二是檢查內(nèi)部和外部的接口是否被正確的定義。其實NAT技術(shù)說到底,就是接口與接口之間的對接。如果接口對接時出現(xiàn)錯誤,那么信息流就無法正常流程。此時用戶就會無法正常訪問。這個接口定義中,關(guān)鍵的是端口參數(shù)是否有問題。如內(nèi)部服務(wù)器使用的端口是5150端口,而配置時不小心輸入了515端口。此時就會有問題。另外一個需要注意的是,一般某個協(xié)議都會有默認端口,如FTP協(xié)議采用的是20與21端口。但是有時候出于安全考慮,網(wǎng)絡(luò)管理員往往會更改這個默認端口。此時就需要額外的檢查這個端口信息是否設(shè)置正確。
三是地址池。在檢查這個地址池的時候,網(wǎng)絡(luò)管理員主要要關(guān)注兩方面的內(nèi)容。一是動態(tài)地址池采用的IP第四行是否是由正確的地址范圍所構(gòu)成的。二是需要檢查動態(tài)地址池中的地址是否有重復(fù)。只要以上兩條規(guī)則中一條規(guī)則出現(xiàn)問題,那么就有可能出現(xiàn)訪問故障。
四是需要注意不同類型之間是否有沖突。如企業(yè)可能出于某種考慮,要同時啟用動態(tài)端口地址映射和靜態(tài)映射。此時就需要特別注意,被用來靜態(tài)映射的地址與動態(tài)地址池中的地址不能夠有重復(fù)。否則的話,就會導(dǎo)致比較嚴(yán)重的沖突。
五是需要注意確認列表中該出現(xiàn)的地址沒有遺漏,不該出現(xiàn)大地址沒有被加入。這個原則可以說是對以上四個原則的一個總結(jié)。簡單的說,就是要保證相關(guān)IP地址的完整性與準(zhǔn)確性。少一個不行,多一個更不行。
通常情況下,在NAT配置中只要不違背以上任何一個規(guī)則,那么NAT本身的配置就沒有問題。此時如果用戶還無法正常訪問企業(yè)內(nèi)部的應(yīng)用服務(wù)器,那么就需要考慮其他的原因。如路由問題等等。