您好,登錄后才能下訂單哦!
在NAT的應用中,可以僅需要轉換內部地址(就是“內部本地址”轉換成“內部全局地址”),這是最典型的應用,如內部網絡用戶通過NAT轉換共享上網;也可以是僅需要轉換外部地址(就是“外部全局地址”轉換“外部本地地址”之間的轉換),如外部用戶要訪問位于內部網絡中的服務器;當然還可以同時轉換內部地址和外部地址。
為了方便理解本節后面所介紹的一些配置,現簡單介紹NAT的基本配置思路:
(1)使用ip nat inside source(定義內部本地地址到內部全局地址的映射),或者ip nat outside source(定義外部全局地址到外部本地地址的映射),或者ip nat pool(定義一個內部全局地址池,或者一個外部本地地址池)命令定義一個IP地址映射。具體要使用哪個命令,如何配置地址映射要視所就用的NAT類型和地址轉換類型而定。可以是靜態地址映射,也可以是動態地址映射,或者端口地址映射(PAT);可以是內部地址轉換,也可以是外部地址轉換,或者內、外部地址同時轉換。
本節為了方便介紹,僅以靜態NAT轉換為例進行介紹,所以在下面各小節中僅使用了ip nat inside source static,或者ip nat outside source static命令。
(2)使用ip nat inside命令指定內部接口,使用ip nat outside命令指定外部網絡接口。
總體來說,NAT進行地址轉換的過程就是“本地地址”與“全局地址”之間的轉換過程,無論數據包是從內部網絡發往外部網絡,還是從外部網絡發往內部網絡。不同的只是本地地址和全局地址所對應的網絡不同,以及數據包重新封裝的源和目的地址不同。具體如圖6-8所示。這個過程是通過NAT中的本地址與全局地址映射條目來實現的,所以事先要在NAT路由器上配置這樣的映射條目。
圖6-8 NAT基本地址轉換原理
當內部網絡用戶訪問外部網絡時,所進行的是“內部本地地址”和“內部全局地址”之間的轉換。
在NAT路由器接收到來自內部網絡主機發送的數據包時,其源IP地址(SA)為“內部本地地址”,目的IP地址(DA)為“外部本地地址”。當數據包被轉發到外部網絡時,數據包的源IP地址(SA)就會轉變為“內部全局地址”,而目的IP地址(DA)被轉變為“外部全局地址”。也就是把數據包的所有源IP地址(SA)和目的IP地址(DA)全部由本地地址轉換為全局地址。如圖6-9上部分數據包IP地址轉換示意圖。
相反,當外部網絡用戶訪問內部網絡時,所進行的是“外部本地地址”和“外部全局地址”之間的轉換。
在NAT路由器接收到來自外部網絡主機發送的數據包時,其源IP地址(SA)就是“外部全局地址”,目的IP地址(DA)就是“內部全局地址”。相當于由內部網絡向外部網絡發送數據包時數據包中的源IP地址(SA)和目的IP地址(DA)的互換。而當數據包被路由器轉發到本地網絡時,源IP地址(SA)被轉變為“外部本地地址”,目的IP地址(DA)被轉變為“內部本地地址”,也相當于由內部網絡向外部網絡發送數據包時數據包中的源IP地址(SA)和目的IP地址(DA)的互換。如圖6-9下部分數據包IP地址轉換示意圖。
圖6-9 NAT基本IP地址轉換原理
以上是從總體上介紹NAT的IP地址轉換原理的,實際NAT應用有時并不需要對源IP地址和IP地址進行全面替換,僅需要對源IP地址或者僅需要對目的IP地址進行轉換即可達到所需的目的。下面予以介紹。
多數情況下使用NAT的目的就是為了使內部網絡中的多個用戶能使用一個注冊IP地址訪問外部網絡,所以僅需要配置內部地址NAT轉換。即通過ip nat inside source命令實現“內部本地地址”到“內部全局地址”之間的轉換(既可以采用靜態NAT方式實現,也可以采取動態NAT方式實現),只需要定義內部本地址與內部本局地址的映射。
圖6-10是一個簡單的NAT轉換示例。要實現以下目的:當NAT路由器的內部網絡s0接口上接收到一個源地址為內部本地地址10.10.10.1,目的IP地址為外部本地地址171.16.68.1的數據包時,在轉發到s1接口時,原來數據包源地址的內部本地地址10.10.10.1被轉換成內部全局地址171.16.68.5,但目的地址不變,然后繼續發送。在這個過程中,所進行的只是數據包中源IP地址的轉換,由內部本地地址向內部全局地址轉換,且只是內部地址之間的轉換。
圖6-10 簡單的NAT轉換示例
相反,當在NAT路由器的外部網絡接口s1上接收源地址為172.16.68.1外部本地地址,目的地址為內部全局地址172.16.68.5的外部服務器響應數據包時,目的地址將被轉換成10.10.10.1這個內部本地地址,然后繼續發送。在這個過程中,所進行的只是數據包中目的IP地址的轉換,由內部全局地址向內部本地地址轉換,也只是內部地址之間的轉換。
下面僅以靜態NAT轉換方式為例介紹內部地址轉換的配置步驟,詳細的NAT配置方法將在本章后面具體介紹。
(1)使用“ip nat inside source static”全局配置命令啟用基于內部源IP地址的靜態NAT IP地址轉換。也就是定義內部本地地址和內部全局地址,使它們之間形成一一對應的映射關系。
Router(config)#ip nat inside source static 10.10.10.1 171.16.68.5 !--- 在內部本地地址10.10.10.1與內部全局地址171.16.68.5之間建立靜態NAT映射關系,使內部網絡主機知道要以171.16.68.5這個地址到達外部網絡主機
(2)使用以下兩條語句配置路由器的s0為NAT的內部網絡接口。
Router(config)#interface s0 !--- 進入s0串口配置模式
Router(config-if)#ip nat inside !--- 把s0串口指定為內部網絡接口
(3)使用以下兩條語句配置路由器的s1為NAT的外部網絡接口。
Router(config)#interface s1 !--- 進入s1串口配置模式
Router(config-if)#ip nat outside !--- 把s1串口指定為外部網絡接口
(4)使用show ip nat translations特權模式命令驗證上述進行的路由器NAT配置。輸出信息中顯示以上配置的NAT條目配置為:內部本地地址為10.10.10.1,內部全局地址為171.16.68.5。這與上面的配置是一致的,證明配置是成功的。
Router#show ip nat translations !--- 在特權模式下顯示當前路由器NAT配置
Pro Inside global Inside local Outside local Outside global
--- 171.16.68.5 10.10.10.1 --- ---
此時如果對外部網絡目的主機進行ping操作,就會有數據包從內部網絡轉發到外部網絡。然后再在路由器特權模式下執行“show ip nat translations”命令,顯示的NAT信息如下。多了一條icmp協議類型數據包(執行ping操作后加的)顯示,但因為此時沒有配置外部網絡的本地地址和全局地址,所以顯示的外部本地地址和外部全局地址都是一樣的,都是ping操作目的主機地址171.16.68.1。
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 171.16.68.5:15 10.10.10.1:15 171.16.68.1:15 171.16.68.1:15
--- 171.16.68.5 10.10.10.1 --- ---
通過以上配置后,從內部網絡發往外部網絡的數據包只是源地址(SA)將在經過路由器后進行轉換(由內部本地地址10.10.10.1轉換成內部全局地址171.16.68.5),但目標地址(DA)不變,但從外部網絡發往內部網絡的應答數據包的源地址沒有改變,只是經過路由器后的數據包目的地址發生了轉換(由內部全局地址172.16.68.5轉換成內部本地地址10.10.10.1),但源地址(SA)不變。因為此時還沒有為NAT路由器配置外部網絡的本地地址和全局地址轉換。
此時,數據包在內、外部網絡中的源地址、目的地址的轉換方式參如圖6-11所示。
圖6-11內部地址NAT轉換示例
【經驗之談】在內部地址的NAT轉換中,無論數據包來自哪里,數據包中地址變化的只是內部地址之間的轉換。但要注意,地址變化所對應的是源地址,還是目的地址是要看數據包是來自內部網絡,還是來自外部網絡:如果是來自內部網絡,轉換是源地址;如果是來自外部網絡,轉換的是目的地址。
當公司服務器位于內部網絡,使用內部網絡私有IP地址,為了方便外部網絡用戶對內部網絡服務器進行訪問,則需要使用ip nat outside source命令配置“外部全局地址”與“外部本地地址”之間的轉換(既可以采用靜態NAT方式實現,也可以采取動態NAT方式實現)。外部地址NAT轉換與上節介紹的內部地址NAT轉換是相反的,它僅需要定義外部地址(包括外部本地地址和外部全局地址)。
下面同樣以圖6-10所示的示例進行介紹。本示例要實現的目的是:當NAT路由器外部網絡接口s1接收到來自外部網絡用戶發送的源IP地址為外部全局地址171.16.68.1,目的地址為外部本地地址10.10.10.1的數據包在被路由器轉發到s0接口時,數據包中的源IP地址轉變為外部本地地址10.10.10.5(即由外部全局地址轉換成外部本地地址),目的IP地址不變,即也只是源IP地址的轉換;而由內部網絡用戶發送的響應數據包中,卻只是目的IP地址(即由外部本地地址轉換為外部全局地址)的轉換,源IP地址不變。
下面僅以靜態NAT轉換方式為例介紹外部地址NAT轉換的配置步驟,詳細的NAT配置方法將在本章后面具體介紹。
(1)使用ip nat outside source static全局配置命令啟用基于外部源IP地址的靜態NAT IP地址轉換。也就是定義外部全局地址和外部本地地址之間的映射關系。
Router(config)#ip nat outside source static 171.16.68.1 10.10.10.5 !--- 在外部全局地址171.16.68.1與外部本地地址10.10.10.5之間建立靜態NAT轉換關系,使外部網絡主機知道要以10.10.10.1這個地址到達內部網絡主機
(2)使用以下兩條語句配置路由器的s0作為NAT的內部網絡接口。
Router(config)#interface s0
Router(config-if)#ip nat inside
(3)使用以下兩條語句配置路由器的s1作為NAT的外部網絡接口。
Router(config)#interface s1
Router(config-if)#ip nat outside
【注意】對于特定的NAT網絡來說,路由器上的內、外部網絡接口是固定的,不會隨著通信方向的改變而改變。如在上節介紹的內部地址的NAT轉換示例中,我們同樣是把s0接口作為內部網絡接口,s1接口作為外部網絡接口。
(4)使用show ip nat translations特權模式命令驗證上述進行的路由器NAT配置。從中可以看出,此時NAT的外部本地地址為10.10.10.5,外部全局地址為171.16.68.1。這與上面的配置是一致的,證明配置是成功的。
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- --- --- 10.10.10.5 171.16.68.1
同樣,如果此時執行一個從外部網絡主機(171.16.68.1)到內部網絡主機(10.10.10.1)的ping操作,然后再在路由器特權模式下執行“show ip nat translations”命令,則顯示如下結果。因為此時僅配置了外部本地地址和外部全局地址,所以結果中顯示的內部本地地址和全局地址都是一樣的,都是ping操作目的主機地址10.10.10.1。
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- --- --- 10.10.10.5 171.16.68.1
icmp 10.10.10.1:37 10.10.10.1:37 10.10.10.5:37 171.16.68.1:37
與上節介紹的僅配置內部地址相反,此處從外部網絡發往內部網絡的數據包的源IP地址(SA)將在經過路由器后進行轉換(由外部全局地址171.16.68.1轉換成外部本地地址10.10.10.5),但目標地址(DA)不變;但從內部網絡發往外部網絡的響應數據包的源IP地址沒有改變,只是經過路由器后的數據目的IP地址發生了改變(由外部本地地址10.10.10.5轉換成外部全局地址171.16.68.1)。因為此時還沒有為NAT路由器配置內部本地地址和內部全局地址轉換。此時,數據包在內、外部網絡中的源IP地址、目的IP地址的轉換方式如圖6-12所示。
【經驗之談】在僅進行外部地址NAT轉換時,無論數據包來自哪里,數據包中地址變化的只是外部地址之間的轉換。同樣也需注意,地址變化所對應的是源IP地址,還是目的IP地址是要看數據包是來自內部網絡,還是來自外部網絡:如果來自內部網絡,轉換是目的IP地址;如果來自外部網絡,轉換的是源IP地址。這與前面的內部地址NAT轉換是對應相反的。
圖6-12外部地址NAT轉換示例
下面介紹同時進行內、外部地址NAT轉換原理及基本配置步驟。它需要同時使用ip nat inside source命令定義“內部全局地址”與“內部本地地址”之間的轉換,及使用ip nat outside source命令定義“外部全局地址”和“外部本地地址”之間的轉換(既可以采用靜態NAT方式實現,也可以采取動態NAT方式實現)。這樣,無論數據包是從哪個方向發送的,數據包中的源地址和目的地址都將同時發生變化。主要應用于重疊網絡(Overloading Network)中的NAT應用中。具體配置方法將在本章6.6節介紹。
同樣以圖6-10所示的基本網絡結構為例進行介紹。在下面的示例中,通過配置可以實現:當NAT路由器內部網絡接口s0接收到來自內部網絡,源IP地址為內部本地地址10.10.10.1,目的IP地址為外部本地地址10.10.10.5的數據包,在轉發到s1接口前,將這個數據包中的源IP地址將轉換成內部全局地址171.16.68.5,目的IP地址將被轉換成外部全局地址171.16.68.1。
當NAT路由器外部接口s1接收到來自外部網絡,源IP地址為外部全局地址171.16.68.1,目的地址為內部全局地址172.16.68.5的數據包時,將源IP地址轉換成外部本地地址10.10.10.5,將目的IP地址將被轉換成內部本地址10.10.10.1。
下面僅以靜態NAT轉換方式(可以采用動態NAT轉換方式)為例介紹內、外部地址同時轉換的配置步驟,詳細的靜態,或者動態NAT轉換配置方法將在本章后面具體介紹。
Router(config)#ip nat inside source static 10.10.10.1 171.16.68.5 !--- 在內部本地地址10.10.10.1與內部全局地址171.16.68.5之間建立靜態NAT映射關系,使內部網絡主機知道要以171.16.68.5這個地址到達外部網絡主機
Router(config)#ip nat outside source static 171.16.68.1 10.10.10.5 !--- 在外部全局地址171.16.68.1與外部本地地址10.10.10.5之間建立靜態NAT映射關系,使外部網絡主機知道要以10.10.10.5這個地址到達內部網絡主機
Router(config)#interface s 0
Router(config-if)#ip nat inside
Router(config-if)#end
Router(config)#interface s 1
Router(config-if)#ip nat outside
Router(config-if)#end
Router(config)# end
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- --- --- 10.10.10.5 171.16.68.1
171.16.68.5 10.10.10.1 --- ---
同樣,如果此時分別執行一個從內部主機到外部主機,以及從外部主機到內部主機的ping操作,然后再在路由器特權模式下執行“show ip nat translations”命令,則顯示如下結果。因為此時同時配置了內、外部本地地址和全局地址,所以結果中顯示了兩條NAT配置項,分別顯示了與外部網絡和內部網絡中的本地地址和全局地址轉換對應的ping操作icmp消息:與外部本地地址和全局地址對應的Ping操作ICMP消息中顯示內部網絡中的本地地址和全局地址是一樣的,而與內部網絡本地地睛和全局地址對應的Ping操作ICMP消息中顯示外部網絡中的本地地址和全局地址是一樣的,都是對應的Ping操作目的主機地址。
Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- --- --- 10.10.10.5 171.16.68.1
icmp 10.10.10.1:4 10.10.10.1:4 10.10.10.5:4 171.16.68.1:4
icmp 171.16.68.5:39 10.10.10.1:39 171.16.68.1:39 171.16.68.1:39
--- 171.16.68.5 10.10.10.1 --- ---
經過以上配置后,數據包發送(無論是從哪個方面發送的)時不僅源IP地址會發生變化,目標IP地址也會同時發生變化,如圖6-13所示。
在由內部網絡向外部網絡發送的數據包中,源IP地址是由內部本地地址(10.10.10.1)轉換成內部全局地址(172.16.68.5),目的IP地址由外部本地地址(10.10.0.5)轉換成外部全局地址(171.16.68.1);在由外部網絡向內部網絡發送的數據包中,源IP地址是由外部全局地址(171.16.68.1)轉換成外部本地地址(10.10.0.5),目的IP地址由內部全局地址(172.16.68.5)轉換成內部本地地址(10.10.10.1)。兩個方向的數據包中的源IP地址和目的IP地址的轉換分別如圖6-14和圖6-15所示。
圖6-13 同時配置了內、外部地址轉換后的NAT轉換示例
圖6-14 數據包從內部網絡發到外部網絡時的地址轉換方式 圖6-15 數據包從外部網絡發到內部網絡時的地址轉換方式
從圖6-14和圖6-15可以看出,圖6-14中的源IP地址轉換過程恰好是圖6-15中的目的地址轉換的反過程。同理,圖6-14中的目的IP地址轉換過程恰好是圖6-15中的源IP地址轉換的反過程。
另外,經過細心分析我們可以發現,在由內部網絡發往外部網絡的數據包中所進行的地址轉換都是由本地地址轉換為全局地址,也就是都是由內部網絡一側的地址向外部網絡一側的地址轉換;相反,在由外部網絡發往內部網絡的數據包中所進行的地址轉換都是由全局地址轉換為本地地址,也就是都是由外部網絡一側的地址向內部網絡一側的地址轉換。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。