網路位址轉換NAT原理及其作用

2022-07-30 04:57:13 字數 3458 閱讀 8564

本文過載至:

1 概述

1.1 簡介

nat英文全稱是「network address translation」,中文意思是「網路位址轉換」,它是乙個ietf(internet engineering task force, internet工程任務組)標準,允許乙個整體機構以乙個公用ip(internet protocol)位址出現在internet上。顧名思義,它是一種把內部私有網路位址(ip位址)翻譯成合法網路ip位址的技術。因此我們可以認為,nat在一定程度上,能夠有效的解決公網位址不足的問題。

1.2 分類

其中,網路位址埠轉換napt(network address port translation)則是把內部位址對映到外部網路的乙個ip位址的不同埠上。它可以將中小型的網路隱藏在乙個合法的ip位址後面。napt與 動態位址nat不同,它將內部連線對映到外部網路中的乙個單獨的ip位址上,同時在該位址上加上乙個由nat裝置選定的埠號。

napt是使用最普遍的一種轉換方式,在homegw中也主要使用該方式。它又包含兩種轉換方式:snat和dnat。

(1)源nat(source nat,snat):修改資料報的源位址。源nat改變第乙個資料報的**位址,它永遠會在資料報傳送到網路之前完成資料報偽裝就是一具snat的例子。

(2)目的nat(destination nat,dnat):修改資料報的目的位址。destination nat剛好與snat相反,它是改變第乙個資料懈的目的地位址,如平衡負載、埠**和透明**就是屬於dnat。

我們在沒有理解nat原理前當然理解不了上面所說的功能,我們先看下nat的原理。

2 原理

2.1 位址轉換

nat的基本工作原理是,當私有網主機和公共網主機通訊的ip包經過nat閘道器時,將ip包中的源ip或目的ip在私有ip和nat的公共ip之間進行轉換。

如下圖所示,nat閘道器有2個網路埠,其中公共網路埠的ip位址是統一分配的公共 ip,為202.20.65.5;私有網路埠的ip位址是保留位址,為192.168.1.1。私有網中的主機192.168.1.2向公共網中的主機202.20.65.4傳送了1個ip包(dst=202.20.65.4,src=192.168.1.2)。

當ip包經過nat閘道器時,nat gateway會將ip包的源ip轉換為nat gateway的公共ip並**到公共網,此時ip包(dst=202.20.65.4,src=202.20.65.5)中已經不含任何私有網ip的資訊。由於ip包的源ip已經被轉換成nat gateway的公共ip,web server發出的響應ip包(dst= 202.20.65.5,src=202.20.65.4)將被傳送到nat gateway。

這時,nat gateway會將ip包的目的ip轉換成私有網中主機的ip,然後將ip包(des=192.168.1.2,src=202.20.65.4)**到私有網。對於通訊雙方而言,這種位址的轉換過程是完全透明的。轉換示意圖如下。

如果內網主機發出的請求包未經過nat,那麼當web server收到請求包,回覆的響應包中的目的位址就是私網ip位址,在internet上無法正確送達,導致連線失敗。

2.2 連線跟蹤

在上述過程中,nat gateway在收到響應包後,就需要判斷將資料報**給誰。此時如果子網內僅有少量客戶機,可以用靜態nat手工指定;但如果內網有多台客戶機,並且各自訪問不同**,這時候就需要連線跟蹤(connection track)。如下圖所示:

在nat gateway收到客戶機發來的請求包後,做源位址轉換,並且將該連線記錄儲存下來,當nat gateway收到伺服器來的響應包後,查詢track table,確定**目標,做目的位址轉換,**給客戶機。

2.3 埠轉換

以上述客戶機訪問伺服器為例,當僅有一台客戶機訪問伺服器時,nat gateway只須更改資料報的源ip或目的ip即可正常通訊。但是如果client a和client b同時訪問web server,那麼當nat gateway收到響應包的時候,就無法判斷將資料報**給哪台客戶機,如下圖所示。

此時,nat gateway會在connection track中加入埠資訊加以區分。如果兩客戶機訪問同一伺服器的源埠不同,那麼在track table裡加入埠資訊即可區分,如果源埠正好相同,那麼在執行snat和dnat的同時對源埠也要做相應的轉換,如下圖所示。(這裡的理解灰常重要)

現在就可以理解nat協議的應用了吧。

3.nat協議的應用

nat主要可以實現以下幾個功能:資料報偽裝、平衡負載、埠**和透明**。

資料偽裝: 可以將內網資料報中的位址資訊更改成統一的對外位址資訊,不讓內網主機直接暴露在網際網路上,保證內網主機的安全。同時,該功能也常用來實現共享上網。

埠**: 當內網主機對外提供服務時,由於使用的是內部私有ip位址,外網無法直接訪問。因此,需要在閘道器上進行埠**,將特定服務的資料報**給內網主機。

負載平衡: 目的位址轉換nat可以重定向一些伺服器的連線到其他隨機選定的伺服器。(不是很明白)

失效終結: 目的位址轉換nat可以用來提供高可靠性的服務。如果乙個系統有一台通過路由器訪問的關鍵伺服器,一旦路由器檢測到該伺服器當機,它可以使用目的位址轉換nat透明的把連線轉移到乙個備份伺服器上。(如何轉移的?)

透明**: nat可以把連線到網際網路的http連線重定向到乙個指定的http**伺服器以快取資料和過濾請求。一些網際網路服務提供商就使用這種技術來減少頻寬的使用而不用讓他們的客戶配置他們的瀏覽器支援**連線。(如何重定向的?)

網路位址轉換 NAT

nat概述 網路位址轉換 nat 通過將內部網路的私有ip位址翻譯成全球唯一的公網ip位址,使內部網路可以連線到網際網路等外部網路上,廣泛應用於各型別的網際網路接入方式和各種型別的網路中。nat的實現方式有一下三種 靜態位址轉換 將內部網路的私有ip位址轉換為公有的合法的ip位址,ip位址的對應關係...

網路位址轉換NAT

一般來說每台主機都有乙個固定的ip位址用於表示自己在internet中的身份,但乙個單位只能分配到少量的公開ip位址,同時也為了安全而不向internet公開單位內部的位址,所以企業內部的主機通常都使用私有位址,當內部主機要訪問internet時,必須進行 網路位址轉換 即把私有ip位址轉換成公開i...

網路位址轉換NAT

概述 nat是將ip資料報文報頭中的ip位址轉換為另乙個ip位址的過程,主要用於實現內部網路 私有ip位址 訪問外部網路 公有ip位址 的功能。nat有三種型別 靜態nat 動態nat 網路位址埠轉換napt nat轉換裝置 實現nat功能的網路裝置 維護著位址轉換列表,所有經過nat轉換裝置並且需...