有關使用網路位址轉換器的一些問題

2021-03-31 08:57:00 字數 3692 閱讀 7159

發布日期: 2023年10月01日

簡介nat 操作

nat 與安全

有關在 nat 後方使用伺服器的一些問題

總結更多資訊

網路位址轉換器 (nat) 允許專用網路上的計算機訪問 inter*** 資源,而不會被其他計算機從 inter*** 上直接對其進行訪問。nat 支援在專用網路上重複使用 ipv4 專用位址空間 (10.0.0.0/8、172.16.0.0/12、192.168.0.0/16),減輕了每個需要訪問 inter*** 資源的節點都需要乙個 ipv4 公用位址的壓力。雖然這是使用 nat 的乙個顯著優勢,但是實現這種能力並不是沒有代價的。

最初,inter*** 是針對全域性唯一的位址空間而設計的。所有連線到 inter*** 的介面都擁有乙個基於該介面所連線的子網的唯一位址。不管子網在直接連線到 inter*** 的專用網路上如何進行分組,總可以通過全域性唯一位址對相應的介面進行訪問。

同時使用 nat 和專用位址空間違反了全域性唯一位址空間的原則。每個經過 nat 處理的網路都重複使用專用位址空間。這表示連線到不同網路的多個介面可以擁有相同的位址。雖然無法從 inter*** 上看到這些擁有專用位址的網路,,但是它們相互間可能是可見的,而且將多個專用網路組合成單個網路會造成位址衝突(具有相同位址字首或不明確路由表項的多個子網)。

例如,公司 a 對其內部網路使用 10.0.0.0/8 專用位址空間。公司 b 也使用了 10.0.0.0/8 專用位址空間。當公司 a 和公司 b 合併時,他們之間發生位址衝突的機率會很高。合併後的公司必須對部分已組合的網路進行重新編號,這是乙個既費錢又費時的過程。雖然對大多數基於主機的 ip 節點使用動態主機配置協議 (dhcp) 會有所幫助,但是必須手動對靜態配置的節點(比如:伺服器)進行重新配置,並且必須重新設計路由基礎結構。

返回頁首

如windows 2000 網路位址轉換器 (nat)

•對於傳出的資料報,nat 將專用源位址更改為公用源位址,並將源傳輸控制協議 (tcp) 或使用者資料報協議 (udp) 埠號更改為乙個特定於 nat 的值。對於傳入的資料報,nat 將目標公用位址更改為初始專用位址,並將目標 tcp 或 udp 埠號更改為其原始值。

nat 上的轉換錶可使公用和專用位址與 tcp/udp 埠號間的對映變得更容易。nat 會丟棄所有不是傳輸到 nat 所指派位址(與轉換表中的項不匹配)的傳入流量。

當位於 nat 後方的計算機——連線到被 nat 從 inter*** 隔離的子網——對 inter*** 上的節點發起通訊,nat 會自動建立適當的轉換表項,以便將相應流量**到發起通訊的計算機上。瀏覽 web 的 inter*** 客戶端就是乙個例子。客戶端計算機所發起的網域名稱系統 (dns) 超文字傳輸協議 (http) 流量會自動建立轉換表項,有效地允許該客戶端計算機訪問 inter*** 資源,而不必建立到 inter*** 的直接連線。因此,經過 nat 處理的客戶端計算機通常可以訪問伺服器計算機(可在 inter*** 上直接對其進行訪問),同時不會遇到任何問題。

為了可以從 inter*** 訪問位於 nat 之後的伺服器計算機,必須通過靜態轉換表項配置 nat。具體示例,請參見訪問網路位址轉換器 (nat) 後方的服務時的配置

(於 2003 年 5 月發布的 cable guy 文章)

返回頁首

由於 nat 會拋棄所有與轉換表項不相匹配的流量,因此被認為是一種安全裝置。但是,nat 並不能替代防火牆。通常,nat 上會開啟兩組 tcp 和 udp 埠:

•一組是與已轉換的流量(由轉換表指定)相對應的埠。其中包括由位於 nat 之後的客戶端開啟的動態埠,以及針對位於 nat 之後的伺服器配置的靜態埠。

•另一組是與在 nat 上執行的應用程式和服務相對應的埠。

位於 nat 之後的伺服器的靜態埠以及在 nat 上執行的應用程式和服務的埠使得 nat 易受攻擊。動態埠並不易受攻擊,因為攻擊者很難**這類埠將在何時開啟。如果 nat 是一台計算機,而不是一台專用裝置(比如:inter*** 閘道器裝置),那麼此計算機易受攻擊。

所以,建議結合防火牆使用 nat,而且專用網路客戶端還應使用基於主機的防火牆來防止惡意軟體在專用網路上進行擴散傳播。

