網路地址轉換NAT
什麼是NAT?有什麼作用?
NAT是網路地址轉換。為什麼要進行網路地址轉換?
網路有LAN,區域網和廣域網
IP地址有私有和公有。私有一般用於區域網,公有用於廣域網。對於企業內部而言,配置私有IP地址。租用的是一個非固定的地址,我們不用的時候,服務商會把地址會把地址給別人用。企業用的是專線,也就是固定的IP地址。
給企業內部的主機配置私有地址,要用到NAT地址轉換技術。
當你有訪問Internet需求時,可以藉助轉換為一個公網地址,藉助這個地址可以出去。使得企業內部的主機可以訪問Internet,公共網路。
因此,
NAT(Network Address Translation),網路地址轉換
作用:通過將內部網路的私有IP地址翻譯成全球唯一的公網IP地址,使內部網路可以連接到互聯網等外部網路上。
NAT的優點:
-節省公有合法IP地址
-處理地址重疊
-增強靈活性
-安全性
NAT實現方式
-靜態轉換(Static Translation)
-動態轉換(Dynamic Translation)
-埠多路復用(Port Address Translation,PAT)
不管是哪種轉換方式,都要有一個可轉換在公網IP地址,那麼給誰做轉換呢?給企業內部的私網地址作轉換,我們叫企業內部的私網地址叫內部地址。什麼是內部局部地址?就是企業內部的區域網地址。內部局部地址能直接訪問Internet嗎?不能,得有可轉換的公網地址。給內部局部提供可轉換的公網地址,叫做內部全局地址。
NAT包含的4類地址:內部局部地址、外部局部地址、內部全局地址、外部全局地址。
內部局部地址、外部局部地址、內部全局地址、外部全局地址都是相對而言的。如何進行選擇呢?一定要看題目,是誰去訪問誰?你訪問對方,那你就是內部,對方來訪問你,你就是外部。也就是說內部地址和外部地址不是絕對的地址,要看具體誰去訪問誰。
靜態轉換和動態轉換:
不管是靜態還是動態,在轉換的時候都需要成功轉換一個可用的公網地址,該地址叫做內部的全局。要轉換企業內部的主機地址叫做內部局部,比如在路由器當中,在進行轉換的時候,需要查看轉換列表的時候,根據轉換列表當中的轉換條目看看這個主機和轉換的公網地址是多少,通過哪個公網地址出去。
當路由器接收到企業內部10.1.1.1這個主機要訪問外部網路的數據包之後,要訪問的外部主機203.51.23.55,是一個公網上的主機。
路由器要查看NAT的轉換列表,看看這個主機有沒有可轉換的公網地址,有可轉換的公網地址,通過內部全局(125.25.65.3)出去。
所以說起初的源IP地址是10.1.1.1,但是去訪問Internet的源IP地址就是125.25.65.3。有了公網地址就可以走Internet網路。通過Internet訪問外部伺服器。
那麼伺服器(203.51.23.55)響應是給哪個地址響應呢?給125.25.65.3響應。
最後的DA目標是10.1.1.1。將外部主機的響應數據發送給主機10.1.1.1。
工作原理就是,接收到數據包後要查找NAT轉換列表。
接下來是
PAT轉換
兩臺主機轉換的公網地址為同一個,當1.1和1.2通過一個公網地址出去的時候,當外部主機進行響應的時候,這個數據包是發給1.1還是發給1.2呢?因為這兩個主機是通過一個公網地址出去的,當外部主機響應的時候如何區分是哪個主機所發送的數據包?加了一個埠號。主機IP地址一樣,但是埠號的值不一樣,這就稱之為埠多路復用的轉換方式PAT。那麼企業內部的多臺主機共享一個合法地址。如何區分企業內部的主機呢?通過不同的埠號來區分。
接下來講靜態轉換。什麼是靜態轉換?
靜態轉換:IP地址的對應關係是一對一,而且是不變的,藉助靜態轉換,能實現外部網路對內部網路中某些特設定伺服器的訪問。
但是靜態轉換並沒有起到公網地址的節約,只是隱藏了企業內部的細節,提高了安全性。
靜態NAT的配置步驟:
-介面IP地址配置
-決定需要轉換的主機地址
-決定採用什麼公有地址
-在內部和外部埠上啟用NAT
全局模式下:ip nat inside source static local-ip global-ip[extendable]
要注意配置環境。
配置好介面IP地址後,路由器之間先不要互相宣告自己的網段,因為今天是要用NAT地址轉換技術來通而不是用互相宣告來通的。
現在模擬外部只有一2網段,但是實際情況,會有更多網段,因此先在Router1全局模式下配置一個默認路由,默認路由匹配任意網段:ip route 0.0.0.0 0.0.0.0 61.159.62.130或ip route 0.0.0.0 0.0.0.0 f0/1。
注意下一跳可以用IP地址(也就是Router所連接的下一個路由器介面IP)表示,也可以用埠號來表示。埠號寫的是本地哪個埠與下一跳相連,因此在Router1上埠號為F0/1。
那麼對於Router1而已就知道怎麼出去了。
此時只需要1.1能PING通129,2.1能PING通130就OK了。1.1不需要PING通2.1,因為如果1.1通PING通2.1那麼就用不到NAT地址轉換技術了。
一共有6個可用IP,129和130已經被用了,把131給1.1用。(所以要知道可用地址有哪些,要會算可用IP地址)
接下來,Router全局模式:ip nat inside source static 192.168.1.1 61.159.62.131。
此時1.1還不可以PING通2.1。雖然配置了1.1使用哪個公網地址,但是沒有在介面上啟用。NAT不僅要啟用,而且入口和出口都要啟用,要對稱。(ACL訪問控制協議只需要啟用一個口),如下圖
啟用後,現在1.1和2.1可以PING通了。
靜態轉換是1對1,所以通過剛才的轉換,1.2和1.3都出不去。
靜態NAT地址轉換隻是一對一,並沒有起到節約公網地址的作用,所以在實際當中很少用到,一般靜態NAT地址轉換多用於將企業內部的伺服器發部到Internet,也就是向外發布內部服務的時候用到。
接下來把剛剛的配置取消掉,如下圖
接下來搭建一臺伺服器,配置IP地址,並開啟HTTP服務
企業內部主機是否能訪問Server0的HTTP服務?可以,如下圖
接下來不僅想讓企業內部主機可以訪問Server0的HTTP服務,還想讓企業外部的主機能夠訪問Server0的HTTP服務。
首先,192.168.1.6是一個私有地址,所以要想讓外部主機能夠訪問Server0的HTTP服務,對應要有一個公網地址。
為了隱藏企業內部的細節,還不想把公網地址直接配置到Server0伺服器上,配置一個私有地址,怎麼辦呢?通過靜態地址轉換技術,讓其對應一個公網地址,使得企業外部主機來訪問公網地址的時候好比訪問企業內部伺服器Server0的HTTP服務(HTTP服務對應TCP的80埠),我們藉助於靜態的埠映射技術。為什麼要用埠映射呢?想讓192.168.1.6的80埠對應於指定的公網地址,公網地址所對應的哪個埠?也是80埠。當外部網路訪問公網地址的80埠時就相當於訪問192.168.1.6的80埠。把這個叫做埠映射,如下圖
接下來講動態NAT地址轉換技術
假如10臺主機共用2個公網地,動態的含義就是多對多
動態NAT:IP地址的對應關係是不確定的,而是隨機的,所有被授權訪問互聯網的私有地址可隨機轉換為任何指定的合法的外部IP地址。(內部網路同時訪問Internet的主機數少於配置的合法地址中的IP個數時適用)
接下來是動態NAT地址轉換技術的配置
先把以上的配置上面的配置NO掉
還有1.1轉換為131和1.2轉132也NO掉
進入Router配置
允許1.0網段的主機們,定義轉換源是哪個網段,還沒有真正進行訪問控制。如想真正進行訪問控制要在介面應用ACL。介面不需要應用ACL,現在只是定義給誰做轉換。
access-list 1 permit 192.168.1.0 0.0.0.255
第二部定義可轉換的公網地址,定義一個地址池,裡麪包含可轉換的公網地址
ip nat pool 2018 61.159.62.131 61.159.62.132 netmask 255.255.255.248
接下來將列表1(access-list 1 )轉換為2018這個池,相當於讓1.0網段使用131到132的公網地址。
ip nat inside source list 1 pool 2018
第四步,在介面上啟用,但是上面介面啟用NAT地址轉換並沒有取消,所以此處不需要再定義。
接下來PING測試一下,1.1PING2.1,1.2PING2.1,1.3PING2.1,都可以PING通。
show ip nat tranlation查看轉換列表(看一下IP地址具體用到哪個公網IP,1.2用到132),如下圖:
show ip translations查看轉換列表,查看具體哪個內部局部(企業內部主機的IP地址)使用了哪個內部全局(可轉換的公網地址)。
debug ip nat //轉換的時候實時顯示,如下圖
顯示每個轉換的數據包
特權:debug ip nat
S表示源地址
D表示目的地址
如何關閉debug ip nat,前面加no ,no debug ip nat
動態轉換,當同時訪問Internet的主機數超過可轉換的公網IP地址個數時,就不適用了。
下面是第三種轉換方式
接下來取消掉上面的動態轉換,特權:no ip nat inside source list 1 pool 2018//列表1轉換為2018的池,no掉
接下來讓企業所有主機共享一個地址來訪問Internet,企業租用了一個合法的公網IP地址,並且將該地址配置到路由器連接到外邊網路的介面上。
61.159.62.129/29,該地址已經配到路由器介面上了,讓企業內部所有主機共享這個地址訪問Internet,接下來用到第三種轉換方式,PAT埠多路復用
PAT埠多路復用,第一部也要定義轉換源,就是給誰做轉換,轉換源上面已經定義過了,進入特權模式show access-lists可以看到,如下圖
接下來第二步,進入全局配置模式
ip nat inside source list 1 interface f0/1 overload//讓列表1利用介面f0/1的地址,然後PING測試一下,每個主機都可以PING通
show ip nat tranlations看一下
從而最大限度節約了公網IP地址
PAT埠多路復用能夠使得企業內部主機共享一個IP地址
埠多路利用(PAT):通過改變外出數據包的源IP地址和源埠並進行埠轉換,內部網路的所有主機均可共享一個合法IP地址實現互聯網的訪問,節約IP。
PAT配置:
全局:ip nat inside source list 1 interface f0/1 overload
注意,在PAT配置之前要把之前配置的動態轉換全部NO掉
總結:
NAT三種實現方式的區別:
靜態轉換的對應關係是一對一且不變,沒有節約公用IP,只隱藏了主機的真實地址。
動態轉換雖然在一定情況下節約了公用IP,但當內部網路同時訪問Internet的主機數大於合法地址池中的IP數量時就不適用了。
埠多路復用可以使所有內部網路主機共享一個合法的外部IP地址,從而最大限度節約IP地址資源。
在配置過程當中經常會遇到哪些問題,導致配置失敗,最終沒有轉換成功,配置完後不能和外部網路PING通?
下面是常見的NAT配置問題
ACL阻止轉換後的流量(在進行動態和埠多路復用時,要先配置ACL定義轉換源,如果ACL阻止轉換後的流量,則不能和外網PING通)
進行地址轉換的ACL不全(上面實驗只有一個網段,所以沒遇到這個問題,但實際當中可能有多個部門多個不同網段,允許哪幾個部門訪問Internet,在轉換列表中要包含全面,show ip access-lists可以看出現在只包含一個網段,1.0網段,實際當中假設有多個部門多個網段,所以允許哪幾個部門可以訪問Internet,在列表中要添加全面,所以要注意,有可能進行地址轉換的ACL不全,埠多路復用時要配置overload)
overload參數漏配(埠多路復用時要配置overload)
不對稱路由問題(什麼是不對稱路由?對稱指的是在介面啟用時要有入有出,一個nat inside,一個是nat outside,不僅要對稱就是有入有出,而且還不能顛倒,就是說不能把入口配outsdie出口配inside)
inside和outside介面配置錯誤(不能把inside和outside配顛倒了)
另外動態轉換時,可轉換的公網地址不能配置錯誤,因為可轉換是公網地址是企業租來的,不是隨意自己定的,
而且動態轉換地址池裡的公網地址與靜態地址不能重疊,比如本身有可能配了靜態和動態並存都有。
案例練習:
首先通過三層交換實現VLAN間通信。有四個VLAN。四個部門。
先讓部門之間能夠連通,四個VLAN分別是192.168.1/2/3/4.0。
第一部,通過三層交換實現VLAN間通信。
創建VLAN
配置TRUNK模式
接下來在三層交換上開啟路由功能,分別進入虛商品配IP作為VLAN的網關
先封裝再配TRUNK
給主機們配置IP地址和網關
然後PING測試一下
接下來添加路由器,企業內部網路訪問外網要用到路由器,先在三層交換機介面上配置,再在路由器對應介面上配置
交換機介面IP地址:記住要no switchport
接下來是路由器介面
然後主機們PING一下5.1和5.1測試一下,因為路由器不知道1、2、3網段,所以PING不通,所以,在路由器上要宣告一下5.0網段,三層交換機也要宣告一下直連的1、2、3、4、5網段,如下圖
宣告完後,主機可以PING5.1和5.2了
然後,5.1和5.2也要PING通
接下來開始做外網,如下圖
路由器介面配置IP
現在企業內部主機都可以PING通192.168.5.2,也可以PING通61.159.62.129
對於Switch1如何到達61.159.62.129?show ip route,發現僅知道10、20、30、40、50
路由器所連接的是外部網路的介面,所連接的和要訪問的外部網路太多了,不可能把外網都宣告到企業內部來學,所以,接下來,先告知路由器怎麼出去訪問外部網路,添加一條默路由,如下圖,
路由器知道了,但是三層交換機不知道。我們可以把上面那條默認路由宣告到內部區域內
接下來看三層交換機有沒有學到show ip route
接下來,再PING129就能PING通了(61.159.62.129/29)
上面是在路由器上添加一條默認路由,將默認路由宣告到內部區域,通過RIP協議宣告,然後通過default-information originate命令,將默認路由宣告到內部區域,宣告到內部區域後,在三層交換也學到了默認路由
此時,企業內部的主機與路由器連接外部網路的介面地址PING通了,不是把外部網路的網段宣告過來,而是宣告了一條默認路由。外部網路的網段宣告到企業內部,也可以,但是要訪問的外部網路太多了,所以在路由器上添加一條默認路由,將默認路由宣告到內部區域內。
上面用到的知識有:三層交換機實現VLAN間通信,三層交換機連接路由器配置RIP協議實現現有網路的一個連通性,最終讓企業內部的主機能夠訪問外部網路。
現在要讓企業內部主機訪問外部網路(假如外部網路的IP是61.159.62.130,掩碼是255.255.255.248),現在考慮讓哪些主機訪問外部網路?
接下來用NAT埠多路復用技術來實現企業內部主機允許的部門進行Internet的訪問
進入Router路由器進行配置,全局配置模式
假如允許VLAN1和VLAN3訪問外部網路,轉換列表要全,定義了轉換源,復用f0/0介面,苴要在介面上啟用,如下圖
用VLAN1和VLAN3的主機PING一下可以PING,但VLAN2就PING不通了
實際工作當中就如此,不是允許企業內部所有主機進行Internet的訪問,只是允許的部門訪問,所以就要在轉換列表中定義允許的網段。
接下來規劃企業內部IP地址,在三層交換上配置DHCP服務,以前是在路由器上配置的。在三層交換上和在路由器上配置的命令是一樣的,如下圖
然後看看VLAN1的主機可以自動獲取,如下圖
VLAN2也一樣
然後1.2PING一下2.2,可以PING通,1.2訪問外部網路也可以
總結:NAT埠多路復用技術,NAT技術的作用是將企業內部私有地址轉換為全球唯一的公網地址,使得企業內部網路去訪問外部網路。優點和缺點還有三種實現有方式,靜態、動態和埠多路復用。
推薦閱讀: