第1章-網路位址轉譯簡介

文章推薦指數: 80 %
投票人數:10人

輸出流量規則會套用至封包:寄件者的(用戶端的) 位址會轉譯成NAT 路由器的公用IP 位址202.15.25.14,而傳送者(用戶端) 來源埠號碼會轉譯成公用介面上的TCP ... 跳到主要內容 已不再支援此瀏覽器。

請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。

下載MicrosoftEdge 其他資訊 目錄 結束焦點模式 閱讀英文 儲存 共用 Twitter LinkedIn Facebook 電子郵件 WeChat 目錄 閱讀英文 儲存 目錄 閱讀英文 儲存 Twitter LinkedIn Facebook 電子郵件 WeChat 目錄 第1章-網路位址轉譯簡介 發行項 03/09/2022 1位參與者 此頁面有所助益嗎? Yes No 還有其他意見反應嗎? 系統會將意見反應傳送給Microsoft:按下[提交]按鈕,您的意見反應將用來改善Microsoft產品和服務。

隱私權原則。

送出 謝謝。

本文內容 網路位址轉譯的需求 IP網路位址轉譯(NAT)最初開發用來解決有限的網際網路IPv4位址問題。

當有多個裝置需要存取網際網路,但網際網路服務提供者(ISP)只指派一個IPv4網際網路位址時,就需要有NAT。

也有其他使用NAT的優點。

本機網域以外的網路拓撲可能會以許多方式變更。

客戶可能會變更提供者、公司骨幹可能會重新組織,或提供者可能會合並或分割。

每當外部拓撲變更時,本機網域內主機的位址指派也必須變更,以反映這些外部變更。

您可以藉由將變更集中在單一位址轉譯路由器中,來隱藏此類型的變更。

NAT可讓本機主機存取公用網際網路,並防止它們直接從外部存取。

具有網路設定的組織主要是供內部使用,而且需要偶爾的外部存取,就是此配置的理想候選項目。

基本NAT和網路位址埠轉譯 在公用網路與私人網路之間安裝啟用NAT的路由器。

啟用NAT的路由器角色是在內部私人IPv4位址和指派的公用IPv4位址之間轉譯,因此私人網路上的所有裝置都可以共用相同的公用IPv4位址。

在NAT的基本執行中,NAT路由器「擁有」一或多個全域登錄IP位址與其自己的IP位址不同。

您可以使用靜態或動態方式將這些全域位址指派給其私人網路中的主機。

NAPT(或網路位址埠轉換)是基本NAT的變化,其中的網路位址轉譯會擴充以包含「傳輸」識別碼。

這通常是TCP和UDP封包的埠號碼,以及ICMP封包的查詢識別碼。

在NAT界限之間的連線通常是由私人網路上的主機起始,將輸出封包傳送至外部主機。

這些主機通常會為此用途指派動態(暫時性)IP位址。

但是,如果私人網路具有「伺服器」(例如,將接受來自外部網路的用戶端要求的HTTP或FTP伺服器),則也可能會以相反的方向起始連接。

NAT通常會將靜態(永久)IP位址:埠指派給這些本機主機。

網路位址轉譯的運作方式 [圖1]說明典型的網路設定,其中包含啟用NAT的路由器。

圖1-使用啟用NAT的路由器的一般網路設定 啟用NAT的路由器通常有兩個網路介面。

一個介面連接到公用網際網路;另一個則是連線到私人網路。

此安裝程式中的典型路由器會負責根據目的地IP位址,在私人網路與公用網路之間路由傳送IP資料包。

啟用NAT的路由器會在公用和私用介面之間路由傳送IPv4資料包之前,先執行位址轉譯。

根據內部來源位址、來源埠號碼和外部目的地位址和目的地埠號碼,為每個TCP或UDP會話建立轉譯。

針對ICMPecho要求和回應資料包,會使用ICMP查詢識別碼,而不是埠號碼。

為了說明典型的網路位址轉譯執行,請讓我們考慮[圖2]中的網路設定。

圖2-網路位址轉譯的一般執行 在此案例中,NAT路由器會將私人網路與左側連線,並將公用網路連接到右側。

假設在公用網路端,NAT路由器介面IP位址是202.151.25.14;在私人網路介面上,NAT路由器會使用IP位址192.168.1.254。

私人網路上的節點會起始與網際網路上的web伺服器的TCP連線。

[圖3]顯示網路位址轉譯程式的高階觀點。

圖3-網路位址轉譯程式的高層級觀點 用戶端會將TCPSYN訊息傳送至web伺服器。

寄件者位址是192.168.1.15,埠號碼6732;目的地位址是128.15.54.3,埠號碼80。

NAT路由器會在私人網路介面上接收來自用戶端的封包。

輸出流量規則會套用至封包:寄件者的(用戶端的)位址會轉譯成NAT路由器的公用IP位址202.15.25.14,而傳送者(用戶端)來源埠號碼會轉譯成公用介面上的TCP埠號碼2015。

然後封包會透過網際網路傳輸,最後到達其目的地主機128.15.54.3。

請注意,根據IP層來源位址和TCP層埠號碼,在接收端上的封包似乎來自202.151.24.14,埠號碼2015。

[圖4]顯示傳回路徑上的NAT處理常式。

圖4-傳回路徑上的NAT進程 在此案例中,網際網路主機128.15.54.3會以NAT路由器的網際網路位址作為目的地,傳送回應封包。

封包到達NAT路由器。

因為這是系結的封包,所以會套用系結轉譯規則:將目的地位址變更回原始寄件者的(用戶端的)IP位址:192.168.1.15,目的地埠號碼6732。

