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 也是能够的,这个将在下一篇文章中介绍。

相关文章
相关标签/搜索