cisco NAT轉換 ip nat source的用法

        最近在QQ羣中聊天的時候有一位羣友提出了一個問題,內網服務器在沒有網關的狀況下怎麼樣發佈到公網中去,同時網絡的出口也只有一個公網地址,提出問題網絡的拓撲以下:服務器

圖:網友給的拓撲圖網絡

拓撲思路即要求描述:less

1. 內網服務器的IP地址爲192.168.1.2,因爲某種要求而不能設置網關dom

2. 出口設備的內網地址爲192.168.1.1,同時這個地址也爲內網其餘PC的網關地址tcp

3. 出口設備僅僅有一個公網地址爲2.2.2.1ide

4. 將內網服務器192.168.1.2:23映射爲2.2.2.1:23,公網用戶1.1.1.1經過 telnet 2.2.2.1能夠鏈接到內網服務器的telnet端口測試

看到這個問題及給出的拓撲思路後,用GNS3搭建了一個網絡拓撲圖以下:spa

圖:GNS3搭建的網絡拓撲debug

GNS3網絡拓撲介紹:server

1. 路由器R1的公網接口fa0/0地址爲:2.2.2.1,內網IP地址爲192.168.1.1;

2. 路由器R2模擬內網服務器,接口IP爲192.168.1.2,同時no ip routing關閉路由功能即不設置網關,開啓telnet功能,密碼爲cisco

3. 路由器R5模擬爲內部普通PC,地址爲192.168.1.11,可正常訪問互聯網;

4. 路由器R4模擬爲公網普通用戶,地址爲1.1.1.1

 

本文的主要內容爲路由器R1的配置,配置思路以下:

1. 配置NAT使內網用戶能正常訪問Internet

2. 配置Static NAT將192.168.1.2:23映射爲2.2.2.1:23

3. 配置NAT 使Internet用戶在訪問內部服務器192.168.1.2時將源IP地址轉換爲192.168.1.1

 

注:本例若使用常規的NAT轉換設置,即在接口上設置ip nat inside source 或ip nat outside source 命令,而後將在全局配置下使用ip nat inside source 命令將不能徹底知足這位網友的要求(主要是不能將公網地址IP爲192.168.1.1來訪問內部服務器,若是稍作變通同將公網IP轉換爲其餘內網IP如192.168.1.3則可),爲了技術愛好,也爲了徹底知足這位網友的要求,本文將給出另外一種解決方法。

方法一:

在內外網接口上啓用ip nat enable命令 ,在全局配置模式下使用ip nat source 命令來知足需求配置以下:

路由器R1的配置以下:

!

!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
!
resource policy
!
memory-size iomem 5
ip subnet-zero
!
!
ip cef
no ip domain lookup
ip domain name lab.local
!

!
interface FastEthernet0/0
 ip address 2.2.2.1 255.255.255.0
 ip nat enable             //在接口上啓用nat,注意ip nat enable 與ip nat outside的區別
 ip virtual-reassembly
 duplex auto
 speed auto
!
interface FastEthernet1/0
 ip address 192.168.1.1 255.255.255.0
 ip nat enable           //在接口上啓用nat,注意ip nat enable 與ip nat inside的區別
 ip virtual-reassembly
 duplex auto
 speed auto
!
no ip http server
no ip http secure-server
!
ip classless
ip route 0.0.0.0 0.0.0.0 2.2.2.3
!
ip nat source list 110 interface FastEthernet0/0 overload                    //內網到外網的NAT轉換
ip nat source list 120 interface FastEthernet1/0 overload                    //外網到內網的NAt轉換
ip nat source static tcp 192.168.1.2 23 2.2.2.1 23 extendable            //服務器23端口映射
!
access-list 110 permit ip 192.168.1.0 0.0.0.255 any
access-list 120 permit tcp any host 2.2.2.1 eq telnet
no cdp run
!
!
control-plane
!
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4
 login
!
!
end

 

路由器R2模擬內網服務器的配置以下:

!

version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
enable secret 5 $1$/FLK$scltNBoUUNSyP4tMP8vaD1
!
no aaa new-model
!
resource policy
!
memory-size iomem 5
ip subnet-zero
no ip routing                            //取消設備的路由功能,而且不設置網關
!
!
no ip cef
no ip domain lookup
ip domain name lab.local
!
!
interface FastEthernet0/0
 no ip address
 no ip route-cache
 shutdown
 duplex auto
 speed auto
!
interface FastEthernet1/0
 ip address 192.168.1.2 255.255.255.0
 no ip route-cache
 duplex auto
 speed auto
!
no ip http server
no ip http secure-server
!
ip classless
!
control-plane
!
line con 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line aux 0
 exec-timeout 0 0
 privilege level 15
 logging synchronous
line vty 0 4                                //開啓telnet
 password cisco
 login
!
!
end

 


測試:

在公網用戶1.1.1.1上 telnet 2.2.2.1 經過,以下圖:

 

在內網PC上ping 公網地址1.1.1.1經過,以下圖:

以上測試所有正常,完成要求

 

示例中使用ip nat source來開啓NAT與咱們常規使用ip nat inside source 的方法來啓用NAT不單單在命令格式上不一樣,而且在數據包的轉換過程當中也有很大不一樣。

        ip nat inside source 數據包由inside 接口outside接口發包時,是先路由再NAT轉換;而數據包由outside 接口向inside接口發包時是先NAT轉換再路由,數據包的發送方向不一樣,則處理過程也不一樣

        而使用ip nat source作NAT轉換時,在須要NAT轉換接口上使用的命令爲ip nat enable,數據包在由一個接口向另外一個接口發包時,順序是先路由再NAT而後再路由(第一個路由只是匹配一下路由,而沒有真正的路由行爲,第二個路由則是真實的路由行爲),無論數據包從哪一個接口發向哪一個接口,處理過程都是同樣的。

        正是因爲兩種NAT轉換方法對數據包的處理方式不一樣,才形成了使用ip nat inside source不能徹底符合第一副圖中的要求,而使用ip nat source則能夠徹底符合圖中的要求,若是將圖中的要求稍微改變一下用ip nat inside source 也是能夠的,這個將在下一篇文章中介紹。

相關文章
相關標籤/搜索