Session Traversal Utilities for NAT Traversal Using Relay NAT 資料傳輸協定 Cisco STUN TURN TCP UDP 網路 IP 路由

明辨STUN/TURN協定 輕鬆跨越NAT建立連線

2017-05-12
先了解何謂靜態NAT轉換及動態NAT轉換,然後明瞭STUN協定與NAT的關聯,STUN協定如何運作,以及NAT資料傳輸有那些限制,並認識TURN協定,應該就可以懂得STUN協定與TURN協定的來龍去脈以及使用時機。

接著來看看圖1這個範例,假設有一台Cisco路由器同時連接網際網路以及內部網路,在這個網路示意圖中,右邊就是網際網路,也就是Global,左邊則是內部網路,亦即Local,而NAT對應表如表2所示。


▲圖1 網路範例示意圖。

表2 NAT對應表

以上就是一個簡單的NAT應用範例,因為這裡將外部公有IP位址以及內部私有IP位址做一對一的對應,所以這種NAT是屬於靜態NAT方式。

NAT有那些好處

到目前為止,已經可以簡單地整理出NAT技術的好處有以下幾項:

1. NAT技術可以事先把公有IP位址與私有IP位址做好對應,這樣一來,當內部網路的電腦想存取網際網路時,就可以直接從對應表中取出對應的公有IP位址並拿來使用,這樣的作法可以節省一定程度的時間。

2. 也因為可以做出對應表,而且加上剛剛介紹過的Overlapping方式,將能夠節省公有IP位址的使用量,只要申請少數的公有IP位址就可以讓大量的內部網路電腦上網。

3. 因為私有IP位址是不會流傳到外部網際網路,而是使用公有IP位址,而外部網際網路的電腦也比較難知道內部網路各台電腦的IP位址,因此NAT技術能夠提供一定程度的安全性。

了解IP位址的轉換過程

先用下面的例子來說明NAT是如何做到內部私有IP位址與外部公有IP位址的轉換。假設網路架構示意圖如圖2所示,中間是一台Cisco路由器設備,同時連接內部網路和網際網路,右邊是網際網路,右下方是網際網路內的其中一台電腦,其IP為140.115.3.1,而左邊是內部網路,分別有個人電腦、伺服器以及PDA各一台,各使用192.168.0.1、192.168.0.2以及192.168.0.3這三個私有IP位址。另外,NAT技術將內部IP與外部的IP位址對應,設定內容如表3所示。


▲圖2 網路範例示意圖。

表3 內部IP與外部IP對應表

現在,假設伺服器(192.168.02)要傳送網路封包給外面那台電腦(140.115.3.1),其步驟如下所述。

一開始,伺服器會傳送封包給Cisco路由器設備,此時網路封包的來源端IP位址為192.168.0.2,到目前為止還是使用內部的私有IP位址,而目的地IP位址是140.115.3.1。

接著,Cisco路由器設備收到這個網路封包,現在要轉送網路封包前往目的地位址140.115.3.1,但由於網路封包內的來源端IP位址依然是私有IP位址,這樣的IP位址是不允許在網際網路中所使用,不然的話,目的端電腦就沒有辦法回應封包給原本的來源端電腦。因此,Cisco路由器設備必須從對應表中取出192.168.0.2這個Inside Local位址所對應的Inside Global位址,也就是171.69.0.42,並取代網路封包中的來源端IP位址,再把封包送往目的地。此時,網路封包裡面的來源端IP位址是171.69.0.42。

目的端電腦收到這個網路封包後,假若需要回傳資料給原本的伺服器,則這台目的端電腦會取出網路封包中的來源端IP位址,也就是171.69.0.42,然後把這個公有IP位址當作目的端IP位址來傳送網路封包。此時,網路封包中的來源端IP位址當然就是140.115.3.1自己這台電腦的位址。

接著,這個網路封包會被中間這台Cisco路由器設備收到,並發現封包內的目的端IP位址是171.69.0.42,為了將封包送到正確的目的地,Cisco路由器設備會到NAT位址對應表中取出171.69.0.42這個Inside Global位址所對應的Inside Local位址,也就是192.168.0.2,並用這個位址當作網路封包中的目的端IP位址,如此一來,網路封包才能正確無誤地傳送到伺服器。

以上就是NAT技術的應用過程,當然NAT技術會去更改網路封包中的內容,不過只會更改來源端IP位址和目的端IP位址,其實網路封包中原本就會被修改的東西還是會被修改,例如TTL(Time to Live)值。

檢視NAT設定值的方法

了解如何設定NAT技術相關設定後,最重要的莫過於如何檢視NAT設定。因此,接下來開始介紹檢視NAT設定值的方法。這裡會示範如何清除NAT位址轉換對應表,以及怎樣顯示NAT位址轉換對應表的資料。

清除NAT位址轉換對應表

前面提到,NAT技術就是幫忙做公有IP位址與私有IP位址之間的轉換動作,讓使用私有IP位址的電腦也能夠方便地存取外面的網際網路。而這種位址的轉換對應,會儲存在NAT位址轉換對應表內。若要清除這樣的位址對應表,可透過下列這個指令來完成:


前面提過,常用的NAT運行方式有靜態NAT、動態NAT以及Overlapping三種,而上面這個指令可以清除所有動態對應的NAT位址轉換關係。如果只是要移除某一個動態NAT的位址對應關係,則執行以下的指令:


上面這個指令可以指定特定一個Inside的轉換對應關係,若要同時指定Inside及Outside的位址轉換對應關係,可以使用下面的指令:


若是想移除特定一筆包含Outside的位址轉換對應關係,則執行下列指令:


要注意的是,這裡的位址指定順序是Local位址在前面,Global位址在後面,這裡的順序與上一個指令剛好是相反的。

以上就是要刪除NAT位址轉換表中資料的指令,不過,事實上NAT位址轉換表中的資料預設是會自動逾時而被刪除的,如果是NAT相關設定的話,則資料存在於NAT位址轉換表中二十四小時以後,就會自動被刪除,除非重新設定這筆資料。而剛剛所說的所有移除指令是用來當這些資料還沒有逾時的時候,從NAT位址轉換表中移除。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!