tft每日頭條

 > 生活

 > 網絡地址轉換nat的作用是什麼

網絡地址轉換nat的作用是什麼

生活 更新时间:2025-02-09 08:21:07
NAT

網絡地址轉換(NAT)技術的理論部分可以看博客——網絡層——NAT。NAT 的功能大緻為:在局域網中組織會為内部主機分配私有地址,當内部主機發送數據包到外部網絡時私有地址就會自動轉換為公有 IP 地址,公有 IP 地址返回的流量的目的地址也會自動轉換為内部私有地址。NAT 通常工作在末節網絡的邊界。

網絡地址轉換nat的作用是什麼(網絡技術NAT網絡地址轉換及原理)1

在 NAT 術語中,NAT 轉換後的地址稱之為全局地址,NAT 轉換前的地址為本地地址内部本地地址是需要進行 NAT 轉換的主機的私有地址,外部本地地址是與 ISP 相連的路由器接口的地址,這會是個公有地址。進行 NAT 轉換時,内部本地地址将會轉換為内部全局地址,外部全局地址會成為目的地址。

地址類型

含義

内部本地地址

轉換前的内部源地址

外部本地地址

轉換後的目标地址

内部全局地址

轉換後的源地址

外部全局地址

轉換前的外部目标地址

相關視頻講解:

網絡穿透,P2P,打洞的核心原理,NAT,穿透的原理:「鍊接」

網絡穿透,NAT,打洞,了解p2p的秘密:「鍊接」

NAT 的優缺點優點
  1. 允許内網使用私有地址,從而節省了 ISP 分配的公網地址;
  2. 增強了與公有網絡連接的靈活性;
  3. 在内網使用私有地址,可以讓公有地址的更換提供方便;
  4. 隐藏内網的 IP 地址的細節。
缺點
  1. NAT 轉換有一定的時間開銷,會使性能下降;
  2. 基于端到端的功能可能無法實現;
  3. 由于更改了 IP 地址,端到端的 IP 地址因此無法追蹤;
  4. 修改了報頭的值,導緻數據包的完整性檢查失敗;
  5. TCP 連接可能因此中斷。
NAT 的類型靜态 NAT

靜态 NAT 實現本地地址和全局地址的一對一映射,這些映射由網絡管理員進行配置。當配置靜态 NAT 的設備向互聯網發送流量時,内部本地地址會被轉換為已配置的内部全局地址,内部全局地址是共有的 IPv4 地址。很顯然,靜态 NAT 并不能節省共有 IP 地址的使用。例如有如圖所示拓撲,可用的公網地址有 170.168.2.2、170.168.2.3、170.168.2.4,則 NAT 轉換表可能是:

網絡地址轉換nat的作用是什麼(網絡技術NAT網絡地址轉換及原理)2

内部本地 IP 地址

内部全局 IP 地址

192.168.1.21

170.168.2.2

192.168.1.22

170.168.2.3

192.168.1.23

170.168.2.4

例如主機 192.168.1.21 向外部網絡發送分組,則配置了 NAT 的路由器發現分組的源 IP 地址是内部本地 IP 地址,則就将該地址轉換為内部全局 IP 地址并記錄在 NAT 表中,例如這裡轉換為 170.168.2.2。轉換後分組會被轉發到外部接口,當路由器收到外部主機返回的分組時,路由器會根據 NAT 表把内部全局 IP 地址轉換回内部本地 IP 地址。

動态 NAT

動态 NAT 實現本地地址和全局地址之間的多對多映射,将使用公有地址池,以先到先得的原則分配地址的使用。當配置了動态 NAT 的内部設備訪問外部網絡時,動态 NAT 會分配 NAT 地址池中可用的 IPv4 地址。動态 NAT 的轉換也會受到 IP 地址池的 IP 地址數量限制,例如内部網絡有 50 個使用私有地址的設備,IP 地址池有 5 個公有地址,則隻能将這 50 個私有地址映射到這 5 個公有地址上。

PAT

端口地址轉換 PAT實現本地地址和全局地址之間的多對一映射,地址将通過端口号進行重載。由于端口号可以是 0 ~ 65536,所以一個公有 ip 地址可以重載 65536 次。内部本地地址進行轉換時,PAT 會将唯一的源端口号添加到内部全局地址上。端口号會用來區分流量,當目的主機返回響應時,端口号會決定路由器将數據包轉發到哪個設備上。在實際情況下端口号可能會被其他會話或者應用占用,此時如果使用的端口号已經被使用了,則 PAT 會從端口号組中分配一個可用的端口号。如果已經沒有可用的端口号了,PAT 會進入下一個公網地址進行轉換,并且重新分配端口号。例如有如圖所示拓撲,可用的公網地址隻有 170.168.2.2,則 NAT 轉換表可能是:

