­

防火牆技術之—NAT(3)

                                     NAT地址轉換類型之我見

   談到NAT的類型其實很多時候都搞得很複雜,什麼靜態NAT,EASY IP,地址池方式,伺服器方式等等,但是其實明白了就說了兩件事,一種NAT解決了從內網到外網的訪問,這也是傳統的NAT,需要轉換源IP地址所以可以稱之為SNAT,另一種呢就是提供外網到內網的訪問,比如內部伺服器模式,這樣就需要向外部呈現外網IP,外網用戶發起連接後在NAT設備處進行DIP轉換,所以也被稱為DNAT。     SNAT:源地址轉換方式主要用於私網用戶訪問外網時,在NAT設備上將私網源IP地址裝換為公網源IP地址來訪問Internet。    然而SNAT其實按照具體的應用可以劃分的更加詳細:    1)靜態NAT:靜態IP既可用於私網用戶訪問公網用戶,也可以用於公網訪問私網。     a.靜態一對一NAT:也就是靜態指定單一的私網地址跟單一公網地址的映射。     b.靜態網段NAT:除了一對一靜態指定映射關係之外,還可以指定網段對網段的映射。    2)Easy ip方式:該種方式是將所有出介面的匹配ACL的數據包源IP均轉換為出介面的公網IP。    3)NAPT:其實單純的IP地址轉換NAT並不能真正的節省地址,因為歸根就地NAT還是一對一的關係,一個私網IP只能轉換為一個公網IP,而真正能夠節省IP地址的方式取決與NAPT,也就是可以轉換埠。不同的IP可以轉換為不同的埠來標識。    4)地址池方式:地址池方式的NAT一般提前定義一個公網地址池NAT ADDRESSS-GROUP,然後將源IP轉換為地址池中的選取到的公網IP地址。    DNAT:目的地址轉換方式主要用於公網用戶訪問私網伺服器,該種情況下公網用戶只知道私網伺服器的公網IP,所以想該公網IP地址發起連接,然後按照定義的DNAT地址規則進行轉換。    NAT的實現也是基於ACL的,ACL用於包分類,數據包經過NAT設備匹配ACL規則,如果匹配則按照提前定義的地址轉換規則進行轉換。但是可能有一些具體細節的東西需要進行說明。    問題一:NAT在系統中的位置及處理流程    答案:NAT處於TCP/IP的IP層底部。    問題二:ICMP協議PAT方式是如何實現的?    答案:TCP,UDP屬於傳輸層協議,存在埠資訊,所以PAT轉換的時候直接轉換埠既可,ICMP協議不存在埠資訊,所以轉換的時候就不能用PORT來標識不同的源主機。具體實現的時候往往利用了ICMP identification欄位進行轉換。    問題三:地址池中地址是怎麼進行選擇的?    答案:一般地址池中的地址轉換演算法一般有兩個:一個是輪詢方式,另一個是哈希演算法。NAT其實仍然是一對一的轉換,所以地址池中的地址都被佔用之後其他的所有的連接就因為分配不到資源而使得連接失敗。    問題四:配置NAT之後要不要配路由呢?    答案:NAT一般是屏蔽了路由,不需要配置路由就可以通訊,但是這種情況僅僅適用於轉換後的地址網段跟出介面IP是同一網段的情況,如果轉換後的IP跟介面IP處於不同網段那該怎麼辦呢?該種情況出介面轉換不存在任何的問題,問題會發生在返回的報文如何回來呢?因為不知道路由所以包將被丟棄,所以該種情況下就必須配置返回的路由保證返回的報文可以到達NAT設備。    問題五:NAT實現負載分擔的說明及簡單的配置?    答案:NAT負載分擔一般用於內部伺服器模式的,可以通過配置NAT SERVER的負載分擔選項實現,當然在配置的過程中還可以指定權值,這樣一來就可以實現NAT負載分擔了。    問題六:NAT對分片報文的處理?    答案:NAT對分片報文的處理首先需要搞清楚分片跟NAT的順序,肯定是先分片,每個分片報文都複製了一份跟首包相同的IP報頭,所以就可以直接交給NAT設備進行轉換就可以了。返回報文就必須先轉換後重組,這樣可能就有一個問題了,返回的報文不可能同時到達,此時就可能存在問題。    問題七:雙向NAT的實現?    答案:其實理解了前面講述的SANT和DNAT就可以完全通過配置實現雙向NAT,兩個私網用戶都通過NAT實現訪問,這樣在報文出方向配置SANT而在報文入方向配置DNAT就可以了。    問題八:NAT多實例?    答案:NAT多實例是MPLS的典型應用,所謂的多實例instance就是一個×××網路用一個instance id來標識,這樣就可以實現定義多實例的NAT轉換方式。    關於NAT的細節需要注意的地方很多,一時半會也難以說得明白,具體使用的時候碰到了在講吧。