溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

NAT地址轉換原理全攻略

發(fā)布時間:2020-07-04 08:29:19 來源:網絡 閱讀:25727 作者:茶鄉(xiāng)浪子 欄目:系統(tǒng)運維

以下內容摘自正在全面熱銷的最新網絡設備圖書“豪華四件套”之一《Cisco路由器配置與管理完全手冊》(第二版(其余三本分別是:《Cisco交換機配置與管理完全手冊》(第二版、《H3C交換機配置與管理完全手冊》(第二版《H3C路由器配置與管理完全手冊》(第二版 )。目前在京東網、當當網、卓越網、互動出版網等書店全面熱銷中,購買該套裝將直減30元http://book.dangdang.com/20130730_aife、http://item.jd.com/11299332.html http://www.china-pub.com/STATIC/zt_mb/zt_huodong_2013_1.asp?filename=2013_slwd_0801

在NAT進行IP地址轉換中,許多讀者朋友對幾種IP地址轉換方式所對應的轉換原理總是搞不清楚,更不清分不清內/外部地址轉換的區(qū)別,在讀者QQ群中經常有人提出有方面的問題,為此筆者這次從最新的“四件套”圖書中全面摘出這部分內容供大家分享。至于其中所涉及的網絡通信原理方面大家可通過廣受好評的
《深入理解計算機網絡一書全面得到深入理解,可在這里查看本書相關信息:http://product.dangdang.com/23166396.html


6.2 NAT轉換方式及原理

NAT的應用中,可以僅需要轉換內部地址(就是內部本地址轉換成內部全局地址),這是最典型的應用,如內部網絡用戶通過NAT轉換共享上網;也可以是僅需要轉換外部地址(就是外部全局地址轉換外部本地地址之間的轉換),如外部用戶要訪問位于內部網絡中的服務器;當然還可以同時轉換內部地址和外部地址。

為了方便理解本節(jié)后面所介紹的一些配置,現(xiàn)簡單介紹NAT的基本配置思路:

1)使用ip nat inside source(定義內部本地地址內部全局地址的映射),或者ip nat outside source(定義外部全局地址外部本地地址的映射),或者ip nat pool(定義一個內部全局地址池,或者一個外部本地地址池)命令定義一個IP地址映射。具體要使用哪個命令,如何配置地址映射要視所就用的NAT類型和地址轉換類型而定??梢允庆o態(tài)地址映射,也可以是動態(tài)地址映射,或者端口地址映射(PAT);可以是內部地址轉換,也可以是外部地址轉換,或者內、外部地址同時轉換。

本節(jié)為了方便介紹,僅以靜態(tài)NAT轉換為例進行介紹,所以在下面各小節(jié)中僅使用了ip nat inside source static,或者ip nat outside source static命令。

2)使用ip nat inside命令指定內部接口,使用ip nat outside命令指定外部網絡接口。

6.2.1 NAT基本IP地址轉換原理

總體來說,NAT進行地址轉換的過程就是“本地地址”與“全局地址”之間的轉換過程,無論數(shù)據(jù)包是從內部網絡發(fā)往外部網絡,還是從外部網絡發(fā)往內部網絡。不同的只是本地地址和全局地址所對應的網絡不同,以及數(shù)據(jù)包重新封裝的源和目的地址不同。具體如圖6-8所示。這個過程是通過NAT中的本地址與全局地址映射條目來實現(xiàn)的,所以事先要在NAT路由器上配置這樣的映射條目。

NAT地址轉換原理全攻略


6-8 NAT基本地址轉換原理

當內部網絡用戶訪問外部網絡時,所進行的是“內部本地地址”和“內部全局地址”之間的轉換。

NAT路由器接收到來自內部網絡主機發(fā)送的數(shù)據(jù)包時,其源IP地址(SA)為“內部本地地址”,目的IP地址(DA)為“外部本地地址”。當數(shù)據(jù)包被轉發(fā)到外部網絡時,數(shù)據(jù)包的源IP地址(SA)就會轉變?yōu)椤?/span>內部全局地址”,而目的IP地址(DA)被轉變?yōu)椤?/span>外部全局地址”。也就是把數(shù)據(jù)包的所有源IP地址(SA)和目的IP地址(DA)全部由本地地址轉換為全局地址。如圖6-9上部分數(shù)據(jù)包IP地址轉換示意圖。

