初識(shí) NATIP 地址分為公網(wǎng)地址和私有地址。公網(wǎng)地址有 IANA 統(tǒng)一分配,用于連接互聯(lián)網(wǎng);私有地址可以自由分配,用于私有網(wǎng)絡(luò)內(nèi)部通信。
私網(wǎng)和公網(wǎng)
隨著互聯(lián)網(wǎng)用戶的快速增長(zhǎng),2019 年 11 月 25 日全球的公網(wǎng) IPv4 地址已耗盡。在 IPv4 地址耗盡前,使用 NAT( Network Address Translation )技術(shù)解決 IPv4 地址不夠用的問題,并持續(xù)至今。
NAT 技術(shù)的是將私有地址轉(zhuǎn)換成公網(wǎng)地址,使私有網(wǎng)絡(luò)中的主機(jī)可以通過少量公網(wǎng)地址訪問互聯(lián)網(wǎng)。
但 NAT只是一種過渡技術(shù),從根本上解決問題,是采用支持更大地址空間的下一代 IP 技術(shù),即 IPv6 協(xié)議,它提供了幾乎用不完的地址空間。
NAT技術(shù)
NAT 技術(shù)IP 地址中預(yù)留了 3 個(gè)私有地址網(wǎng)段,在私有網(wǎng)絡(luò)內(nèi),可以任意使用。
私有地址范圍
其余的 IP 地址可以在互聯(lián)網(wǎng)上使用,由 IANA 統(tǒng)一管理,稱為公網(wǎng)地址。
公網(wǎng)地址范圍
NAT 解決了 IPv4 地址不夠用的問題,另外 NAT 屏蔽了私網(wǎng)用戶真實(shí)地址,提高了私網(wǎng)用戶的安全性。
典型的 NAT 組網(wǎng)模型,網(wǎng)絡(luò)通常是被劃分為私網(wǎng)和公網(wǎng)兩部分,各自使用獨(dú)立的地址空間。私網(wǎng)使用私有地址 10.0.0.0/24 ,而公網(wǎng)使用公網(wǎng)地址。為了讓主機(jī) A 和 B 訪問互聯(lián)網(wǎng)上的服務(wù)器 Server ,需要在網(wǎng)絡(luò)邊界部署一臺(tái) NAT 設(shè)備用于執(zhí)行地址轉(zhuǎn)換。NAT 設(shè)備通常是路由器或防火墻。
典型NAT組網(wǎng)
基本 NAT
基本 NAT 是最簡(jiǎn)單的一種地址轉(zhuǎn)換方式,它只對(duì)數(shù)據(jù)包的 IP 層參數(shù)進(jìn)行轉(zhuǎn)換,它可分為靜態(tài) NAT 和動(dòng)態(tài) NAT 。
靜態(tài) NAT 是公網(wǎng) IP 地址和私有 IP 地址有一對(duì)一的關(guān)系,一個(gè)公網(wǎng) IP 地址對(duì)應(yīng)一個(gè)私有 IP 地址,建立和維護(hù)一張靜態(tài)地址映射表。
動(dòng)態(tài) NAT 是公網(wǎng) IP 地址和私有 IP 地址有一對(duì)多的關(guān)系,同一個(gè)公網(wǎng) IP 地址分配給不同的私網(wǎng)用戶使用,使用時(shí)間必須錯(cuò)開。它包含一個(gè)公有 IP 地址池和一張動(dòng)態(tài)地址映射表。
舉個(gè)動(dòng)態(tài) NAT 栗子
私網(wǎng)主機(jī) A( 10.0.0.1 )需要訪問公網(wǎng)的服務(wù)器 Server( 61.144.249.229 ),在路由器 RT 上配置 NAT ,地址池為 219.134.180.11 ~ 219.134.180.20 ,地址轉(zhuǎn)換過程如下:
基本NAT
A 向 Server 發(fā)送報(bào)文,網(wǎng)關(guān)是 10.0.0.254 ,源地址是 10.0.0.1 ,目的地址是 61.144.249.229 。
A發(fā)包
RT 收到 IP 報(bào)文后,查找路由表,將 IP 報(bào)文轉(zhuǎn)發(fā)至出接口,由于出接口上配置了 NAT ,因此 RT 需要將源地址 10.0.0.1 轉(zhuǎn)換為公網(wǎng)地址。
RT收包
RT 從地址池中查找第一個(gè)可用的公網(wǎng)地址 219.134.180.11 ,用這個(gè)地址替換數(shù)據(jù)包的源地址,轉(zhuǎn)換后的數(shù)據(jù)包源地址為 219.134.180.11 ,目的地址不變。同時(shí) RT 在自己的 NAT 表中添加一個(gè)表項(xiàng),記錄私有地址 10.0.0.1 到 公網(wǎng)地址 219.134.180.11 的映射。RT 再將報(bào)文轉(zhuǎn)發(fā)給目的地址 61.144.249.229 。
NAT轉(zhuǎn)換
Server 收到報(bào)文后做相應(yīng)處理。
Server 發(fā)送回應(yīng)報(bào)文,報(bào)文的源地址是 61.144.249.229 ,目的地址是 219.134.180.11 。
Server發(fā)回應(yīng)包
RT 收到報(bào)文,發(fā)現(xiàn)報(bào)文的目的地址 219.134.180.11 在 NAT 地址池內(nèi),于是檢查 NAT 表,找到對(duì)應(yīng)表項(xiàng)后,使用私有地址 10.0.0.1 替換公網(wǎng)地址 219.134.180.11,轉(zhuǎn)換后的報(bào)文源地址不變,目的地址為 10.0.0.1 。RT 在將報(bào)文轉(zhuǎn)發(fā)給 A 。
NAT轉(zhuǎn)換
A 收到報(bào)文,地址轉(zhuǎn)換過程結(jié)束。
A收包
如果 B 也要訪問 Server ,則 RT 會(huì)從地址池中分配另一個(gè)可用公網(wǎng)地址 219.134.180.12 ,并在 NAT 表中添加一個(gè)相應(yīng)的表項(xiàng),記錄 B 的私有地址 10.0.0.2 到公網(wǎng)地址 219.134.180.12 的映射關(guān)系。
B的NAT轉(zhuǎn)換
NAPT
在基礎(chǔ) NAT 中,私有地址和公網(wǎng)地址存在一對(duì)一地址轉(zhuǎn)換的對(duì)應(yīng)關(guān)系,即一個(gè)公網(wǎng)地址同時(shí)只能分配給一個(gè)私有地址。它只解決了公網(wǎng)和私網(wǎng)的通信問題,并沒有解決公網(wǎng)地址不足的問題。
NAT表
NAPT( Network Address Port Translation )對(duì)數(shù)據(jù)包的 IP 地址、協(xié)議類型、傳輸層端口號(hào)同時(shí)進(jìn)行轉(zhuǎn)換,可以明顯提高公網(wǎng) IP 地址的利用率。
NAPT的NAT表
舉個(gè)栗子
私網(wǎng)主機(jī) A( 10.0.0.1 )需要訪問公網(wǎng)的服務(wù)器 Server 的 WWW 服務(wù)( 61.144.249.229 ),在路由器 RT 上配置 NAPT ,地址池為 219.134.180.11 ~ 219.134.180.20 ,地址轉(zhuǎn)換過程如下:
A 向 Server 發(fā)送報(bào)文,網(wǎng)關(guān)是 RT( 10.0.0.254 ),源地址和端口是 10.0.0.1:1024 ,目的地址和端口是 61.144.249.229:80 。
A發(fā)包
RT 收到 IP 報(bào)文后,查找路由表,將 IP 報(bào)文轉(zhuǎn)發(fā)至出接口,由于出接口上配置了 NAPT ,因此 RT 需要將源地址 10.0.0.1:1024 轉(zhuǎn)換為公網(wǎng)地址和端口。
RT 從地址池中查找第一個(gè)可用的公網(wǎng)地址 219.134.180.11 ,用這個(gè)地址替換數(shù)據(jù)包的源地址,并查找這個(gè)公網(wǎng)地址的一個(gè)可用端口,例如 2001 ,用這個(gè)端口替換源端口。轉(zhuǎn)換后的數(shù)據(jù)包源地址為 219.134.180.11:2001 ,目的地址和端口不變。同時(shí) RT 在自己的 NAT 表中添加一個(gè)表項(xiàng),記錄私有地址 10.0.0.1:1024 到 公網(wǎng)地址 219.134.180.11:2001 的映射。RT 再將報(bào)文轉(zhuǎn)發(fā)給目的地址 61.144.249.229 。
NAPT轉(zhuǎn)換
Server 收到報(bào)文后做相應(yīng)處理。
Server 發(fā)送回應(yīng)報(bào)文,報(bào)文的源地址是 61.144.249.229:80 ,目的地址是 219.134.180.11:2001 。
Server發(fā)回應(yīng)包
RT 收到報(bào)文,發(fā)現(xiàn)報(bào)文的目的地址在 NAT 地址池內(nèi),于是檢查 NAT 表,找到對(duì)應(yīng)表項(xiàng)后,使用私有地址和端口 10.0.0.1:1024 替換公網(wǎng)地址 219.134.180.11:2001,轉(zhuǎn)換后的報(bào)文源地址和端口不變,目的地址和端口為 10.0.0.1:1024 。RT 再將報(bào)文轉(zhuǎn)發(fā)給 A 。
NAPT轉(zhuǎn)換
A 收到報(bào)文,地址轉(zhuǎn)換過程結(jié)束。
如果 B 也要訪問 Server ,則 RT 會(huì)從地址池中分配同一個(gè)公網(wǎng)地址 219.134.180.11 ,但分配另一個(gè)端口 3001 ,并在 NAT 表中添加一個(gè)相應(yīng)的表項(xiàng),記錄 B 的私有地址 10.0.0.2:1024 到公網(wǎng)地址 219.134.180.12:3001 的映射關(guān)系。
B的NAPT轉(zhuǎn)換
Easy IP
在標(biāo)準(zhǔn)的 NAPT 配置中需要?jiǎng)?chuàng)建公網(wǎng)地址池,也就是必須先知道公網(wǎng) IP 地址的范圍。而在撥號(hào)接入的上網(wǎng)方式中,公網(wǎng) IP 地址是有運(yùn)營(yíng)商動(dòng)態(tài)分配的,無法事先確定,標(biāo)準(zhǔn)的 NAPT 無法做地址轉(zhuǎn)換。要解決這個(gè)問題,就要使用 Easy IP 。
Easy IP 又稱為基于接口的地址轉(zhuǎn)換。在地址轉(zhuǎn)換時(shí),Easy IP 的工作原理與 NAPT 相同,對(duì)數(shù)據(jù)包的 IP 地址、協(xié)議類型、傳輸層端口號(hào)同時(shí)進(jìn)行轉(zhuǎn)換。但 Easy IP 直接使用公網(wǎng)接口的 IP 地址作為轉(zhuǎn)換后的源地址。Easy IP 適用于撥號(hào)接入互聯(lián)網(wǎng),動(dòng)態(tài)獲取公網(wǎng) IP 地址的場(chǎng)合。
Easy IP
Easy IP 無需配置地址池,只需要配置一個(gè) ACL(訪問控制列表),用來指定需要進(jìn)行 NAT 轉(zhuǎn)換的私有 IP 地址范圍。
NAT Server
從基本 NAT 和 NAPT 的工作原理可知,NAT 表項(xiàng)由私網(wǎng)主機(jī)主動(dòng)向公網(wǎng)主機(jī)發(fā)起訪問而生成,公網(wǎng)主機(jī)無法主動(dòng)向私網(wǎng)主機(jī)發(fā)起連接。因此 NAT 隱藏了內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu),具有屏蔽主機(jī)的作用。但是在實(shí)際應(yīng)用中,內(nèi)網(wǎng)網(wǎng)絡(luò)可能需要對(duì)外提供服務(wù),例如 Web 服務(wù),常規(guī)的 NAT 就無法滿足需求了。
為了滿足公網(wǎng)用戶訪問私網(wǎng)內(nèi)部服務(wù)器的需求,需要使用 NAT Server 功能,將私網(wǎng)地址和端口靜態(tài)映射成公網(wǎng)地址和端口,供公網(wǎng)用戶訪問。
NAT Server
舉個(gè)栗子
A 的私網(wǎng)地址為 10.0.0.1 ,端口 8080 提供 Web 服務(wù),在對(duì)公網(wǎng)提供 Web 服務(wù)時(shí),要求端口號(hào)為 80 。在 NAT 設(shè)備上啟動(dòng) NAT Server 功能,將私網(wǎng) IP 地址和端口 10.0.0.1:8080 映射成公網(wǎng) IP 地址和端口 219.134.180.11:80 ,這樣公網(wǎng)主機(jī) C 就可以通過 219.134.180.11:80 訪問 A 的 Web 服務(wù)。
NAT ALG
基本 NAT 和 NAPT 只能識(shí)別并修改 IP 報(bào)文中的 IP 地址和端口號(hào)信息,無法修改報(bào)文內(nèi)攜帶的信息,因此對(duì)于一些 IP 報(bào)文內(nèi)攜帶網(wǎng)絡(luò)信息的協(xié)議,例如 FTP 、DNS 、SIP 、H.323 等,是無法正確轉(zhuǎn)換的。
ALG 能夠識(shí)別應(yīng)用層協(xié)議內(nèi)的網(wǎng)絡(luò)信息,在轉(zhuǎn)換 IP 地址和端口號(hào)時(shí),也會(huì)對(duì)應(yīng)用層數(shù)據(jù)中的網(wǎng)絡(luò)信息進(jìn)行正確的轉(zhuǎn)換。
舉個(gè)栗子:ALG 處理 FTP 的 Active 模式
FTP 是一種基于 TCP 的協(xié)議,用于在客戶端和服務(wù)器間傳輸文件。FTP 協(xié)議工作時(shí)建立 2 個(gè)通道:Control 通道和 Data 通道。Control 用于傳輸 FTP 控制信息,Data 通道用于傳輸文件數(shù)據(jù)。
私網(wǎng) A( 10.0.0.1 )訪問公網(wǎng) Server( 61.144.249.229 )的 FTP 服務(wù),在 RT 上配置 NAPT,地址池為 219.134.180.11 ~ 219.134.180.20 ,地址轉(zhuǎn)換過程如下:
NAT ALG
A 發(fā)送到 Server 的 FTP Control 通道建立請(qǐng)求,報(bào)文源地址和端口為 10.0.0.1:1024 ,目的地址和端口為 61.144.249.229:21 ,攜帶數(shù)據(jù)是 “ IP = 10.0.0.1 port=5001 ”,即告訴 Server 自己使用 TCP 端口 5001 傳輸 Data。
A發(fā)包
RT 收到報(bào)文,建立 10.0.0.1:1024 到 219.134.180.11:2001 的映射關(guān)系,轉(zhuǎn)換源 IP 地址和 TCP 端口。根據(jù)目的端口 21 ,RT 識(shí)別出這是一個(gè) FTP 報(bào)文,因此還要檢查應(yīng)用層數(shù)據(jù),發(fā)現(xiàn)原始數(shù)據(jù)為 “ IP = 10.0.0.1 port=5001 ”,于是為 Data 通道 10.0.0.1:5001 建立第二個(gè)映射關(guān)系:10.0.0.1:5001 到 219.134.180.11:2002 ,轉(zhuǎn)換后的報(bào)文源地址和端口為 219.134.180.11:2001 ,目的地址和端口不變,攜帶數(shù)據(jù)為 “ IP = 219.134.180.11 port=2002 ”。
NAT ALG轉(zhuǎn)換
Server 收到報(bào)文,向 A 回應(yīng) command okay 報(bào)文,F(xiàn)TP Control 通道建立成功。同時(shí) Server 根據(jù)應(yīng)用層數(shù)據(jù)確定 A 的 Data 通道網(wǎng)絡(luò)參數(shù)為 219.134.180.11:2002 。
A 需要從 FTP 服務(wù)器下載文件,于是發(fā)起文件請(qǐng)求報(bào)文。Server 收到請(qǐng)求后,發(fā)起 Data 通道建立請(qǐng)求,IP 報(bào)文的源地址和端口為 61.144.249.229:20 ,目的地址和端口為 219.134.180.11:2002,并攜帶 FTP 數(shù)據(jù)。
Data通道
NAT 實(shí)戰(zhàn)基本 NAT 實(shí)驗(yàn)
實(shí)驗(yàn)拓?fù)鋱D
拓?fù)鋱D
實(shí)驗(yàn)要求
ENSP 模擬器
PC 通過公網(wǎng)地址訪問互聯(lián)網(wǎng)
實(shí)驗(yàn)步驟
根據(jù)接口 IP 地址表,配置各個(gè)設(shè)備的接口地址。
IP地址表
PC配置
RT配置
ISP配置
在 RT 上配置 NAT 配置。
NAT配置
配置基本 NAT 只需要一條命令:把私有 IP 地址轉(zhuǎn)換成公網(wǎng) IP 地址,在接口視圖下配置 nat static global global-address inside host-address 命令。默認(rèn)路由是網(wǎng)關(guān)路由器上的常見配置。使用 display nat static 命令查看 RT 上的靜態(tài) NAT 配置。
在 PC 上驗(yàn)證聯(lián)網(wǎng)功能。
PC驗(yàn)證結(jié)果
抓包查看 NAT 轉(zhuǎn)換效果。分別抓包 RT 的內(nèi)網(wǎng)口 G0/0/0 和外網(wǎng)口 G0/0/1 的報(bào)文,看出發(fā)送的 Echo Request 報(bào)文和接收的 Echo Reply 報(bào)文都有進(jìn)行 NAT 轉(zhuǎn)換。
RT內(nèi)網(wǎng)口抓包
RT外網(wǎng)口抓包
NAPT 實(shí)驗(yàn)
實(shí)驗(yàn)拓?fù)鋱D
拓?fù)鋱D
實(shí)驗(yàn)要求
RT 使用 NAPT 功能
ISP 分配 4 個(gè)可用的公網(wǎng)地址:202.0.0.3 ~ 202.0.0.6
VLAN 10 的用戶使用兩個(gè)公網(wǎng)地址
VLAN 20 的用戶使用另外兩個(gè)公網(wǎng)地址
實(shí)驗(yàn)步驟
根據(jù)接口 IP 地址表,配置各個(gè)設(shè)備的接口地址。配置命令可參考上一個(gè)實(shí)驗(yàn)步驟 1 。
IP地址表
在 RT 上配置 NAPT 配置。
NAPT配置
在 NAPT 的配置中,使用基本 ACL 來指定私有 IP 地址范圍。ACL 2010 指定 VLAN 10 的 IP 地址空間,ACL 2020 指定 VLAN 20 的 IP 地址空間。使用 nat address-group group-index start-address end-address 命令指定公網(wǎng) IP 地址范圍,分別指定了兩個(gè) NAT 地址組,編號(hào)分別選擇了 1 和 2 。在外網(wǎng)接口上,使用 nat outbound acl-number address-group group-index ,綁定 NAT 轉(zhuǎn)換關(guān)系。
使用 display nat address-group 命令查看 RT 上的 NAT 地址組配置。命令 display nat outbound 查看出方向 NAT 的轉(zhuǎn)換關(guān)系。
分別在 PC10 和 PC 20 上驗(yàn)證上網(wǎng)功能。
PC10驗(yàn)證結(jié)果
PC20驗(yàn)證結(jié)果
抓包查看 NAT 轉(zhuǎn)換效果。分別抓包 RT 的內(nèi)網(wǎng)口 G0/0/1 和外網(wǎng)口 G0/0/0 的報(bào)文,查看 VLAN 10 的用戶出發(fā)送的 Echo Request 報(bào)文和接收的 Echo Reply 報(bào)文都有進(jìn)行 NAT 轉(zhuǎn)換。
RT內(nèi)網(wǎng)口VLAN10抓包
RT外網(wǎng)口抓包
其它常用 NAT 命令
NAT Server 是在接口視圖下配置,命令格式為:nat server protocol { tcp | udp } global global-address global-port inside host-address host-port 。
檢查 NAT Server 配置信息命令:display nat server 。
檢查 NAT 會(huì)話命令:display nat session all 。
啟動(dòng) NAT ALG 功能命令:nat alg all enable 。
查看 NAT ALG 功能命令:display nat alg 。
原文標(biāo)題:42張圖詳解 NAT : 換個(gè)馬甲就能上網(wǎng)
文章出處:【微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7815瀏覽量
90970 -
NAT
+關(guān)注
關(guān)注
0文章
153瀏覽量
16701
原文標(biāo)題:42張圖詳解 NAT : 換個(gè)馬甲就能上網(wǎng)
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
一文帶你了解電源測(cè)試系統(tǒng)的功能!

帶你一文了解芯片開封技術(shù)

Arm帶你了解2025年及未來在不同技術(shù)市場(chǎng)的關(guān)鍵技術(shù)方向
帶你一文了解什么是燈具檢測(cè)測(cè)試

帶你一文了解什么是引線鍵合(WireBonding)技術(shù)?

一文帶你了解FIB技術(shù)

一文了解三菱電機(jī)高壓SiC芯片技術(shù)

NAT技術(shù)為什么會(huì)對(duì)IP地址查詢?cè)斐筛蓴_

一文帶你了解透過率測(cè)量

Nat server技術(shù)原理和配置過程

一文帶你了解IP地址別名
一文帶你了解IP版本

IP地址與NAT技術(shù)的結(jié)合與應(yīng)用
一文帶你了解半導(dǎo)體公司的各個(gè)崗位

評(píng)論