首頁>數碼>

IP 地址中預留了 3 個私有地址網段,在私有網絡內,可以任意使用。

其餘的 IP 地址可以在互聯網上使用,由 IANA 統一管理,稱為公網地址。

NAT 解決了 IPv4 地址不夠用的問題,另外 NAT 屏蔽了私網用戶真實地址,提高了私網用戶的安全性。典型的 NAT 組網模型,網絡通常是被劃分為私網和公網兩部分,各自使用獨立的地址空間。私網使用私有地址 10.0.0.0/24 ,而公網使用公網地址。為了讓主機 A 和 B 訪問互聯網上的服務器 Server ,需要在網絡邊界部署一臺 NAT 設備用於執行地址轉換。NAT 設備通常是路由器或防火牆。

基本 NAT基本 NAT 是最簡單的一種地址轉換方式,它只對數據包的 IP 層參數進行轉換,它可分為靜態 NAT 和動態 NAT 。靜態 NAT 是公網 IP 地址和私有 IP 地址有一對一的關係,一個公網 IP 地址對應一個私有 IP 地址,建立和維護一張靜態地址映射表。動態 NAT 是公網 IP 地址和私有 IP 地址有一對多的關係,同一個公網 IP 地址分配給不同的私網用戶使用,使用時間必須錯開。它包含一個公有 IP 地址池和一張動態地址映射表。舉個動態 NAT 栗子私網主機 A( 10.0.0.1 )需要訪問公網的服務器 Server( 61.144.249.229 ),在路由器 RT 上配置 NAT ,地址池為 219.134.180.11 ~ 219.134.180.20 ,地址轉換過程如下:

A 向 Server 發送報文,網關是 10.0.0.254 ,源地址是 10.0.0.1 ,目的地址是 61.144.249.229 。

RT 從地址池中查找第一個可用的公網地址 219.134.180.11 ,用這個地址替換數據包的源地址,轉換後的數據包源地址為 219.134.180.11 ,目的地址不變。同時 RT 在自己的 NAT 表中添加一個表項,記錄私有地址 10.0.0.1 到 公網地址 219.134.180.11 的映射。RT 再將報文轉發給目的地址 61.144.249.229 。

Server 收到報文後做相應處理。Server 發送迴應報文,報文的源地址是 61.144.249.229 ,目的地址是 219.134.180.11 。

RT 收到報文,發現報文的目的地址 219.134.180.11 在 NAT 地址池內,於是檢查 NAT 表,找到對應表項後,使用私有地址 10.0.0.1 替換公網地址 219.134.180.11,轉換後的報文源地址不變,目的地址為 10.0.0.1 。RT 在將報文轉發給 A 。

A 收到報文,地址轉換過程結束。

如果 B 也要訪問 Server ,則 RT 會從地址池中分配另一個可用公網地址 219.134.180.12 ,並在 NAT 表中添加一個相應的表項,記錄 B 的私有地址 10.0.0.2 到公網地址 219.134.180.12 的映射關係。

NAPT在基礎 NAT 中,私有地址和公網地址存在一對一地址轉換的對應關係,即一個公網地址同時只能分配給一個私有地址。它只解決了公網和私網的通信問題,並沒有解決公網地址不足的問題。

NAPT( Network Address Port Translation )對數據包的 IP 地址、協議類型、傳輸層端口號同時進行轉換,可以明顯提高公網 IP 地址的利用率。

舉個栗子私網主機 A( 10.0.0.1 )需要訪問公網的服務器 Server 的 WWW 服務( 61.144.249.229 ),在路由器 RT 上配置 NAPT ,地址池為 219.134.180.11 ~ 219.134.180.20 ,地址轉換過程如下:A 向 Server 發送報文,網關是 RT( 10.0.0.254 ),源地址和端口是 10.0.0.1:1024 ,目的地址和端口是 61.144.249.229:80 。

RT 收到 IP 報文後,查找路由表,將 IP 報文轉發至出接口,由於出接口上配置了 NAPT ,因此 RT 需要將源地址 10.0.0.1:1024 轉換為公網地址和端口。RT 從地址池中查找第一個可用的公網地址 219.134.180.11 ,用這個地址替換數據包的源地址,並查找這個公網地址的一個可用端口,例如 2001 ,用這個端口替換源端口。轉換後的數據包源地址為 219.134.180.11:2001 ,目的地址和端口不變。同時 RT 在自己的 NAT 表中添加一個表項,記錄私有地址 10.0.0.1:1024 到 公網地址 219.134.180.11:2001 的映射。RT 再將報文轉發給目的地址 61.144.249.229 。

Server 收到報文後做相應處理。Server 發送迴應報文,報文的源地址是 61.144.249.229:80 ,目的地址是 219.134.180.11:2001 。

RT 收到報文,發現報文的目的地址在 NAT 地址池內,於是檢查 NAT 表,找到對應表項後,使用私有地址和端口 10.0.0.1:1024 替換公網地址 219.134.180.11:2001,轉換後的報文源地址和端口不變,目的地址和端口為 10.0.0.1:1024 。RT 再將報文轉發給 A 。

A 收到報文,地址轉換過程結束。如果 B 也要訪問 Server ,則 RT 會從地址池中分配同一個公網地址 219.134.180.11 ,但分配另一個端口 3001 ,並在 NAT 表中添加一個相應的表項,記錄 B 的私有地址 10.0.0.2:1024 到公網地址 219.134.180.12:3001 的映射關係。

Easy IP在標準的 NAPT 配置中需要創建公網地址池,也就是必須先知道公網 IP 地址的範圍。而在撥號接入的上網方式中,公網 IP 地址是由運營商動態分配的,無法事先確定,標準的 NAPT 無法做地址轉換。要解決這個問題,就要使用 Easy IP 。Easy IP 又稱為基於接口的地址轉換。在地址轉換時,Easy IP 的工作原理與 NAPT 相同,對數據包的 IP 地址、協議類型、傳輸層端口號同時進行轉換。但 Easy IP 直接使用公網接口的 IP 地址作為轉換後的源地址。Easy IP 適用於撥號接入互聯網,動態獲取公網 IP 地址的場合。

Easy IP 無需配置地址池,只需要配置一個 ACL(訪問控制列表),用來指定需要進行 NAT 轉換的私有 IP 地址範圍。NAT Server從基本 NAT 和 NAPT 的工作原理可知,NAT 表項由私網主機主動向公網主機發起訪問而生成,公網主機無法主動向私網主機發起連接。因此 NAT 隱藏了內部網絡結構,具有屏蔽主機的作用。但是在實際應用中,內網網絡可能需要對外提供服務,例如 Web 服務,常規的 NAT 就無法滿足需求了。為了滿足公網用戶訪問私網內部服務器的需求,需要使用 NAT Server 功能,將私網地址和端口靜態映射成公網地址和端口,供公網用戶訪問。

舉個栗子A 的私網地址為 10.0.0.1 ,端口 8080 提供 Web 服務,在對公網提供 Web 服務時,要求端口號為 80 。在 NAT 設備上啟動 NAT Server 功能,將私網 IP 地址和端口 10.0.0.1:8080 映射成公網 IP 地址和端口 219.134.180.11:80 ,這樣公網主機 C 就可以通過 219.134.180.11:80 訪問 A 的 Web 服務。NAT ALG基本 NAT 和 NAPT 只能識別並修改 IP 報文中的 IP 地址和端口號信息,無法修改報文內攜帶的信息,因此對於一些 IP 報文內攜帶網絡信息的協議,例如 FTP 、DNS 、SIP 、H.323 等,是無法正確轉換的。ALG 能夠識別應用層協議內的網絡信息,在轉換 IP 地址和端口號時,也會對應用層數據中的網絡信息進行正確的轉換。舉個栗子:ALG 處理 FTP 的 Active 模式FTP 是一種基於 TCP 的協議,用於在客戶端和服務器間傳輸文件。FTP 協議工作時建立 2 個通道:Control 通道和 Data 通道。Control 用於傳輸 FTP 控制信息,Data 通道用於傳輸文件數據。私網 A( 10.0.0.1 )訪問公網 Server( 61.144.249.229 )的 FTP 服務,在 RT 上配置 NAPT,地址池為 219.134.180.11 ~ 219.134.180.20 ,地址轉換過程如下:

A 發送到 Server 的 FTP Control 通道建立請求,報文源地址和端口為 10.0.0.1:1024 ,目的地址和端口為 61.144.249.229:21 ,攜帶數據是 “ IP = 10.0.0.1 port=5001 ”,即告訴 Server 自己使用 TCP 端口 5001 傳輸 Data。

RT 收到報文,建立 10.0.0.1:1024 到 219.134.180.11:2001 的映射關係,轉換源 IP 地址和 TCP 端口。根據目的端口 21 ,RT 識別出這是一個 FTP 報文,因此還要檢查應用層數據,發現原始數據為 “ IP = 10.0.0.1 port=5001 ”,於是為 Data 通道 10.0.0.1:5001 建立第二個映射關係:10.0.0.1:5001 到 219.134.180.11:2002 ,轉換後的報文源地址和端口為 219.134.180.11:2001 ,目的地址和端口不變,攜帶數據為 “ IP = 219.134.180.11 port=2002 ”

Server 收到報文,向 A 迴應 command okay 報文,FTP Control 通道建立成功。同時 Server 根據應用層數據確定 A 的 Data 通道網絡參數為 219.134.180.11:2002 。A 需要從 FTP 服務器下載文件,於是發起文件請求報文。Server 收到請求後,發起 Data 通道建立請求,IP 報文的源地址和端口為 61.144.249.229:20 ,目的地址和端口為 219.134.180.11:2002,並攜帶 FTP 數據。

10
最新評論
  • 雙11 神舟放大招,11代i7筆電直降1100?
  • 4款被低估的中端手機,價格都在三千元以內,流暢五年不是問題