相反,當外部網絡用戶訪問內部網絡時,所進行的是“外部本地地址”和“外部全局地址”之間的轉換。

NAT路由器接收到來自外部網絡主機發(fā)送的數(shù)據(jù)包時,其源IP地址(SA)就是“外部全局地址”,目的IP地址(DA)就是“內部全局地址”。相當于由內部網絡向外部網絡發(fā)送數(shù)據(jù)包時數(shù)據(jù)包中的源IP地址(SA)和目的IP地址(DA)的互換。而當數(shù)據(jù)包被路由器轉發(fā)到本地網絡時,源IP地址(SA)被轉變?yōu)椤?/span>外部本地地址”,目的IP地址(DA)被轉變?yōu)椤?/span>內部本地地址,也相當于由內部網絡向外部網絡發(fā)送數(shù)據(jù)包時數(shù)據(jù)包中的源IP地址(SA)和目的IP地址(DA)的互換。如圖6-9下部分數(shù)據(jù)包IP地址轉換示意圖。

NAT地址轉換原理全攻略

6-9 NAT基本IP地址轉換原理

以上是從總體上介紹NATIP地址轉換原理的,實際NAT應用有時并不需要對源IP地址和IP地址進行全面替換,僅需要對源IP地址或者僅需要對目的IP地址進行轉換即可達到所需的目的。下面予以介紹。

6.2.2 內部地址NAT轉換原理

多數(shù)情況下使用NAT的目的就是為了使內部網絡中的多個用戶能使用一個注冊IP地址訪問外部網絡,所以僅需要配置內部地址NAT轉換。即通過ip nat inside source命令實現(xiàn)“內部本地地址”到“內部全局地址”之間的轉換(既可以采用靜態(tài)NAT方式實現(xiàn),也可以采取動態(tài)NAT方式實現(xiàn)),只需要定義內部本地址與內部本局地址的映射。

6-10是一個簡單的NAT轉換示例。要實現(xiàn)以下目的:當NAT路由器的內部網絡s0接口上接收到一個源地址為內部本地地址10.10.10.1,目的IP地址為外部本地地址171.16.68.1的數(shù)據(jù)包時,在轉發(fā)到s1接口時,原來數(shù)據(jù)包源地址的內部本地地址10.10.10.1被轉換成內部全局地址171.16.68.5,但目的地址不變,然后繼續(xù)發(fā)送。在這個過程中,所進行的只是數(shù)據(jù)包中源IP地址的轉換,由內部本地地址向內部全局地址轉換,且只是內部地址之間的轉換。

NAT地址轉換原理全攻略

6-10 簡單的NAT轉換示例

相反,當在NAT路由器的外部網絡接口s1上接收源地址為172.16.68.1外部本地地址,目的地址為內部全局地址172.16.68.5的外部服務器響應數(shù)據(jù)包時,目的地址將被轉換成10.10.10.1這個內部本地地址,然后繼續(xù)發(fā)送。在這個過程中,所進行的只是數(shù)據(jù)包中目的IP地址的轉換,由內部全局地址向內部本地地址轉換,也只是內部地址之間的轉換。

下面僅以靜態(tài)NAT轉換方式為例介紹內部地址轉換的配置步驟,詳細的NAT配置方法將在本章后面具體介紹。

1)使用ip nat inside source static全局配置命令啟用基于內部源IP地址的靜態(tài)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之間建立靜態(tài)NAT映射關系,使內部網絡主機知道要以171.16.68.5這個地址到達外部網絡主機

2)使用以下兩條語句配置路由器的s0NAT的內部網絡接口。

Router(config)#interface s0 !--- 進入s0串口配置模式

Router(config-if)#ip nat inside !--- s0串口指定為內部網絡接口