網絡地址轉換nat的作用是什麼(網絡技術NAT網絡地址轉換及原理)3

内部本地 IP 地址

内部全局 IP 地址

192.168.1.21:12000

170.168.2.2:12000

192.168.1.22:12000

170.168.2.3:12001

192.168.1.23:24000

170.168.2.4:12002

PAT 可以使用端口号對一個公網地址進行重載,例如主機 192.168.1.21 向外部網絡發送分組,則配置了 NAT 的路由器發現分組的源 IP 地址是内部本地 IP 地址,則就将該地址轉換為内部全局 IP 地址并加上一個可用的端口号記錄在 NAT 表中,例如這裡轉換為 170.168.2.2:12000。當路由器收到外部主機返回的分組時,路由器會根據 NAT 表,根據端口号把内部全局 IP 地址轉換回内部本地 IP 地址。

C/C Linux後台服務器開發高級架構師學習視頻 點擊 正在跳轉 獲取,内容知識點包括Linux,Nginx,ZeroMQ,MySQL,Redis,線程池,MongoDB,ZK,Linux内核,CDN,P2P,epoll,Docker,TCP/IP,協程,DPDK等等。免費學習地址:C/C Linux服務器開發/後台架構師【零聲教育】-學習視頻教程-騰訊課堂

網絡地址轉換nat的作用是什麼(網絡技術NAT網絡地址轉換及原理)4

配置靜态 NAT

靜态 NAT 的配置比較簡單,因為隻需要将一個内部地址映射到一個外部地址就行。在配置模式使用的命令如下,local-ip 表示進行 NAT 轉換的内部地址,global-ip 表示進行 NAT 轉換的外部地址,這樣就可以建立起地址的映射關系。

Router(config)# ip nat inside source static local-ip global-ip

接着需要将接口配置為相對于 NAT 的内部接口和外部接口,内部接口使用如下命令在接口配置模式下定義:

Router(config-if)# ip nat inside

外部接口使用如下命令在接口配置模式下定義:

Router(config-if)# ip nat outside

配置動态 NAT

動态 NAT 的配置需要先定義用于轉換的地址池,并且為這個地址池命名,使用的命令如下。“pool-name” 是地址池名,“start-ip” 是第一個可用 ip,“end-ip” 是最後一個可用的 ip,這 2 個參數将表示 ip 地址的範圍。netmask 關鍵字指示哪些地址位屬于網絡位。

Router(config)# ip nat pool pool-name start-ip end-ip {netmask netmask | prefix-length prefix-length}

接着需要定義一個 ACL 把需要進行 NAT 轉換的流量篩選出來,使用命令如下,使用命名 ACL 也可以:

Router(config)# access-list access-list-number permit source [ source-wildcard ]

接下來要将 ACL 和 NAT 地址池進行綁定,使用的命令如下:

Router(config)# ip nat inside source list access-list-number pool pool-name

最後接着需要将接口配置為相對于 NAT 的内部接口和外部接口,内部接口使用如下命令定義:

Router(config-if)# ip nat inside

外部接口使用如下命令定義:

Router(config-if)# ip nat outside

配置 PAT實驗拓撲

思科 11.2.3.7 Lab 配置 NAT 地址池過載和 PAT 的實驗拓撲如下。

網絡地址轉換nat的作用是什麼(網絡技術NAT網絡地址轉換及原理)5

地址分配表:

設備

接口

IP 地址

子網掩碼

默認網關

Gateway

G0/1

192.168.1.1

255.255.255.0

N/A

S0/0/1

209.165.201.18

255.255.255.252

N/A

ISP

S0/0/0 (DCE)

209.165.201.17

255.255.255.252

N/A

Lo0

192.31.7.1

255.255.255.255

N/A

PC-A

NIC

192.168.1.20

255.255.255.0

192.168.1.1

PC-B

NIC

192.168.1.21

255.255.255.0

192.168.1.1

PC-C

NIC

192.168.1.22

255.255.255.0

192.168.1.1

