浅谈NAT(网络地址转换)原理 + 个人的思考
??NAT英文名Network Address Translation,NAT是指網(wǎng)絡(luò)地址轉(zhuǎn)換。NAT可以將內(nèi)網(wǎng)的地址轉(zhuǎn)換為外網(wǎng)地址。(不一定是私網(wǎng)地址和公網(wǎng)地址的使用,下文會(huì)舉例解釋)
NAT介紹
- NAT原理介紹
- NAT不只是私網(wǎng)地址和公網(wǎng)地址的轉(zhuǎn)換
- 為什么需要端口映射呢?
- 虛擬機(jī)VMware的NAT設(shè)置
- 由NAT引申的幾個(gè)問(wèn)題,FAQ
- 文章參考鏈接
NAT原理介紹
NAT分為基本網(wǎng)絡(luò)地址轉(zhuǎn)換(Basic NAT)和網(wǎng)絡(luò)地址端口轉(zhuǎn)換(PAT或者NAPT)。
??基本網(wǎng)絡(luò)地址轉(zhuǎn)換(Basic NAT) 僅支持IP地址轉(zhuǎn)換,不支持端口映射。 Basic NAT分為靜態(tài)NAT和動(dòng)態(tài)NAT,其中靜態(tài)NAT是將內(nèi)網(wǎng)中的IP地址與外網(wǎng)地址進(jìn)行一對(duì)一映射的綁定,由網(wǎng)絡(luò)管理員管理,是永久的表項(xiàng);動(dòng)態(tài)NAT是指一個(gè)內(nèi)網(wǎng)IP地址隨機(jī)的綁定到一個(gè)外網(wǎng)IP地址,外網(wǎng)IP地址存放在IP地址池中,當(dāng)IP地址池的合法IP地址都被映射了,內(nèi)網(wǎng)的終端就無(wú)法建立地址映射關(guān)系了。
Basic NAT建立的無(wú)端口NAT表示例:
| 192.168.1.55 | 219.152.168.222 |
| 192.168.1.59 | 219.152.168.223 |
| 192.168.1.155 | 219.152.168.224 |
??網(wǎng)絡(luò)地址端口轉(zhuǎn)換(PAT或者NAPT)除了支持IP地址轉(zhuǎn)換,還支持端口映射。 通常說(shuō)的NAT指的是PAT,采用的是端口多路復(fù)用方式,PAT將多個(gè)內(nèi)部地址映射到少量(甚至一個(gè))外部地址。理論上來(lái)說(shuō),有三種轉(zhuǎn)換的方式:只轉(zhuǎn)換IP、轉(zhuǎn)換IP+映射端口(只映射端口就不是NAT了)。同時(shí),外網(wǎng)的IP可以是一個(gè)或者多個(gè)。
PAT建立的無(wú)端口NAT表示例:
| 192.168.1.55 | 5566 | 219.152.168.222 | 5566 |
| 192.168.1.59 | 80 | 219.152.168.222 | 80 |
| 192.168.1.59 | 4465 | 219.152.168.222 | 4465 |
| 192.168.1.55 | 5566 | 219.152.168.222 | 9200 |
| 192.168.1.59 | 80 | 219.152.168.222 | 9201 |
| 192.168.1.59 | 4465 | 219.152.168.222 | 9202 |
NAT不只是私網(wǎng)地址和公網(wǎng)地址的轉(zhuǎn)換
NAT作為網(wǎng)絡(luò)地址轉(zhuǎn)換,不一定是私網(wǎng)地址和公網(wǎng)地址的使用。例如我們可以像套娃一樣,在Internet→光貓→路由器→路由器→中端,可以在每一個(gè)路由器開(kāi)啟NAT,此時(shí)外網(wǎng)是我們的公網(wǎng)嗎?很明顯不是這樣的。另一個(gè)例子,運(yùn)營(yíng)商modem→宿舍路由器(路由模式)→筆記本電腦上的VMware虛擬機(jī)(NAT模式)→虛擬機(jī),在筆記本電腦上的VMware(NAT模式)也不是私網(wǎng)地址和公網(wǎng)地址的使用呀。但是NAT的提出就是為了解決兩個(gè)問(wèn)題,一個(gè)是公網(wǎng)Ipv4的地址稀缺,另一個(gè)是實(shí)現(xiàn)內(nèi)網(wǎng)的匿名和隱私。所以,很多人還是有一個(gè)誤區(qū),認(rèn)為NAT的外網(wǎng)就是公網(wǎng)(全球互聯(lián)網(wǎng)Internet)。
參考圖片:百度百科-nat(網(wǎng)絡(luò)地址轉(zhuǎn)換)-技術(shù)背景https://baike.baidu.com/item/nat/320024
參考圖片來(lái)源:《網(wǎng)絡(luò)安全基礎(chǔ)》課程PPT
為什么需要端口映射呢?
原因有三點(diǎn):
- 首先它可以保證網(wǎng)絡(luò)的匿名和隱私(安全效果);
- 其次端口映射可以讓內(nèi)網(wǎng)中的一個(gè)終端使用多個(gè)不同的端口號(hào)訪問(wèn)多臺(tái)外網(wǎng)終端(就像我們使用計(jì)算機(jī)可以同時(shí)發(fā)郵件、看視頻、聊微信,不同的服務(wù)用不同的端口進(jìn)行區(qū)分。Basic NAT也有這個(gè)功能,相當(dāng)于找了一個(gè)代理。);
- 第三內(nèi)網(wǎng)中的多個(gè)終端使用一個(gè)外網(wǎng)IP地址(節(jié)約外網(wǎng)的IP地址使用)。
??第三點(diǎn) “節(jié)約外網(wǎng)IP” 舉個(gè)例子,假設(shè)有兩臺(tái)內(nèi)網(wǎng)的終端PC1和PC2,PC1的IP地址分別為192.168.0.1,PC2的IP地址分別為192.168.0.2,假設(shè)使用219.152.168.222這一個(gè)外網(wǎng)IP地址。當(dāng)PC1訪問(wèn)外網(wǎng)的某個(gè)服務(wù),NAT做了一個(gè)映射192.168.0.1→219.152.168.222,但是如果這個(gè)外網(wǎng)的服務(wù)響應(yīng)時(shí),從外網(wǎng)訪問(wèn)內(nèi)網(wǎng)的PC1,它只知道外網(wǎng)地址219.152.168.222,那么NAT怎么區(qū)分應(yīng)該發(fā)送給PC1還是PC2呢?所以,為了進(jìn)行區(qū)分,需要增加一個(gè)維度——端口(TCP或者UDP端口)。這里的思路其實(shí)有點(diǎn)像,我們?cè)趨^(qū)分不同的子網(wǎng)時(shí),需要子網(wǎng)掩碼一樣,都是通過(guò)增加維度來(lái)進(jìn)行區(qū)分。本質(zhì)上都是收集足夠多特征,來(lái)進(jìn)行判斷。
虛擬機(jī)VMware的NAT設(shè)置
??下圖是虛擬機(jī)VMware中,對(duì)于NAT模式網(wǎng)卡的設(shè)置,我們可以在“端口轉(zhuǎn)發(fā)”處實(shí)現(xiàn)簡(jiǎn)單的NAT穿透,使得外網(wǎng)的終端可以訪問(wèn)NAT網(wǎng)絡(luò)中的虛擬機(jī)。
由NAT引申的幾個(gè)問(wèn)題,FAQ
文章參考鏈接
參考資料中,[1]、[2]和[6]主要是為了了解NAT技術(shù)。[3]和[8]主要是為了說(shuō)明NAT表的超時(shí)機(jī)制和保活機(jī)制。[4]和[5]主要是為了說(shuō)明NAT技術(shù)的優(yōu)點(diǎn)和缺點(diǎn)。[7]主要是說(shuō)明NAT使Ipsec復(fù)雜在實(shí)現(xiàn)層面上的詳細(xì)解析。
總結(jié)
以上是生活随笔為你收集整理的浅谈NAT(网络地址转换)原理 + 个人的思考的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Ubuntu20.04 添加右键新建文件
- 下一篇: 大兔子病了