3)使用以下兩條語句配置路由器的s1NAT的外部網絡接口。

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操作,就會有數(shù)據(jù)包從內部網絡轉發(fā)到外部網絡。然后再在路由器特權模式下執(zhí)行show ip nat translations命令,顯示的NAT信息如下。多了一條icmp協(xié)議類型數(shù)據(jù)包(執(zhí)行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 --- ---

通過以上配置后,從內部網絡發(fā)往外部網絡的數(shù)據(jù)包只是源地址(SA)將在經過路由器后進行轉換(由內部本地地址10.10.10.1轉換成內部全局地址171.16.68.5),但目標地址(DA)不變,但從外部網絡發(fā)往內部網絡的應答數(shù)據(jù)包的源地址沒有改變,只是經過路由器后的數(shù)據(jù)包目的地址發(fā)生了轉換(由內部全局地址172.16.68.5轉換成內部本地地址10.10.10.1),但源地址(SA)不變。因為此時還沒有為NAT路由器配置外部網絡的本地地址和全局地址轉換。

此時,數(shù)據(jù)包在內、外部網絡中的源地址、目的地址的轉換方式參如圖6-11所示。

NAT地址轉換原理全攻略

6-11內部地址NAT轉換示例

【經驗之談】在內部地址的NAT轉換中,無論數(shù)據(jù)包來自哪里,數(shù)據(jù)包中地址變化的只是內部地址之間的轉換。但要注意,地址變化所對應的是源地址,還是目的地址是要看數(shù)據(jù)包是來自內部網絡,還是來自外部網絡:如果是來自內部網絡,轉換是源地址;如果是來自外部網絡,轉換的是目的地址。

6.2.3 外部地址NAT轉換原理

當公司服務器位于內部網絡,使用內部網絡私有IP地址,為了方便外部網絡用戶對內部網絡服務器進行訪問,則需要使用ip nat outside source命令配置“外部全局地址”與“外部本地地址”之間的轉換(既可以采用靜態(tài)NAT方式實現(xiàn),也可以采取動態(tài)NAT方式實現(xiàn))。外部地址NAT轉換與上節(jié)介紹的內部地址NAT轉換是相反的,它僅需要定義外部地址(包括外部本地地址和外部全局地址)。

下面同樣以圖6-10所示的示例進行介紹。本示例要實現(xiàn)的目的是:當NAT路由器外部網絡接口s1接收到來自外部網絡用戶發(fā)送的源IP地址為外部全局地址171.16.68.1,目的地址為外部本地地址10.10.10.1的數(shù)據(jù)包在被路由器轉發(fā)到s0接口時,數(shù)據(jù)包中的源IP地址轉變?yōu)橥獠勘镜氐刂?/span>10.10.10.5(即由外部全局地址轉換成外部本地地址),目的IP地址不變,即也只是源IP地址的轉換;而由內部網絡用戶發(fā)送的響應數(shù)據(jù)包中,卻只是目的IP地址(即由外部本地地址轉換為外部全局地址)的轉換,源IP地址不變。

下面僅以靜態(tài)NAT轉換方式為例介紹外部地址NAT轉換的配置步驟,詳細的NAT配置方法將在本章后面具體介紹。

1)使用ip nat outside source static全局配置命令啟用基于外部源IP地址的靜態(tài)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之間建立靜態(tài)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網絡來說,路由器上的內、外部網絡接口是固定的,不會隨著通信方向的改變而改變。如在上節(jié)介紹的內部地址的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

同樣,如果此時執(zhí)行一個從外部網絡主機(171.16.68.1)到內部網絡主機(10.10.10.1)的ping操作,然后再在路由器特權模式下執(zhí)行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

與上節(jié)介紹的僅配置內部地址相反,此處從外部網絡發(fā)往內部網絡的數(shù)據(jù)包的源IP地址(SA)將在經過路由器后進行轉換(由外部全局地址171.16.68.1轉換成外部本地地址10.10.10.5),但目標地址(DA)不變;但從內部網絡發(fā)往外部網絡的響應數(shù)據(jù)包的源IP地址沒有改變,只是經過路由器后的數(shù)據(jù)目的IP地址發(fā)生了改變(由外部本地地址10.10.10.5轉換成外部全局地址171.16.68.1)。因為此時還沒有為NAT路由器配置內部本地地址和內部全局地址轉換。此時,數(shù)據(jù)包在內、外部網絡中的源IP地址、目的IP地址的轉換方式如圖6-12所示。

【經驗之談】在僅進行外部地址NAT轉換時,無論數(shù)據(jù)包來自哪里,數(shù)據(jù)包中地址變化的只是外部地址之間的轉換。同樣也需注意,地址變化所對應的是源IP地址,還是目的IP地址是要看數(shù)據(jù)包是來自內部網絡,還是來自外部網絡:如果來自內部網絡,轉換是目的IP地址;如果來自外部網絡,轉換的是源IP地址。這與前面的內部地址NAT轉換是對應相反的。

NAT地址轉換原理全攻略

6-12外部地址NAT轉換示例