然後封包會透過連線到內部網路的介面轉送至用戶端。

如此一來,就不會對公用網際網路上的其他主機公開網際網路網路位址和寄件者的埠號碼。

NetX雙核NAT功能 使用nx_nat_create呼叫建立nat實例時,會建立nat轉譯表。

UINTnx_nat_create(NX_NAT_DEVICE*nat_ptr,NX_IP*ip_ptr, UINTglobal_interface_index, VOID*dynamic_cache_memory, UINTdynamic_cache_size); 若要追蹤本機和外部網路之間所有作用中連線的網路位址轉譯,NetX的已啟用NAT的路由器會維護轉譯表格,其中包含每個私人主機連線的相關資訊,包括來源和目的地IP位址和埠號碼。

此轉譯資料表的位置("cache")是使用dynamic_cache_memory指標所設定。

此區域必須是4位元組對齊的緩衝區空間。

資料表的大小(或專案數目)是藉由將快取大小dynamic_cache_size除以NAT資料表專案的大小來決定。

資料表必須夠大,才能滿足nx_nat.h中定義NX_NAT_MIN_ENTRY_COUNT所指定的最少專案數。

預設值為3。

NetX雙核NAT轉譯表中所有動態專案的超時時間會初始化為nx_nat中定義的NX_NAT_ENTRY_RESPONSE_TIMEOUT。

預設值為4分鐘(或240100mHz)處理器的系統刻度(如RFC2663所建議)。

每次NetX雙核NAT接收或傳送符合資料表中動態專案的封包時,它會重設該專案的時間以NX_NAT_ENTRY_RESPONSE_TIMEOUT。

搜尋資料表時,NetX雙核處理器也會檢查資料表中是否有過期的專案,並將其刪除。

若要在資料表中建立靜態輸入專案(例如,針對區域網路上的伺服器),NetX雙核NAT提供nx_nat_inbound_entry_create服務。

如果資料表專案將本機主機連接定義為靜態,則永遠不會過期。

UINTnx_nat_inbound_entry_create(NX_NAT_DEVICE*nat_ptr, NX_NAT_TRANSLATION_ENTRY*entry_ptr, ULONGlocal_ip_address,USHORTexternal_port, USHORTlocal_port,UCHARprotocol); 本服務將在第4章(服務的說明)中更詳細地說明 在執行時間期間,如果翻譯資料表已滿,且無法新增任何專案,則NetX的雙核NAT將會使用快取的完整回呼來通知NAT應用程式(如果已向NAT實例註冊一個)。

這是使用nx_nat_cache_notify_set服務完成的: UINTnx_nat_cache_notify_set(NX_NAT_DEVICE*nat_ptr, VOID(*cache_full_notify_cb)(NX_NAT_DEVICE*nat_ptr)); 如需此服務的詳細資訊,請參閱第4章-服務的描述。

NetX雙核中的NAT封包處理 NetX雙核處理器適用于IPv4路由器。

若要讓NAT運作,必須設定NetX雙核以將封包轉送到NAT伺服器。

請參閱NetX雙核NAT安裝的第2章,以瞭解如何進行。

然後,NAT伺服器會指出它是否會「取用」(嘗試將)封包轉送到其任何網路上的主機。

如果它不會取用封包,封包會「傳回」至NetX的雙核,以正常方式處理封包。

當NAT伺服器收到從NetX雙核轉送的封包時,它會判斷封包為輸入或輸出。

若為輸出封包,NAT伺服器會檢查封包IP標頭來源位址和埠。

如果轉譯資料表未包含先前由這個主機針對相同目的地傳送的封包專案,NAT將會建立新的專案,其中會包含連線的唯一全域來源IP位址:埠,並使用這個新的IP位址:埠來修改封包標頭,然後再將其傳送到外部網路。

若為輸入封包,NAT伺服器會在其轉譯資料表中尋找具有外部IP位址:埠符合封包目的地IP位址:埠的先前專案。

如果找不到相符項,則會捨棄封包,除非目的地位址:port是區域網路上伺服器的外部地址。

如果找不到相符的內容,則會以私人IP位址:埠取代封包標頭的外部目的地IP位址:埠,然後將封包傳送到目標專用主機的區域網路。

NetX雙核NAT使用一系列的TCP、UDP和ICMP轉譯埠來建立唯一的本機位址:連接外部主機之本機主機的埠連線。

下列使用者可設定的選項(定義于nx_nat.h中)會定義每個通訊協定的範圍: NX_NAT_START_TCP_PORT NX_NAT_END_TCP_PORT NX_NAT_START_UDP_PORT NX_NAT_END_UDP_PORT NX_NAT_START_ICMP_QUERY_ID NX_NAT_END_ICMP_QUERY_ID NAT需求和條件約束 NetX雙核NAT需要NetX的雙核5.8或更新版本。

NAT應用程式需要建立單一IP實例,以及內部與外部實體網路的介面。

約束: NetX雙核NAT支援TCP、UDP和ICMP。

不支援IGMP。

NetX雙核NAT不支援IPv6定址。

NetX雙核NAT不包含DNS或DHCP服務,不過NetX雙核NAT可以將這些服務與其NAT作業整合。

NetX雙核處理器NAT支援的Rfc NetX雙核NAT的執行是以下列Rfc提供的資訊為基礎: RFC2663:IP網路位址翻譯工具(NAT)術語和考慮 RFC3022:傳統IP網路位址翻譯工具(傳統NAT) RFC4787:網路位址轉譯(NAT)單播UDP的行為需求 本文內容



請為這篇文章評分?