網路位址轉換(NAT)

2021-09-23 10:25:14 字數 2816 閱讀 5392

nat將內部網路的私網ip位址轉換成全球唯一的公網ip位址,使內部網路可以連線到外部網路中,我們平時上網都會使用到nat這個技術,nat一共三種實現方式:靜態轉換;動態轉換;pat(port-base address translation 基於埠的位址轉換),其中常用到的是靜態轉換和pat,動態轉換不太實用。因為動態轉換的話,我們擁有的公網ip位址要和區域網要上網的ip位址一樣多。這是不現實的。所以這裡就不說動態ip了。

靜態轉換是一對一(乙個公網ip位址對應乙個私網ip位址)、一對多(乙個公網ip位址對應多個私網ip位址)的轉換,主要是用於我們內部需要讓外網客戶訪問的伺服器會做靜態轉換,簡單的靜態轉換只能一對一,可以通過nat埠對映來實現一對多的轉換。

一對一轉換的實現過程如下:

router(config)#ip nat inside source static 192.168.1.1 20.0.0.2 #將內網ip位址192.168.1.1在與外網通訊時轉換為20.0.0.2

router(config)#in f0/0 #進入內部網路的介面

router(config-if)#ip nat inside #在內部網路的埠啟用nat

router(config-if)#in f0/1 #進入連線外部網路的埠

router(config-if)#ip nat outside #在連線外部網路的埠啟動nat(注意:和在內部網路的介面啟用nat的命令字有差別

經過以上配置,靜態轉換(一對一)就生效了。

接下來我們使用nat埠對映,實現靜態轉換的一對多轉換(跟一對一的轉換差別不大,只是多定義了下埠號)。命令如下:

router(config)#ip nat inside source static tcp 192.168.1.1 80 20.0.0.2 80 extendable #將內網ip位址為192.168.1.1的web伺服器在與外網通訊時轉換為20.0.0.2

router(config)#ip nat inside source static tcp 192.168.1.2 25 20.0.0.2 25 extendable #將內網ip位址為192.168.1.2的smtp伺服器在與外網通訊時轉換為20.0.0.2

以上兩條配置成功後(同樣需要分別在內部埠和外部埠啟動nat),當外網使用者訪問web伺服器時,路由器會對應nat轉換條目,並檢視埠號,然後把資料報傳送給192.168.1.1的web伺服器;當外網使用者訪問smtp伺服器時,路由器同樣會檢視nat轉換條目,並檢視埠號,然後把資料報傳送給192.168.1.2的smtp伺服器。這樣就實現了基於nat埠對映的一對多的靜態轉換。(當然,若有兩台伺服器都是相同服務的話,就不太適用了,如果更改服務預設的埠號,就會不利於使用者的訪問了。)

patpat可以實現一對多(乙個公網ip位址對應多個私網ip位址)、直接復用路由器外部介面位址,兩種實現方式。

一對多的實現命令如下(需要借助acl控制列表):

router(config)#access-list 1 permit 192.168.1.0 0.0.0.255 #定義acl控制列表,允許192.168.1.0/24網段的流量通過。

router(config)#ip nat pool 123 20.0.0.2 20.0.0.2 netmask 255.0.0.0 #定義合法的公網ip位址池,其中「123」為位址池的名字。可以自行定義。第一段ip為起始ip位址,第二段ip位址為結束ip位址,因為只用乙個公網ip,所以起始和結束相同

router(config)#ip nat inside source list 1 pool 123 overload #overload是啟用埠復用方式,這條命令實現的是:以埠復用方式,將acl 1 中的區域性位址轉換為123位址池中定義的全域性ip位址。

接下來分別在內部埠和外部埠啟用nat即可生效。

router(config)#access-list 2 permit 192.168.2.0 0.0.0.255 #定義acl控制列表,允許192.168.2.0/24網段的流量通過

由於直接使用外部介面位址,因此不用定義ip位址池。

router(config)#ip nat inside source list 2 in f0/1 overload #在全域性配置模式,設定復用動態ip位址轉換,在內部的acl 2 的位址與路由器上與外網連線的介面合法公網ip位址之間建立位址轉換。

以上就是幾種常用的位址轉換方式。在配置完成後可以在特權模式下執行:router#debug ip nat命令後,讓內網和外網通訊,來檢視除錯資訊,以便驗證位址轉換是否達到了我們所要實現的要求,若要關閉此功能,輸入router#no debug ip nat 即可。也可執行router#show ip nat translations來檢視轉換條目;執行:router#clear ip nat translations *刪除除靜態轉換條目以外的所有條目。

nat的故障排查思路

若遇到nat故障,基本上可以歸於兩類:配置錯誤和沒有正確理解nat的工作方式。

一般可以通過router#i show run來檢視配置,以便檢查以下幾個方面是否存在問題:

1、是否設定了acl,阻塞了進行過nat或沒有進行過nat的流量;

2、定義需要進行nat的acl是,漏掉了需要進行位址轉換的網路;

3、在nat語句中漏掉了overload關鍵字。為了建立pat,在nat配置命令的最後,必須使用overload關鍵字,漏掉這個關鍵字,將會導致無法進行pat,最終將會導致只有數目有限的主機可以訪問公用網或網際網路,而不是期望中的所有主機。

4、不對稱路由導致nat失敗,就是在外部埠(outside)和內部埠(inside)配置反了;

5、nat位址池和靜態nat表項中有重疊位址。要確保nat位址池中的ip位址也不能用於靜態nat,這很重要。

網路位址轉換 NAT

nat概述 網路位址轉換 nat 通過將內部網路的私有ip位址翻譯成全球唯一的公網ip位址,使內部網路可以連線到網際網路等外部網路上,廣泛應用於各型別的網際網路接入方式和各種型別的網路中。nat的實現方式有一下三種 靜態位址轉換 將內部網路的私有ip位址轉換為公有的合法的ip位址,ip位址的對應關係...

網路位址轉換NAT

一般來說每台主機都有乙個固定的ip位址用於表示自己在internet中的身份,但乙個單位只能分配到少量的公開ip位址,同時也為了安全而不向internet公開單位內部的位址,所以企業內部的主機通常都使用私有位址,當內部主機要訪問internet時,必須進行 網路位址轉換 即把私有ip位址轉換成公開i...

網路位址轉換NAT

概述 nat是將ip資料報文報頭中的ip位址轉換為另乙個ip位址的過程,主要用於實現內部網路 私有ip位址 訪問外部網路 公有ip位址 的功能。nat有三種型別 靜態nat 動態nat 網路位址埠轉換napt nat轉換裝置 實現nat功能的網路裝置 維護著位址轉換列表,所有經過nat轉換裝置並且需...