NAT 位址翻譯 的相關概念及其工作原理

2021-04-14 03:04:40 字數 4494 閱讀 6720

ip

位址耗盡促成了

cidr

的開發,但

cidr

開發的主要目的是為了有效的使用現有的

internet

位址。而同時根據

rfc 1631

(ip network address translator

)開發的

nat卻可以在多重的

internet

子網中使用相同的

ip,用來減少註冊

ip位址的使用。

nat技術使得乙個私有網路可以通過

internet

註冊ip

連線到外部世界,位於

inside

網路和outside

網路中的

nat路由器在傳送資料報之前,負責把內部

ip翻譯成外部合法位址。內部網路的主機不可能同時於外部網路通訊,所以只有一部分內部位址需要翻譯。

nat的翻譯可以採取靜態翻譯(

static translation

)和動態翻譯(

dynamic translation

)兩種。靜態翻譯將內部位址和外部位址一對一對應。當

nat需要確認哪個位址需要翻譯,翻譯時採用哪個位址

pool

時,就使用了動態翻譯。採用

portmultiplexing

技術,或改變外出資料的源

port

技術可以將多個內部

ip位址影射到同乙個外部位址,這就是

pat(

port address translator

)。當影射乙個外部

ip到內部位址時,可以利用

tcp的

load distribution

技術。使用這個特徵時,內部主機基於

round-robin

機制,將外部進來的新連線定向到不同的主機上去。注意:

load distributiong

只有在影射外部位址到內部的時候才有效。

nat使用的幾種情況:

a,連線到

internet

,但卻沒有足夠的合法位址分配給內部主機。

b,更改到乙個需要重新分配位址的

isp。

c,有相同的

ip位址的兩個

internat

合併。d

,想支援負載均衡(主機)。 採用

nat後,乙個最主要的改變就是你失去了端對端ip的

traceability

,也就是說,從此你不能再經過

nat使用

ping

和traceroute

,其次就是曾經的一些ip對

ip的程式不再可以正常執行,潛在的不易被觀察到的缺點就是增加了網路延時。

nat可以支援大部分

ip協議,但有幾個協議需要注意,首先

tftp

,rlogin,rsh,rcp

和ipmulticast

都被nat

支援,其次就是

bootp

,snmp

和路由表更新全部給拒絕了。

natinside local ip address:

指定於內部網路的主機位址,全域性唯一,但為私有位址。

inside global ip address:

代表乙個或更多內部

ip到外部世界的合法ip。

outside global ip address:

外部網路主機的合法ip。

outside local ip address:

外部網路的主機位址,看起來是內部網路的,私有位址。

****** translation entry:

影射ip

到另乙個位址的

entry

。extended translation entry:

影射ip

位址和埠到另乙個

pair

的entry。採用

nat,可以實現以下幾個功能:a,

translation inside local addressesb,

overloading inside global addressesc,

tcp load distributiond,

下面我們一一敘述它們的工作原理。 a

,內部位址翻譯(

translation inside local addresses)

:這是比較通用的一種方法,將內部

ip一對一的翻譯成外部位址。

在內部主機連線到外部網路時,當第乙個資料報到達

nat路由器時,

router

檢查它的

nat表,因為是

nat是靜態配置的,故可以查詢出來(

simply entry

),然後

router

將資料報的內部區域性

ip(源位址)更換成內部全域性位址,再**出去。外部主機接受到資料報用接受到的內部全域性位址來響應,

nat接受到外部回來的資料報,再根據

nat表把位址翻譯成內部區域性

ip,**過去。

b,內部全域性位址復用(

overloading inside glogal addresses

)使用位址和埠

pair

將多個內部位址影射到比較少的外部位址。這也是所謂的

pat。和內部位址翻譯一樣,

nat router

同樣也負責查表和翻譯內部

ip位址,唯一的區別就是由於使用了

overloading

,router

將復用同樣的內部全域性

ip位址,並儲存足夠的資訊以區分它和其他位址,這樣查詢出來的是

extended entry

。nat router

和外部主機的通訊採用翻譯過的內部全域性位址,故同一般的通訊沒有差別,

router

到內部主機通訊時,同樣要查

nat表。c,

tcp負載重分配(

tcp load distributing

)和以上兩種操作不同,這是

nat由外到內的翻譯,所以那種以為

web server

一定要放置到

nat外部的說法是錯誤的。

nat router

接受外部主機的請求並依據

nat表建立與內部主機的連線,把內部全域性位址(目的位址)翻譯成內部區域性位址,並**資料報到內部主機,內部主機接受包並作出響應。

nat router

再使用內部區域性位址和埠查詢資料表,根據查詢到的外部位址和埠做出響應。

此時,如果同一主機再做第二個連線,

nat router

將根據nat

表將建立與另一虛擬主機的連線,並**資料。

d,處理重疊網路。

這種方法主要用於兩個

intranet

的互連,同樣給我們處理兩個重疊網路提供了方法。它的實現要求

dns server

的支援(用於區別兩個不同的主機)。

1,主機

a要求向主機

c建立連線,先象

dns server

做位址查詢。2,

nat router

截獲dns

的響應,如果位址有重疊,將翻譯返回的位址。它將建立乙個

simply entry

把重疊的外部全域性位址(目的位址)翻譯成外部區域性位址。

3,路由器**

dns響應到主機

a,它已經把主機

c的位址(外部全域性位址)翻譯成外部區域性位址。

4,當路由器接受到主機

c的資料報時,它將建立內部區域性、全域性,外部全域性、區域性位址間的轉換,主機

a將由內部區域性位址(源位址)翻譯成內部全域性位址,主機

c將由外部全域性位址(目的位址)翻譯成外部區域性位址。

5,主機

c接受資料報並繼續通訊。

nat的具體配置和校驗不再敘述

測試題目:

1,請問

nat實現四種功能時查詢的

nat**是否相同,如果不同,說出它們的區別。

2,在使用動態位址翻譯時,要使用

acl,請問標準的和擴充套件的

acl都可以使用嗎?

3,在配置

nat後,所有資料報的交換可以走

fast-switch嗎?4

,如果nat router

沒有在nat

**中查詢到

nat位址影射,它如何處理發自內部主機的資料報?5,

nat操作時,由外到內和由外到內的翻譯是否相同?

6,我們是否可以將我們的

web server

放置到配置了

nat的

router

後的lan裡?7

,使用simply entry

的是nat

的哪種操作方式?

8,在哪種操作中更換

ip資料報的目的位址,又在實現什麼功能時更改源位址?

K近鄰相關概念及其Python實現

它是一種基本分類與回歸的方法。在分類時,根據其k個最近鄰的訓練例項的類別,通過多數表決等方式進行 k近鄰不具有顯式的學習過程。k近鄰法,實際上對應特徵空間的劃分。以最近鄰法為例,子空間的劃分,是相鄰點之間做垂直平分線 面,然後相交集後,劃分出的各個子空間。當例項點處在某一特徵子空間中,那麼它的類別就...

靜態鍊錶相關概念及其操作

靜態鍊錶結構 首先我們先來看看靜態鍊錶的結構定義 typedef structcomponent,staticlinklist maxsize status initlist staticlinklist l l maxsize 2 cur 0 備用鍊錶的表尾 l maxsize 1 cur 0 資...

LBA線性位址概念及其與CHS位址關係

lba,全稱logic block address 即扇區的邏輯塊位址 為什麼引入 lba概念?首先,由於int13的限制,三維位址c h s的最大值只能為1024 16 63,容量最大只能到1024x16x63 byte 528482304 byte 504 m。其次,在系統管理檔案時記錄繁瑣的c...