6.2.4 內/外部地址NAT轉換原理

下面介紹同時進行內、外部地址NAT轉換原理及基本配置步驟。它需要同時使用ip nat inside source命令定義“內部全局地址”與“內部本地地址”之間的轉換,及使用ip nat outside source命令定義“外部全局地址”和“外部本地地址”之間的轉換(既可以采用靜態(tài)NAT方式實現(xiàn),也可以采取動態(tài)NAT方式實現(xiàn))。這樣,無論數(shù)據(jù)包是從哪個方向發(fā)送的,數(shù)據(jù)包中的源地址和目的地址都將同時發(fā)生變化。主要應用于重疊網絡(Overloading Network)中的NAT應用中。具體配置方法將在本章6.6節(jié)介紹。

同樣以圖6-10所示的基本網絡結構為例進行介紹。在下面的示例中,通過配置可以實現(xiàn):當NAT路由器內部網絡接口s0接收到來自內部網絡,源IP地址為內部本地地址10.10.10.1,目的IP地址為外部本地地址10.10.10.5的數(shù)據(jù)包,在轉發(fā)到s1接口前,將這個數(shù)據(jù)包中的源IP地址將轉換成內部全局地址171.16.68.5,目的IP地址將被轉換成外部全局地址171.16.68.1。

NAT路由器外部接口s1接收到來自外部網絡,源IP地址為外部全局地址171.16.68.1,目的地址為內部全局地址172.16.68.5的數(shù)據(jù)包時,將源IP地址轉換成外部本地地址10.10.10.5,將目的IP地址將被轉換成內部本地址10.10.10.1

下面僅以靜態(tài)NAT轉換方式(可以采用動態(tài)NAT轉換方式)為例介紹內、外部地址同時轉換的配置步驟,詳細的靜態(tài),或者動態(tài)NAT轉換配置方法將在本章后面具體介紹。

Router(config)#ip nat inside source static 10.10.10.1 171.16.68.5 !--- 在內部本地地址10.10.10.1與內部全局地址171.16.68.5之間建立靜態(tài)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之間建立靜態(tài)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 --- ---

同樣,如果此時分別執(zhí)行一個從內部主機到外部主機,以及從外部主機到內部主機的ping操作,然后再在路由器特權模式下執(zhí)行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 --- ---

經過以上配置后,數(shù)據(jù)包發(fā)送(無論是從哪個方面發(fā)送的)時不僅源IP地址會發(fā)生變化,目標IP地址也會同時發(fā)生變化,如圖6-13所示。

在由內部網絡向外部網絡發(fā)送的數(shù)據(jù)包中,源IP地址是由內部本地地址10.10.10.1)轉換成內部全局地址172.16.68.5),目的IP地址由外部本地地址10.10.0.5)轉換成外部全局地址171.16.68.1);在由外部網絡向內部網絡發(fā)送的數(shù)據(jù)包中,源IP地址是由外部全局地址171.16.68.1)轉換成外部本地地址10.10.0.5),目的IP地址由內部全局地址172.16.68.5)轉換成內部本地地址10.10.10.1)。兩個方向的數(shù)據(jù)包中的源IP地址和目的IP地址的轉換分別如圖6-14和圖6-15所示。

NAT地址轉換原理全攻略

6-13 同時配置了內、外部地址轉換后的NAT轉換示例

NAT地址轉換原理全攻略NAT地址轉換原理全攻略

6-14 數(shù)據(jù)包從內部網絡發(fā)到外部網絡時的地址轉換方式 圖6-15 數(shù)據(jù)包從外部網絡發(fā)到內部網絡時的地址轉換方式

從圖6-14和圖6-15可以看出,圖6-14中的源IP地址轉換過程恰好是圖6-15中的目的地址轉換的反過程。同理,圖6-14中的目的IP地址轉換過程恰好是圖6-15中的源IP地址轉換的反過程。

另外,經過細心分析我們可以發(fā)現(xiàn),在由內部網絡發(fā)往外部網絡的數(shù)據(jù)包中所進行的地址轉換都是由本地地址轉換為全局地址,也就是都是由內部網絡一側的地址向外部網絡一側的地址轉換;相反,在由外部網絡發(fā)往內部網絡的數(shù)據(jù)包中所進行的地址轉換都是由全局地址轉換為本地地址,也就是都是由外部網絡一側的地址向內部網絡一側的地址轉換。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI