日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

NAT技术介绍

發(fā)布時(shí)間:2023/12/31 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NAT技术介绍 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載自擒賊先擒王的博客NAT 詳解

一、概述

NAT英文全稱是“Network Address Translation”,中文意思是“網(wǎng)絡(luò)地址轉(zhuǎn)換”,它是一個(gè)IETF(Internet Engineering Task Force, Internet工程任務(wù)組)標(biāo)準(zhǔn),允許一個(gè)整體機(jī)構(gòu)以一個(gè)公用IP(Internet Protocol)地址出現(xiàn)在Internet上。顧名思義,它是一種把內(nèi)部私有網(wǎng)絡(luò)地址(IP地址)翻譯成合法網(wǎng)絡(luò)IP地址的技術(shù)。NAT 可以讓那些使用私有地址的內(nèi)部網(wǎng)絡(luò)連接到Internet或其它IP網(wǎng)絡(luò)上。NAT路由器在將內(nèi)部網(wǎng)絡(luò)的數(shù)據(jù)包發(fā)送到公用網(wǎng)絡(luò)時(shí),在IP包的報(bào)頭把私有地址轉(zhuǎn)換成合法的IP地址。

RFC1918規(guī)定了三塊專有的地址,作為私有的內(nèi)部組網(wǎng)使用:

A類:10.0.0.0—10.255.255.255 10.0.0.0/8
B類:172.16.0.0—172.31.255.255 172.16.0.0/12
C類:192.168.0.0—192.168.255.255 192.168.0.0/16

這三塊私有地址本身是可路由的,只是公網(wǎng)上的路由器不會(huì)轉(zhuǎn)發(fā)這三塊私有地址的流量;當(dāng)一個(gè)公司內(nèi)部配置了這些私有地址后,內(nèi)部的計(jì)算機(jī)在和外網(wǎng)通信時(shí),公司的邊界路由會(huì)通過(guò)NAT或者PAT技術(shù),將內(nèi)部的私有地址轉(zhuǎn)換成外網(wǎng)IP,外部看到的源地址是公司邊界路由轉(zhuǎn)換過(guò)的公網(wǎng)IP地址,這在某種意義上也增加了內(nèi)部網(wǎng)絡(luò)的安全性。


二、分類


NAT有三種類型:

  • 靜態(tài)NAT(Static NAT)(一對(duì)一)
    將內(nèi)部網(wǎng)絡(luò)的私有IP地址轉(zhuǎn)換為公有IP地址,IP地址對(duì)是一對(duì)一的,是一直不變的。
  • 動(dòng)態(tài)地址NAT(Pooled NAT)(多對(duì)多)
    將內(nèi)部網(wǎng)絡(luò)的私有IP地址轉(zhuǎn)換為公用IP地址時(shí),IP地址是不確定,隨機(jī)的。所有被授權(quán)訪問(wèn)Internet的私有IP地址可隨機(jī)轉(zhuǎn)換為任何指定合法的IP地址。也就是說(shuō),只要指定哪些內(nèi)部地址可以進(jìn)行轉(zhuǎn)換,以及用哪些合法地址作為外部地址時(shí),就可以進(jìn)行動(dòng)態(tài)NAT轉(zhuǎn)換。動(dòng)態(tài)NAT是在路由器上配置一個(gè)外網(wǎng)IP地址池,當(dāng)內(nèi)部有計(jì)算機(jī)需要和外部通信時(shí),就從地址池里動(dòng)態(tài)的取出一個(gè)外網(wǎng)IP,并將他們的對(duì)應(yīng)關(guān)系綁定到NAT表中,通信結(jié)束后,這個(gè)外網(wǎng)IP才被釋放,可供其他內(nèi)部IP地址轉(zhuǎn)換使用,這個(gè)DHCP租約IP有相似之處。當(dāng)ISP提供的合法IP地址略少于網(wǎng)絡(luò)內(nèi)部的計(jì)算機(jī)數(shù)量時(shí)。可以采用動(dòng)態(tài)轉(zhuǎn)換的方式。
  • 網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(Network Address Port Translation)(Port-Level NAT)(多對(duì)一)
    改變外出數(shù)據(jù)包的源端口并進(jìn)行端口轉(zhuǎn)換,采用端口多路復(fù)用方式。內(nèi)部網(wǎng)絡(luò)的所有主機(jī)均可共享一個(gè)合法外部IP地址實(shí)現(xiàn)對(duì)Internet的訪問(wèn),可以最大限度地節(jié)約IP地址資源。同時(shí),也可以隱藏網(wǎng)絡(luò)內(nèi)部的所有主機(jī),有效避免來(lái)自Internet的攻擊。因此,目前網(wǎng)絡(luò)中應(yīng)用最多的就是PAT規(guī)則。這是最常用的NAT技術(shù),也是IPv4能夠維持到今天的最重要的原因之一,它提供了一種多對(duì)一的方式,對(duì)多個(gè)內(nèi)網(wǎng)IP地址,邊界路由可以給他們分配一個(gè)外網(wǎng)IP,利用這個(gè)外網(wǎng)IP的不同端口和外部進(jìn)行通信。NAPT 與 動(dòng)態(tài)NAT 不同,它將內(nèi)部連接映射到外部網(wǎng)絡(luò)中的一個(gè)單獨(dú)的IP地址上,同時(shí)在該地址上加上一個(gè)由NAT設(shè)備選定的端口號(hào)。

    NAPT是使用最普遍的一種轉(zhuǎn)換方式,在HomeGW中也主要使用該方式。它又包含兩種轉(zhuǎn)換方式:SNAT和DNAT。
  • 源NAT(Source NAT,SNAT):修改數(shù)據(jù)包的源地址。源NAT改變第一個(gè)數(shù)據(jù)包的來(lái)源地址,它永遠(yuǎn)會(huì)在數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)之前完成,數(shù)據(jù)包偽裝就是一具SNAT的例子。
  • 目的NAT(Destination NAT,DNAT):修改數(shù)據(jù)包的目的地址。Destination NAT剛好與SNAT相反,它是改變第一個(gè)數(shù)據(jù)懈的目的地地址,如平衡負(fù)載、端口轉(zhuǎn)發(fā)和透明代理就是屬于DNAT。
  • Basic NAT是一種把一組IP地址映射成另一組IP地址的方法,映射的過(guò)程在IP中繼設(shè)備上完成,對(duì)用戶完全透明。NAPT則要復(fù)雜一些,它把許多(不能太多)IP地址連同TCP/UDP端口號(hào)映射到單獨(dú)一個(gè)IP地址和端口號(hào)上。無(wú)論是Basic NAT還是NAPT都提供一種把內(nèi)部的私有地址轉(zhuǎn)換成在公網(wǎng)上可用的全球唯一IP地址的方法。

    對(duì)于網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)來(lái)講,最重要的一點(diǎn)是,在配置 NAT 的路由器上形成了 NAT 轉(zhuǎn)換表,這個(gè)轉(zhuǎn)換表的形成是非常關(guān)鍵的。配置 NAT 后,能形成正確的轉(zhuǎn)換表,那么我們的工作就算成功了。


    3、NAT的三個(gè)方向:

    NAT 在outside口生效,所有在inside口需要先路由,在outside口先nat。
    ip nat inside source:
    將內(nèi)部局部地址轉(zhuǎn)換為內(nèi)部全局地址;數(shù)據(jù)方向inside->outside,在outside上執(zhí)行轉(zhuǎn)換;
    ip nat inside destination:
    將內(nèi)部全局地址轉(zhuǎn)換為內(nèi)部局部地址;數(shù)據(jù)方向outside->inside,在outside上執(zhí)行轉(zhuǎn)換
    ip nat outside source:
    將外部全局地址轉(zhuǎn)換為外部局部地址;數(shù)據(jù)方向outside->inside,在outside上執(zhí)行轉(zhuǎn)換;
    NAT的應(yīng)用分類:
    ip nat source:
    (1) 靜態(tài) nat的映射:永遠(yuǎn)一個(gè)ip對(duì)應(yīng)另外一個(gè)ip。
    ip nat inside source static A.B.C.D A.B.C.D
    (2) 動(dòng)態(tài) nat的映射:每次一個(gè)IP會(huì)對(duì)應(yīng)另外一個(gè)公網(wǎng)的IP;
    ip nat inside source list 2 pool qing
    (3) 動(dòng)態(tài)PAT映射:pool里面只有一個(gè)IP。
    ip nat inside source list 2 pool qing overload
    (4) 靜態(tài)PAT映射:
    ip nat inside source list 3 interface fastEthernet 0/0 overload
    ip nat inside destination:
    (5) tcp負(fù)載均衡,外網(wǎng)主動(dòng)發(fā)起流量訪問(wèn)內(nèi)網(wǎng)服務(wù)器。只用動(dòng)態(tài),沒(méi)有靜態(tài)。
    ip nat inside destination list 10 pool feng
    ip nat outside source:
    當(dāng)兩端同時(shí)做nat既inside和outside需要同時(shí)翻譯并出現(xiàn)地址沖突的時(shí)候需要用outside source和其他同時(shí)命令同時(shí)實(shí)現(xiàn)。


    四、工作原理

    了解原理之前先了解下NAT 術(shù)語(yǔ)。

    在配置了 NAT 的路由器上,可以把整個(gè)網(wǎng)絡(luò)分成兩部分:內(nèi)部網(wǎng)絡(luò)和 外部網(wǎng)絡(luò)。

    NAT 技術(shù)中有四個(gè)術(shù)語(yǔ):

  • 內(nèi)部本地地址(Inside Local):內(nèi)網(wǎng)中設(shè)備所使用的IP地址
  • 內(nèi)部全局地址(Inside Global):對(duì)于外部網(wǎng)絡(luò)來(lái)說(shuō),局域網(wǎng)內(nèi)部主機(jī)所表現(xiàn)的 IP 地址。
  • 外部本地地址(Outside Local):外部網(wǎng)絡(luò)主機(jī)的真實(shí)地址。
  • 外部全局地址(Outside Global):對(duì)于內(nèi)部網(wǎng)絡(luò)來(lái)說(shuō),外部網(wǎng)絡(luò)主機(jī)所表現(xiàn)的 IP 地址。外網(wǎng)設(shè)備所使用的真正的地址。
  • local 、global 是相對(duì)于端口狀態(tài)說(shuō)的,local是inside部分可以被路由的,global是outside部分可以被路由的。

    網(wǎng)絡(luò)地址轉(zhuǎn)換常常和代理服務(wù)搞混,但是它們之間有明確的不同。NAT 對(duì)源和目的計(jì)算機(jī)都是透明的。沒(méi)有任何一方會(huì)意識(shí)到它正在和第三方設(shè)備打交道。但是代理服務(wù)卻不是透明的。源計(jì)算機(jī)知道它正向代理服務(wù)器發(fā)起一個(gè)請(qǐng)求,而且你還必須進(jìn)行配置才能這樣做。目的計(jì)算機(jī)會(huì)認(rèn)為代理服務(wù)器就是與它直接通信的源計(jì)算機(jī)。還有,代理服務(wù)通常工作在 OSI 參考模型的第 4 層 (傳輸層) 或更高,而 NAT 工作在第 3 層 (網(wǎng)絡(luò)層)。由于代理服務(wù)工作在更高層,所以通常它將比 NAT 要慢。

    NAT 工作在 OSI 參考模型的網(wǎng)絡(luò)層 (第3層) 是有道理的,因?yàn)槁酚善骶凸ぷ髟谶@一層:

    NAT設(shè)備維護(hù)一個(gè)狀態(tài)表,用來(lái)把非法的IP地址映射到合法的IP地址上去。每個(gè)包在NAT設(shè)備中都被翻譯成正確的IP地址,發(fā)往下一級(jí),這意味著給處理器帶來(lái)了一定的負(fù)擔(dān)。但對(duì)于一般的網(wǎng)絡(luò)來(lái)說(shuō),這種負(fù)擔(dān)是微不足道的。在運(yùn)行NAT的路由器中,當(dāng)數(shù)據(jù)包被傳送時(shí),NAT可以轉(zhuǎn)換數(shù)據(jù)包的IP地址和TCP/UDP數(shù)據(jù)包的端口號(hào)。設(shè)置NAT功能的路由器至少要有一個(gè)Inside(內(nèi)部)端口和一個(gè)Outside(外部)端口。內(nèi)部端口連接內(nèi)網(wǎng)的用戶,外部端口一般連接到Internet。當(dāng)IP數(shù)據(jù)包離開內(nèi)部網(wǎng)絡(luò)時(shí),NAT負(fù)責(zé)將內(nèi)網(wǎng)IP源地址(通常是專用地址)轉(zhuǎn)換為合法的公共IP地址。當(dāng)IP數(shù)據(jù)包進(jìn)入內(nèi)網(wǎng)時(shí),NAT將合法的公共IP目的地址轉(zhuǎn)換為內(nèi)網(wǎng)的IP源地址。

    NAT的基本工作原理是:當(dāng)私有網(wǎng)主機(jī)和公共網(wǎng)主機(jī)通信的IP包經(jīng)過(guò)NAT網(wǎng)關(guān)時(shí),將IP包中的源IP或目的IP在私有IP和NAT的公共IP之間進(jìn)行轉(zhuǎn)換。

    當(dāng)內(nèi)部網(wǎng)絡(luò)中的一臺(tái)主機(jī)想傳輸數(shù)據(jù)到外部網(wǎng)絡(luò)時(shí),它先將數(shù)據(jù)包傳輸?shù)絅AT路由器上,路由器檢查數(shù)據(jù)包的報(bào)頭,獲取該數(shù)據(jù)包的源IP信息,并從它的NAT映射表中找出與該IP匹配的轉(zhuǎn)換條目,用所選用的內(nèi)部全局地址(全球唯一的IP地址)來(lái)替換內(nèi)部局部地址,并轉(zhuǎn)發(fā)數(shù)據(jù)包。

    當(dāng)外部網(wǎng)絡(luò)對(duì)內(nèi)部主機(jī)進(jìn)行應(yīng)答時(shí),數(shù)據(jù)包被送到NAT路由器上,路由器接收到目的地址為內(nèi)部全局地址的數(shù)據(jù)包后,它將用內(nèi)部全局地址通過(guò)NAT映射表查找出內(nèi)部局部地址,然后將數(shù)據(jù)包的目的地址替換成內(nèi)部局部地址,并將數(shù)據(jù)包轉(zhuǎn)發(fā)到內(nèi)部主機(jī)。

    其實(shí)主要就是 修改 IP 數(shù)據(jù)包中的源 IP 地址,或目的 IP 地址。主要目的是把 RFC1918所提議的私有地址轉(zhuǎn)變成在 Internet 上可路由的公有合法地址。對(duì)于某些有限的應(yīng)用(如 DNS、 FTP 等),它也可以修改 IP 數(shù)據(jù)包有效載荷中的地址。由于應(yīng)用的復(fù)雜性, NAT 目前支持的應(yīng)用有限,當(dāng)然,如果需要,完全可以針對(duì)新的應(yīng)用做相應(yīng)的開發(fā)工作。

    總體來(lái)說(shuō),NAT進(jìn)行地址轉(zhuǎn)換的過(guò)程就是“本地地址”與“全局地址”之間的轉(zhuǎn)換過(guò)程,無(wú)論數(shù)據(jù)包是從內(nèi)部網(wǎng)絡(luò)發(fā)往外部網(wǎng)絡(luò),還是從外部網(wǎng)絡(luò)發(fā)往內(nèi)部網(wǎng)絡(luò)。不同的只是本地地址和全局地址所對(duì)應(yīng)的網(wǎng)絡(luò)不同,以及數(shù)據(jù)包重新封裝的源和目的地址不同。具體如圖所示。

    這個(gè)過(guò)程是通過(guò)NAT中的本地址與全局地址映射條目來(lái)實(shí)現(xiàn)的,所以事先要在NAT路由器上配置這樣的映射條目。


    5、NAT中的轉(zhuǎn)換方式:

  • 從內(nèi)網(wǎng)中設(shè)備上發(fā)出的IP包是以“inside local address”作為源地址,以“outside local address”作為目的地址。當(dāng)數(shù)據(jù)包到達(dá)NAT設(shè)備的“inside”接口后,地址分別被翻譯成“inside global address”和“outside global address”并從“outside”接口送出。
  • 外網(wǎng)設(shè)備上發(fā)出的IP包以“outside global address”作為源地址,以“inside global address”作為目的地址。當(dāng)數(shù)據(jù)包到達(dá)NAT設(shè)備的“outside”接口后,地址分別被翻譯成“outside local address”和“inside local address”并從“inside”接口送出。
  • 當(dāng)內(nèi)部網(wǎng)絡(luò)用戶訪問(wèn)外部網(wǎng)絡(luò)時(shí),所進(jìn)行的是“內(nèi)部本地地址”和“內(nèi)部全局地址”之間的轉(zhuǎn)換。
    在NAT路由器接收到來(lái)自內(nèi)部網(wǎng)絡(luò)主機(jī)發(fā)送的數(shù)據(jù)包時(shí),其源IP地址(SA)為“內(nèi)部本地地址”,目的IP地址(DA)為“外部本地地址”。當(dāng)數(shù)據(jù)包被轉(zhuǎn)發(fā)到外部網(wǎng)絡(luò)時(shí),數(shù)據(jù)包的源IP地址(SA)就會(huì)轉(zhuǎn)變?yōu)椤皟?nèi)部全局地址”,而目的IP地址(DA)被轉(zhuǎn)變?yōu)椤巴獠咳值刂贰薄R簿褪前褦?shù)據(jù)包的所有源IP地址(SA)和目的IP地址(DA)全部由本地地址轉(zhuǎn)換為全局地址。如圖6-9上部分?jǐn)?shù)據(jù)包IP地址轉(zhuǎn)換示意圖。
    相反,當(dāng)外部網(wǎng)絡(luò)用戶訪問(wèn)內(nèi)部網(wǎng)絡(luò)時(shí),所進(jìn)行的是“外部本地地址”和“外部全局地址”之間的轉(zhuǎn)換。
    在NAT路由器接收到來(lái)自外部網(wǎng)絡(luò)主機(jī)發(fā)送的數(shù)據(jù)包時(shí),其源IP地址(SA)就是“外部全局地址”,目的IP地址(DA)就是“內(nèi)部全局地址”。相當(dāng)于由內(nèi)部網(wǎng)絡(luò)向外部網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包時(shí)數(shù)據(jù)包中的源IP地址(SA)和目的IP地址(DA)的互換。而當(dāng)數(shù)據(jù)包被路由器轉(zhuǎn)發(fā)到本地網(wǎng)絡(luò)時(shí),源IP地址(SA)被轉(zhuǎn)變?yōu)椤巴獠勘镜氐刂贰?#xff0c;目的IP地址(DA)被轉(zhuǎn)變?yōu)椤皟?nèi)部本地地址”,也相當(dāng)于由內(nèi)部網(wǎng)絡(luò)向外部網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包時(shí)數(shù)據(jù)包中的源IP地址(SA)和目的IP地址(DA)的互換。如圖6-9下部分?jǐn)?shù)據(jù)包IP地址轉(zhuǎn)換示意圖

    總結(jié)

    以上是生活随笔為你收集整理的NAT技术介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。