返回頁首

如本文前面所介紹的,經過 nat 處理的客戶端計算機在訪問與 inter*** 連線的伺服器計算機時,一般不會遇到問題。然而,在下列情況中,當伺服器位於 nat 之後時,就會發生一些問題:

•多方應用程式

•對等應用程式

•ipsec nat-t

多方應用程式是多台計算機同意通過一台**伺服器為實現特定目的而進行相互通訊的應用程式。例如:協同計算應用程式或多方網路遊戲。當**伺服器以及部分客戶端位於 nat 之後時,使用專用位址會產生一些配置問題。

例如,有一台協同計算伺服器和一些客戶端位於相同的 nat 之後,而又有一些客戶端位於 inter*** 上。因為在 nat 之後使用了專用位址空間,又由於伺服器位於 nat 後方,所以必須配置以下專案:

•將 nat 的公用位址和伺服器應用程式的埠號對映到伺服器的專用位址和伺服器應用程式的埠號的靜態轉換表項。

•為了讓與 inter*** 連線的客戶端使用自己的 dns 名稱訪問伺服器,必須對 inter*** dns 新增條目,以便可以將伺服器名稱解析為 nat 的公用位址(例如:collabsrv.example.***)。

•為了讓與 inter*** 連線的專用客戶端使用自己的 dns 名稱訪問伺服器,必須對專用網路 dns 新增條目,以便可以將伺服器名稱解析為伺服器的專用位址。

如果從客戶端計算機發起連線時使用伺服器的實際公用或專用位址,那麼就不需要 dns 配置。然而,對於終端使用者來說,使用 ipv4 位址連線伺服器並不方便,而且必須確保告知 inter*** 客戶端使用公用位址,並告知位於 nat 之後的客戶端使用專用位址。

即便有了整個配置,位於 nat 之後的客戶端以及與 inter*** 連線的客戶端在伺服器的 ipv4 位址上也無法達成一致。如果協同計算應用程式基於配置、同步或安全目的,必須對伺服器使用乙個常見的 ipv4 位址,那麼仍然會發生通訊問題。

nat 的另外乙個問題是對對等應用程式的影響。在對等通訊模型中,對等方既可以充當客戶端,也可以充當伺服器,並可以通過相互間直接傳送資料報進行通訊。如果有一方位於 nat 之後,那麼就有兩個位址與之相關聯:專用位址和公用位址。讓我們來看乙個簡單的配置,nat 會在其中給對等應用程式帶來問題。下圖顯示了乙個在其邊緣擁有 nat 的專用網路。

返回頁首

nat 只是延長 ipv4 公用位址空間使用壽命的權宜之計,而不是該問題的長久解決之道。在對客戶端計算機重複使用專用位址空間方面,nat 能夠發揮其最大的作用。多數伺服器計算機仍然需要明確的公用位址。對等通訊中的對等方可以被放置在 nat 之後,但是在一般應用中(當有多個對等方位於單個 nat 之後或被多個 nat 隔離開來時),必須修改對等應用程式,使之支援 nat。伺服器可以置於 nat 之後;但是,必須通過靜態轉換表項手動配置 nat,以便對伺服器的專用位址和埠轉換入站連線請求資料報。對於 ipsec nat-t,此靜態轉換表項會在特定的配置中導致一些意外的結果。

返回頁首

•對位於網路位址轉換器 (nat) 後方的服務進行訪問配置

(於 2003 年 5 月發布的 cable guy 文章)

•ipsec nat 穿越概述

(於 2002 年 8 月發布的 cable guy 文章)

•不推薦對位於網路位址轉換器之後的 windows server 2003 計算機使用 ipsec nat-t

•windows xp service pack 2 中 ipsec nat 穿越 (nat-t) 的預設行為發生了變化

有關Git的一些使用

1 git官網介紹 2 總結一些常用的git命令 說明操作 分支建立 git branch develop 分支切換 git checkout develop 分支建立並切換 git checkout b develop 建立遠端分支 git push origin develop 檢視每一分支的最...

有關網路程式設計的一些面試

1,首先說明socket是什麼?我們知道 資訊的互動需要涉及到tcp的四層模型 socket 可以看作使用者程序和核心網路協議棧程式設計 互動 介面 socket 不僅可以在同一臺主機上進行通訊,也可以在網路上不同的主機間進行通訊,也可以異構 軟硬體平台不同 進行通訊 手機qq和pc機上的qq進行通...

Powershell 網路請求的一些常見問題

error the request was aborted could not create ssl tls secure channel.參考了powershell invoke webrequest fails with ssl tls secure channel 和powershell co...