思維導圖:
網絡地址轉換技術也稱爲NAT(Network Address Translation)
技術,他的基本作用就是實現私網IP與公網IP地址之間的轉換。
公網:就是公有的IP地址的網絡,公網中是絕對不能使用私有IP地址的。
私網:就是使用私有IP地址的網絡。在私網中,各個網絡接口的 IP地址必須是私有IP地址,但是在有些情況下,私網出現的IP報文,其目的IP地址或源IP地址可以是公有IP地址。
NAT優缺點:
優點 | 缺點 |
---|---|
節省IP地址空間 | 增加轉發延遲 |
解決IP地址重疊問題 | 喪失端到端的尋址能力 |
增加網絡的連入Internet的彈性 | 某些應用不支持NAT |
當網絡變更的時候減少更改ip重編址的麻煩 | 需要一定的內存空間支持動態存儲NAT表項 |
對外隱藏內部地址,增加網絡安全性 | 需要耗費一定CPU資源進行NAT操作 |
NAT術語:
術語 | 解釋 |
---|---|
內部本地 | 轉換之前內部源地址的名字 |
外部本地 | 轉換之前目標主機的名字 |
內部全局 | 轉換之後內部主機的名字 |
外部全局 | 轉換之後外部目標主機的名字 |
1. 靜態NAT
- 靜態NAT實現了私有地址和公有地址的一對一映射。
- 一個公網IP只會分配給唯一且固定的內網主機。
在本示例中,源地址爲192.168.1.1的報文需要發往公網地址100.1.1.1。在網關RTA上配置了一個私網地址192.168.1.1到公網地址200.10.10.1的映射。當網關收到主機A發送的數據包後,會先將報文中的源地址192.168.1.1轉換爲200.10.10.1,然後轉發報文到目的設備。目的設備回覆的報文目的地址是200.10.10.1。當網關收到回覆報文後,也會執行靜態地址轉換,將200.10.10.1轉換成192.168.1.1,然後轉發報文到主機A。和主機A在同一個網絡中其他主機,如主機B,訪問公網的過程也需要網關RTA做靜態NAT轉換。
2. 動態NAT
- 動態NAT基於
地址池
來實現私有地址和公有地址的轉換。 - 動態NAT地址池中的地址用盡以後,只能等待被佔用的公用IP被釋放後,其他主機才能使用它來訪問公網。
本示例中,當內部主機A和主機B需要與公網中的目的主機通信時,網關RTA會從配置的公網地址池中選擇一個未使用的公網地址與之做
映射
。每臺主機都會分配到地址池中的一個唯一地址。當不需要此連接時,對應的地址映射將會被刪除,公網地址也會被恢復到地址池中待用。當網關收到回覆報文後,會根據之前的映射再次進行轉換之後轉發給對應主機。
3. NAPT(端口複用)
- 網絡地址端口轉換NAPT允許多個內部地址映射到同一個公有地址的不同端口。
- 理想狀況下,一個單一的IP地址可以使用的端口數爲4000個
本例中,RTA收到一個私網主機發送的報文,源IP地址是192.168.1.1,源端口號是1025,目的IP地址是100.1.1.1,目的端口是80。RTA會從配置的公網地址池中選擇一個空閒的公網IP地址和端口號,並建立相應的NAPT表項。這些NAPT表項指定了報文的私網IP地址和端口號與公網IP地址和端口號的映射關係。之後,RTA將報文的源IP地址和端口號轉換成公網地址200.10.10.1和端口號2843,並轉發報文到公網。當網關RTA收到回覆報文後,會根據之前的映射表再次進行轉換之後轉發給主機A。主機B同理。
4. NAT服務器
- 通過配置NAT服務器,可以使外網用戶訪問內網服務器
- NAT在使內網用戶訪問公網的同時,也屏蔽了公網用戶訪問私網主機的需求。當一個私網需要向公網用戶提供Web和SFTP服務時,私網中的服務器必須隨時可供公網用戶訪問。
- NAT服務器可以實現這個需求,但是需要配置服務器私網IP地址和端口號轉換爲公網IP地址和端口號併發布出去。路由器在收到一個公網主機的請求報文後,根據報文的目的IP地址和端口號查詢地址轉換表項。路由器根據匹配的地址轉換表項,將報文的目的IP地址和端口號轉換成私網IP地址和端口號,並轉發報文到私網中的服務器。
本例中,主機C需要訪問私網服務器,發送報文的目的IP地址是200.10.10.1,目的端口號是80。RTA收到此報文後會查找地址轉換表項,並將目的IP地址轉換成192.168.1.1,
目的端口號保持不變
。服務器收到報文後會進行響應,RTA收到私網服務器發來的響應報文後,根據報文的源IP地址192.168.1.1和端口號80查詢地址轉換表項。然後,路由器根據匹配的地址轉換表項,將報文的源IP地址和端口號轉換成公網IP地址200.10.10.1和端口號80,並轉發報文到目的公網主機。
5. NAT過程實驗操作解釋
公有地址資源池 |
---|
200.24.5.1 |
200.24.5.2 |
200.24.5.3 |
200.24.5.4 |
200.24.5.5 |
200.24.5.6 |
動態地址及端口號映射:
私有地址:端口號 | 公有地址:端口號 |
---|---|
192.168.1.1:1031 | 200.24.5.1:5531 |
192.168.1.2:1540 | 200.24.5.1:5532 |
報文X1 | 報文X2 |
---|---|
源IP地址:192.168.1.1 | 源IP地址:200.24.5.1 |
源端口號:1031 | 源端口號:5531 |
目的IP地址:211.100.7.34 | 目的IP地址:211.100.7.34 |
目的端口號:Z1 |
目的端口號:Z1 |
報文Y1 | 報文Y2 |
---|---|
源IP地址:211.100.7.34 | 源IP地址:211.100.7.34 |
源端口號:Z2 |
源端口號: Z2 |
目的IP地址:200.24.5.1 | 目的IP地址:192.168.1.1 |
目的端口號:5531 | 目的端口號:1031 |
報文U1 | 報文U2 |
---|---|
源IP地址:192.168.1.2 | 源IP地址:200.24.5.1 |
源端口號:1540 | 源端口號:5532 |
目的IP地址:211.100.7.34 | 目的IP地址:211.100.7.34 |
目的端口號:Z3 |
目的端口號:Z3 |
報文V1 | 報文V2 |
---|---|
源IP地址:211.100.7.34 | 源IP地址:211.100.7.34 |
源端口號:Z4 |
源端口號:Z4 |
目的IP地址:200.24.5.1 | 目的IP地址:192.168.1.2 |
目的端口號:5532 | 目的端口號:1540 |
過程:
-
PC1 向Internet發起訪問請求,發送報文爲X。源IP地址:192.168.1.1,源端口號:1031,目的IP地址211.100.7.34,目的端口號Z1。
-
當X1達到R1的時候,NAPT會在公有地址資源池選中了IP地址200.24.5.1,並根據某種規則確定出一個端口5531,然後在動態地址及端口映射表中創建192.168.1.1:1031與200.24.5.1:5531 映射表項;
-
根據這個表項NAPT將源IP地址:192.168.1.1,源端口號:1031,替換成200.24.5.1:5531,從而得到一個新的IP報文X2,併發送到Internet;
-
服務器向PC1 返回一個IP報文Y1,源IP地址:211.100.7.34,源端口號:Z2,目的IP地址:200.24.5.1,目的端口號:5531;
-
Y1進入R2後,NAPT會在動態地址映射表中找到200.24.5.1:5531對應的表項192.168.1.1:1031,進行替換得到一個新的報文Y2,R1將Y2發到私網。
PC2訪問服務器與服務器訪問PC2同理
。