NAT和路由器 基本概念


NAT(Network Address Translation, 網絡地址轉換)是1994年提出的。當在專用網內部的一些主機本來已經分配到了本地IP地址(即 僅在本專用網內使用的專用地址),但現在又想和因特網上的主機通信(並不需要加密)時,可使用NAT方法。

這種方法需要在專用網連接到因特網的路由器上安裝NAT軟件。裝有NAT軟件的路由器叫做NAT路由器,它至少有一個有效的外部全球IP 地址。這樣,所有使用本地地址的主機在和外界通信時,都要在NAT路由器上將其本地地址轉換成全球IP地址,才能和因特網連接。

NAT的實現方式有三種,即靜態轉換Static Nat、動態轉換Dynamic Nat 和端口多路復用OverLoad。

靜態轉換是指將內部網絡的私有IP地址轉換為公有IP地址,IP地址對是一對一的,是一成不變的,某個私有IP地址只轉換為某個公有IP地 址。借助於靜態轉換,可以實現外部網絡對內部網絡中某些特定設備(如服務器)的訪問。

動態轉換是指將內部網絡的私有IP地址轉換為公用IP地址時,IP地址是不確定的,是隨機的,所有被授權訪問上Internet的私有IP地址可 隨機轉換為任何指定的合法IP地址。也就是說,只要指定哪些內部地址可以進行轉換,以及用哪些合法地址作為外部地址時,就可以進行 動態轉換。動態轉換可以使用多個合法外部地址集。當ISP提供的合法IP地址略少於網絡內部的計算機數量時。可以采用動態轉換的方 式。

端口多路復用(Port address Translation,PAT)是指改變外出數據包的源端口並進行端口轉換,即端口地址轉換(PAT,Port Address Translation).采用端口多路復用方式。內部網絡的所有主機均可共享一個合法外部IP地址實現對Internet的訪問,從而可以最大限度地節 約IP地址資源。同時,又可隱藏網絡內部的所有主機,有效避免來自internet的攻擊。因此,目前網絡中應用最多的就是端口多路復用方 式。


NAT工作原理:

①如右圖這個 client(終端) 的 gateway (網關)設定為 NAT 主機,所以當要連上 Internet 的時候,該封包就會被送到 NAT 主機, 這個時候的封包 Header 之 source IP(源IP) 為 192.168.1.100 ;

②而透過這個 NAT 主機,它會將 client 的對外聯機封包的 source IP ( 192.168.1.100 ) 偽裝成 ppp0 ( 假設為撥接情況 )這個接口所具有 的公共 IP ,因為是公共 IP 了,所以這個封包就可以連上 Internet 了,同時 NAT 主機並且會記憶這個聯機的封包是由哪一個 ( 192.168.1.100 ) client 端傳送來的;

③由 Internet 傳送回來的封包,當然由 NAT主機來接收了,這個時候, NAT 主機會去查詢原本記錄的路由信息,並將目標 IP 由 ppp0 上面的公共 IP 改回原來的 192.168.1.100 ;

④最后則由 NAT 主機將該封包傳送給原先發送封包的 Client [2]  。


NAT 端口映射 外網需要訪問內網服務,可通過端口映射外網口實現
NAT穿透的方法

目前常用的針對UDP的NAT 穿透(NAT Traversal)方法主要有: STUN。 TURN。 ICE。 uPnP等。

其中ICE方式由於其結合合了STUN和TURN的特點,所以使用最為廣泛。

針對TCP的NAT 穿透技術目前仍為難點。實用的技術仍然不多。

NAT和NAT穿透的更詳細介紹,可參考:

http://blog.csdn.net/ustcgy/article/details/5652268

http://blog.csdn.net/ustcgy/article/details/5655050


路由器

要解釋路由器的概念,首先要介紹什么是路由。所謂“路由”,是指把數據從一個地方傳送到另一個地方的行為和動作,而路由器,正是 執行這種行為動作的機器,它的英文名稱為Router。
簡單的講,路由器主要有以下幾種功能:
第一,網絡互連,路由器支持各種局域網和廣域網接口,主要用於互連局域網和廣域網,實現不同網絡互相通信(靜態轉換NAT、動態轉 換NAT、端口多路復用PAT);
第二,數據處理,提供包括分組過濾、分組轉發、優先級、復用、加密、壓縮和防火牆等功能;
第三,網絡管理,路由器提供包括配置管理、性能管理、容錯管理和流量控制等功能。
為了完成“路由”的工作,在路由器中保存着各種傳輸路徑的相關數據--路由表(Routing Table),供路由選擇時使用。路由表中保 存着子網的標志信息、網上路由器的個數和下一個路由器的名字等內容。路由表可以是由系統管理員固定設置好的,也可以由系統動態修 改,可以由路由器自動調整,也可以由主機控制。在路由器中涉及到兩個有關地址的名字概念,那就是:靜態路由表和動態路由表。由系 統管理員事先設置好固定的路由表稱之為靜態(static)路由表,一般是在系統安裝時就根據網絡的配置情況預先設定的,它不會隨未來 網絡結構的改變而改變。動態(Dynamic)路由表是路由器根據網絡系統的運行情況而自動調整的路由表。路由器根據路由選擇協議 (Routing Protocol)提供的功能,自動學習和記憶網絡運行情況,在需要時自動計算數據傳輸的最佳路徑。
為了簡單地說明路由器的工作原理,現在我們假設有這樣一個簡單的網絡。如圖所示,A、B、C、D四個網絡通過路由器連接在一起。
現在我們來看一下在如圖所示網絡環境下路由器又是如何發揮其路由、數據轉發作用的。現假設網絡A中一個用戶A1要向C網絡中的C3用 戶發送一個請求信號時,信號傳遞的步驟如下:
第1步:用戶A1將目的用戶C3的地址C3,連同數據信息以數據幀的形式通過集線器或交換機以廣播的形式發送給同一網絡中的所有節點, 當路由器A5端口偵聽到這個地址后,分析得知所發目的節點不是本網段的,需要路由轉發,就把數據幀接收下來。
第2步:路由器A5端口接收到用戶A1的數據幀后,先從報頭中取出目的用戶C3的IP地址,並根據路由表計算出發往用戶C3的最佳路徑。 因為從分析得知到C3的網絡ID號與路由器的C5網絡ID號相同,所以由路由器的A5端口直接發向路由器的C5端口應是信號傳遞的最佳途 經。
第3步:路由器的C5端口再次取出目的用戶C3的IP地址,找出C3的IP地址中的主機ID號,如果在網絡中有交換機則可先發給交換機,由交 換機根據MAC地址表找出具體的網絡節點位置;如果沒有交換機設備則根據其IP地址中的主機ID直接把數據幀發送給用戶C3,這樣一個 完整的數據通信轉發過程也完成了。
從上面可以看出,不管網絡有多么復雜,路由器其實所作的工作就是這么幾步,所以整個路由器的工作原理基本都差不多。當然在實際的 網絡中還遠比上圖所示的要復雜許多,實際的步驟也不會像上述那么簡單,但總的過程是這樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM