1. 程式人生 > >linux 網路地址轉換NAT

linux 網路地址轉換NAT

網路地址轉換NAT
linux 網路地址轉換NAT
NAT的作用:
增加IPv4的地址數量,解決私網地址不能上網的問題。

NAT的概念:
通過將內部網路的私網IP地址翻譯成全球唯一的公網IP地址。

原理

原理:
linux 網路地址轉換NAT
就是將內部本地轉換為內部全域性的地址,即將私網地址轉換為公網地址去上網。

NAT術語:
內部本地(區域性) 在內部網路中分配給主機使用的私有ip地址
內部全域性 該地址通常是從全球統一可定址的地址空間中分配的,一般由網際網路服務同上(ISP)提供
外部全域性 外部網路上的主機分配的ip地址。該地址也是從全球統一可定址的地址空間中分配的
外部本地(區域性) 外部主機表現在內部網路的ip地址
簡單轉換條目 將一個ip地址對映到另一個ip地址的轉換條目
擴充套件轉換條目 對映ip地址和埠到另一對ip地址和埠的條目

NAT的優點:
1、節省公網地址
2、增強靈活性、安全性
3、處理重疊的地址

缺點:
1、延遲增大
2、配置和維護的複雜性
3、不支援某些應用

NAT的實現方式:(分類)
1、靜態轉換(Static translation)靜態NAT
2、動態轉換(Dynamic translation)動態NAT
3、埠地址轉換(Port Address Translation,PAT)

一、靜態轉換
將內部網路的私有ip地址轉換為公用合法的ip地址,ip地址的對應關係是一對一的,而且是不變的。

主要用在內部網路中有對外提供服務的伺服器

缺點:需要獨佔寶貴的合法ip地址。
如果某個合法ip地址已經被NAT靜態地址轉換定義,即該合法ip地址當前沒有被使用,也不能被用作其它的地址轉換。

linux 網路地址轉換NAT

二、動態NAT
將內部網路的私有地址轉換為公網地址進行一對一的轉換。但是,是從公網地址池中選擇一個未使用的地址對內部私有地址進行轉換。

優點:隨機的
缺點:不節約、不固定的。

linux 網路地址轉換NAT

三、埠地址轉換
也被稱為複用地址轉換(PAT)
也是一種動態的地址轉換。

工作過程:路由器改變外出資料包的源ip地址和源埠,並進行埠轉換,即採用埠多路複用方式,通過這種轉換,可以使多個內部私有ip地址同時與同一個公網ip地址進行轉換並對外部網路進行訪問。

一個公網地址對應多個私網地址。

優點:
1、節約公網ip地址
2、隱藏內部的所有主機,避免******。

理想狀況下,一個單一的IP地址可以使用的埠數為4000個。

四、NAT配置
1、靜態NAT配置步驟:
(1)先設定外部埠的ip地址
(2)再設定內部埠的ip地址
(3)在全域性配置模式下:
ip nat inside source static 內部本地ip地址 內部全域性ip地址 [extended]
注:extended(可選)表示允許同一個內部區域性地址對映到多個內部全域性地址。

例子:ip nat inside source static 192.168.100.2 61.159.62.130
將內部區域性地址192.168.100.2轉換為內部全域性地址61.159.62.130
ip nat inside source static 192.168.10.10 202.10.168.130
(4)在內部和外部埠上啟用NAT
將埠設定為內部埠或者外部埠
int f0/0
ip nat outside ##將當前埠設定為外部埠
exit
int f1/1
ip nat inside ##將當前埠設定為內部埠
exit
(4)配置路由。

2、NAT埠對映
(1)先給所有的埠設定ip地址
(2)在全域性配置模式下配置埠對映,配置命令如下:
ip nat inside source static tcp/udp 私網地址 埠號 公網地址 埠
意義:將TCP或UDP協議中私網地址需要轉換的埠轉換成公網地址的埠號。

例子:ip nat inside source static tcp 192.168.10.10 80 192.168.20.20 8080
將Web伺服器192.168.10.10的80埠轉換成192.168.20.20的8080埠。

注:NAT埠對映還可以將不同伺服器的不同服務(埠)對映到同一公網地址的不同埠,給人的感覺就是通過同一個地址訪問了所有的伺服器。

3、動態NAT
(1)先設定路由的所有埠的ip地址
(2)在全域性配置模式下,定義內部網路中允許訪問外部網路的ACL
(3)在全域性配置模式下,定義合法ip地址池
配置命令如下:
ip nat pool 地址池名稱 起始地址 終止地址 netmask 子網掩碼 type rotary
(4)實現網地址轉換,配置命令如下:
ip nat inside source list ACL列表號 pool 地址池名稱 overload(反覆用)
意義:將ACL列表中的地址轉換為地址池名稱中定義的地址
例子:
ip nat inside source list 1 pool test0
將ACL1中的區域性地址轉換為test0地址池定義的全域性地址
注:如果有多個地址池的話,也可以一一新增,以增加合法地址池的數量範圍。
ip nat inside source list 1 pool test1
ip nat inside source list 1 pool test2
以此類推。
(5)在內部和外部埠上啟用NAT
(6)配置路由

4、PAT
(1)使用外部全域性地址
①先配置所有埠的ip地址
②配置內部訪問列表
③定義合法的ip地址池,命令如下:
ip nat pool 地址池名稱 起始地址 終止地址 network 子網掩碼
④設定複用動態ip地址轉換:
ip nat inside source list ACL列表號 pool 地址池名稱 [overload]
⑤在內部和外部埠上啟用NAT
⑥配置路由

(2)複用路由器外部介面地址
①先配置所有埠
②定義內部訪問列表
③設定複用動態ip地址轉換,命令如下:
ip nat inside source list ACL1 interface 埠編號 overload
意義:以埠複用方式,將ACL1中的私有地址轉化為路由器外部介面的合法ip地址。
④在外部和內部埠上啟用NAT
⑤配置預設路由。

show ip nat translations [verbose] 檢視NAT轉換條目,verbose顯示更多資訊,包括一個動態條目的儲存時間
show ip nat statistics 檢視NAT的統計資訊
debug ip nat 跟蹤NAT的操作,顯示出每個轉換的資料包。