配置并檢驗 NAT 地址池過載配置 NAT 地址池過載

配置網關路由器,将來自 192.168.1.0/24 網絡的 IP 地址轉換為 209.165.200.224/29 範圍内的六個可用地址中的一個。首先定義與 LAN 私有 IP 地址相匹配的訪問控制列表,由于要對 G0/1 接口的網段 192.168.1.0/24 做 NAT,因此定義 ACL 1 用來允許對 192.168.1.0/24 的流量能夠被轉換。标準 ACL 篩選流量的作用也可以從此處體現。

Gateway(config)# access-list 1 permit 192.168.1.0 0.0.0.255

定義可用的公有 IP 地址池,和動态 NAT 一樣,使用的命令為 “ip nat pool pool-name start-ip end-ip { netmask netmask | prefix-length prefix-length }”。“pool-name” 是地址池名,“start-ip” 是第一個可用 ip,“end-ip” 是最後一個可用的 ip,這 2 個參數将表示 ip 地址的範圍。netmask 關鍵字指示哪些地址位屬于網絡位。

Gateway(config)# ip nat pool public_access 209.165.200.225 209.165.200.230 netmask 255.255.255.248

定義從内部源列表到外部地址池的 NAT,使用 “ip nat inside source list access-list-number pool pool-name overload” 命令綁定 ACL 和地址池。注意到示例命令後面跟了個關鍵字 overload,該關鍵字表示過載,用于配置 PAT。

Gateway(config)# ip nat inside source list 1 pool public_access overload

指定接口,對接口使用 “ip nat inside” 配置内部接口,“ip nat outside” 命令配置外部接口。

Gateway(config)# interface g0/1 Gateway(config-if)# ip nat inside Gateway(config-if)# interface s0/0/1 Gateway(config-if)# ip nat outside

檢驗 NAT 地址池過載

每台 PC 對 192.31.7.1 地址執行 ping 操作後,顯示網關路由器上的 NAT 統計數據。

Gateway# show ip nat statistics

該命令可以顯示總轉換數,NAT 配置參數、地址池地址數量和已分配地址數量。

網絡地址轉換nat的作用是什麼(網絡技術NAT網絡地址轉換及原理)6

顯示網關路由器上的 NAT。

Gateway# show ip nat translations

該命令可以顯示活動的 NAT 轉換。

網絡地址轉換nat的作用是什麼(網絡技術NAT網絡地址轉換及原理)7

命令列出了 3 個内部本地 IP 地址,分别是 192.168.1.20、192.168.1.21、192.168.1.22,列出了 1 個内部全局 IP 地址 209.165.200.225。

删除 NAT 配置

删除可用公有 IP 地址池。

Gateway(config)# no ip nat pool public_access 209.165.200.225 209.165.200.230 netmask 255.255.255.248

删除從内部源列表到外部地址池的 NAT 轉換

Gateway(config)# no ip nat inside source list 1 pool public_access overload

接口定義外部地址配置并檢驗 PAT使用接口定義外部地址

首先定義與 LAN 私有 IP 地址相匹配的訪問控制列表,ACL 1 用來允許對 192.168.1.0/24 進行轉換。标準 ACL 篩選流量的作用也可以從此處體現。

Gateway(config)# access-list 1 permit 192.168.1.0 0.0.0.255

指定接口,對接口使用 ip nat inside 和 ip nat outside 命令。

Gateway(config)# interface g0/1 Gateway(config-if)# ip nat inside Gateway(config-if)# interface s0/0/1 Gateway(config-if)# ip nat outside

使用接口而不是地址池來定義外部地址,進而配置 PAT,将源列表與外部接口相關聯。

Gateway(config)# ip nat inside source list 1 interface serial 0/0/1 overload

檢驗 PAT

每台 PC 對 192.31.7.1 地址執行 ping 操作後,顯示網關路由器上的 NAT 統計數據。

Gateway# show ip nat statistics

網絡地址轉換nat的作用是什麼(網絡技術NAT網絡地址轉換及原理)8

顯示網關路由器上的 NAT。

Gateway# show ip nat translations

網絡地址轉換nat的作用是什麼(網絡技術NAT網絡地址轉換及原理)9

命令列出了 3 個内部本地 IP 地址,分别是 192.168.1.20、192.168.1.21、192.168.1.22,列出了 1 個内部全局 IP 地址 209.165.201.18。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved