太多網工對NAT還存在這4種誤解!你是其中一個嗎?
NAT是解決公網地址不夠用大家最熟悉的網絡技術之一,而NAT最依賴的是NAT translation表項,至于NAT的概念和背景這里不再解釋,網絡上有很多關于此的類似介紹,自己搜索即可。下面主要是針對大家對NAT的一些誤解進行分析。
1
?誤解一:inside和outside
大家常規(guī)的理解可能認為inside就是指私網;outside就是公網。
正解一
inside和outside是在接口上用戶自己定義的,只不過我們習慣于在路由器的內部接口定義inside;外部接口定義outside。
?
2
誤解二:source和destination
大家在配置IP NAT的時候可能會用如下命令:ip nat inside source static/route-map/acl ? interface/pool。有些人對命令中的source的理解可能表示要轉換哪些源,源可以是static地址,掛ACL或者route-map的匹配地址。destination有些人可能認為是source要轉換成的地址,可以是pool或者interface(overload)。
正解二
其實NAT中的source和destination是用來表示要進行轉換的IP地址的源地址還是目的地址的。source表示對NAT轉換的IP數據包的源地址進行轉換;同理,destination表示對NAT轉換的IP數據包的目的地址進行轉換。?
3
誤解三:static和dynamic
有些人認為靜態(tài)轉換就是一對一的轉換;動態(tài)轉換就是多對一的轉換。
正解三
根據NAT表項的建立原因我們把NAT分為靜態(tài)和動態(tài)。static在內存中的轉換表項一直存在,不管有沒有數據包經過;動態(tài)表示只有數據包經過的時候才會在內存上建立表項??梢院唵螝w納為:動態(tài)NAT解決的是從內到外發(fā)起的訪問,之后在內存中形成表項,這樣回包就沒問題了;靜態(tài)NAT解決的是從外到內的訪問,轉換表一旦建立一直保存。根據有沒有利用端口復用技術(多IP/單IP),再結合靜態(tài)和動態(tài)就有下面四種組合:
動態(tài)一對一:從內部發(fā)起的流量,一個內部IP地址都有一個對應的公網IP地址表項對其進行替換轉換。(現實環(huán)境用得不多,因為NAT本身就是解決公網IP地址不夠用的問題而設計的,實際應用場景沒有那么多的公網IP地址可以提供轉換)
動態(tài)多對一:也就是我們所說的動態(tài)PAT,用高位隨機端口號+同一公網IP地址來解決一個公網地址無法和內網多個私有地址一一映射的問題。表示從內部發(fā)起的流量,每個內部IP地址都用同一個公網IP地址+端口號對其IP數據包源地址進行一一轉換。(目前解決內網上網問題的最常用手段)
靜態(tài)一對一:從外到內發(fā)起的流量,一個公網IP對應一個內網IP。(常用于internet到內部特定IP地址的全端口訪問)。
靜態(tài)端口轉換:在實際運用環(huán)境中經常被用來打通或者發(fā)布特定服務以便在internet上可以訪問到內部服務器的特定端口。
4
誤解四:搞不清inside local/inside global和outside local/outside global之間的關系
?
正解四
不用記得那么復雜,只要了解轉換一定是發(fā)生在local和global之間即可,此外,local和global的區(qū)別在于,local是一個在本地可路由的地址;global是一個在internet可路由的地址。同時記住,轉換一定發(fā)生在同一邊,也就是要么就在inside轉換;要么就在outside進行轉換,也就是說不可能出現inside local和outside global互轉的情況。
注意:
動態(tài)轉換項在內存上的表現只有數據包進行了NAT轉換時才會出現;而靜態(tài)轉換項,只要一旦配置就一直停留在內存里,盡管使用命令clear ip nat translation *。