NAT(地址翻譯)的相關概念及其工作原理

IP地址耗盡促成了CIDR的開發,但CIDR開發的主要目的是爲了有效的使用現有的internet地址。而同時根據RFC 1631IP Network Address Translator)開發的NAT卻可以在多重的internet子網中使用相同的IP,用來減少註冊IP地址的使用。
NAT技術使得一個私有網絡可以通過internet註冊IP連接到外部世界,位於inside網絡和outside網絡中的NAT路由器在發送數據包之前,負責把內部IP翻譯成外部合法地址。內部網絡的主機不可能同時於外部網絡通信,所以只有一部分內部地址需要翻譯。
  NAT的翻譯可以採取靜態翻譯(static translation)和動態翻譯(dynamic translation)兩種。靜態翻譯將內部地址和外部地址一對一對應。當NAT需要確認哪個地址需要翻譯,翻譯時採用哪個地址pool時,就使用了動態翻譯。採用portmultiplexing技術,或改變外出數據的源port技術可以將多個內部IP地址影射到同一個外部地址,這就是PATport address translator)。
  當影射一個外部IP到內部地址時,可以利用TCPload distribution技術。使用這個特徵時,內部主機基於round-robin機制,將外部進來的新連接定向到不同的主機上去。注意:load distributiong只有在影射外部地址到內部的時候纔有效。
  NAT使用的幾種情況:
  a,連接到internet,但卻沒有足夠的合法地址分配給內部主機。
  b,更改到一個需要重新分配地址的ISP
  c,有相同的IP地址的兩個internat合併。
  d,想支持負載均衡(主機)。
  採用NAT後,一個最主要的改變就是你失去了端對端IPtraceability,也就是說,從此你不能再經過NAT使用pingtraceroute,其次就是曾經的一些IPIP的程序不再可以正常運行,潛在的不易被觀察到的缺點就是增加了網絡延時。
  NAT可以支持大部分IP協議,但有幾個協議需要注意,首先tftprlogin,rsh,rcpipmulticast都被NAT支持,其次就是bootpsnmp和路由表更新全部給拒絕了。
  NAT的幾個相關概念:
  Inside Local IP address: 指定於內部網絡的主機地址,全局唯一,但爲私有地址。
  Inside Global IP address: 代表一個或更多內部IP到外部世界的合法IP
  Outside Global IP address: 外部網絡主機的合法IP
  Outside Local IP address: 外部網絡的主機地址,看起來是內部網絡的,私有地址。
  Simple Translation Entry: 影射IP到另一個地址的Entry
  Extended Translation Entry:影射IP地址和端口到另一個pairEntry
採用NAT,可以實現以下幾個功能:
  aTranslation inside local addresses
  bOverloading inside global addresses
  cTCP load distribution
  dHanding overlapping networks
  下面我們一一敘述它們的工作原理。
a,內部地址翻譯(Translation inside local addresses)
  這是比較通用的一種方法,將內部IP一對一的翻譯成外部地址。
  在內部主機連接到外部網絡時,當第一個數據包到達NAT路由器時,router檢查它的NAT表,因爲是NAT是靜態配置的,故可以查詢出來(simply entry),然後router將數據包的內部局部IP(源地址)更換成內部全局地址,再轉發出去。外部主機接受到數據包用接受到的內部全局地址來響應,NAT接受到外部回來的數據包,再根據NAT表把地址翻譯成內部局部IP,轉發過去。
  b,內部全局地址複用(overloading inside glogal addresses
  使用地址和端口pair將多個內部地址影射到比較少的外部地址。這也是所謂的PAT。和內部地址翻譯一樣,NAT router同樣也負責查表和翻譯內部IP地址,唯一的區別就是由於使用了overloadingrouter將複用同樣的內部全局IP地址,並存儲足夠的信息以區分它和其他地址,這樣查詢出來的是extended entryNAT router和外部主機的通訊採用翻譯過的內部全局地址,故同一般的通信沒有差別,router到內部主機通訊時,同樣要查NAT表。
  cTCP負載重分配(TCP load distributing)和以上兩種操作不同,這是NAT由外到內的翻譯,所以那種以爲WEB server一定要放置到
  NAT外部的說法是錯誤的。
  工作原理:外部主機向虛擬主機(定義爲內部全局地址)通訊,NAT router接受外部主機的請求並依據NAT表建立與內部主機的連接,把內部全局地址(目的地址)翻譯成內部局部地址,並轉發數據包到內部主機,內部主機接受包並作出響應。NAT router再使用內部局部地址和端口查詢數據表,根據查詢到的外部地址和端口做出響應。
  此時,如果同一主機再做第二個連接,NAT router將根據NAT表將建立與另一虛擬主機的連接,並轉發數據。
  d,處理重疊網絡。
  這種方法主要用於兩個intranet的互連,同樣給我們處理兩個重疊網絡提供了方法。它的實現要求DNS server的支持(用於區別兩個不同的主機)。
  1,主機A要求向主機C建立連接,先象DNS server做地址查詢。
  2NAT router截獲DNS的響應,如果地址有重疊,將翻譯返回的地址。它將創建一個simply entry把重疊的外部全局地址(目的地址)翻譯成外部局部地址。
  3,路由器轉發DNS響應到主機A,它已經把主機C的地址(外部全局地址)翻譯成外部局部地址。
  4,當路由器接受到主機C的數據包時,它將建立內部局部、全局,外部全局、局部地址間的轉換,主機A將由內部局部地址(源地址)翻譯成內部全局地址,主機C將由外部全局地址(目的地址)翻譯成外部局部地址。
  5,主機C接受數據包並繼續通訊。
  NAT的具體配置和校驗不再敘述
  測試題目:
  1,請問NAT實現四種功能時查詢的NAT表格是否相同,如果不同,說出它們的區別。
  2,在使用動態地址翻譯時,要使用ACL,請問標準的和擴展的ACL都可以使用嗎?
  3,在配置NAT後,所有數據包的交換可以走fast-switch嗎?
  4,如果NAT router沒有在NAT表格中查詢到NAT地址影射,它如何處理髮自內部主機的數據包?
  5NAT操作時,由外到內和由外到內的翻譯是否相同?
  6,我們是否可以將我們的WEB SERVER放置到配置了NATrouter後的LAN裏?
  7,使用simply entry的是NAT的哪種操作方式?
  8,在哪種操作中更換IP數據包的目的地址,又在實現什麼功能時更改源地址? 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章