Cisco路由交换-NAT详解二

概述

上篇最后说了在cisco IOS配置NAT的时候我们会发现inside、outside、source、destination这样的参数,我们常用的就是inside和source参数,今天就让我们来看一下之其中的玄奥之处。在此之前我们需要先了解一些基本的概念

基本概念

内部本地地址

内部局域网中的IP地址,常见的A、B、C类中的私网地址,转换前的源地址

内部全局地址

NAT设备外部地址,转化后的源地址

外部本地地址

常规配置方式下此地址为访问的公网地址。反向思考此地址和内部本地地址相同

外部全局地址

常规配置方式下此地址和外部本地地址相同。反向思考此地址和内部全局地址类似

主线概述

#cisco IOS中NAT配置命令主要有以下3种
ip nat inside source
ip nat inside destination
ip nat outside source

我们在这里首先用最简单直接的方式理解outside、inside带来的影响,inside用来对内部本地地址、内部全局地址进行转换;outside用来对外部本地地址、外部全局地址进行转换。source和destination配合inside、outside代表NAT发起顺序

作用

  • ip nat inside source #动静态NAT或PAT配置

  • ip nat inside destination #负载均衡

  • ip nat outside source #配合其他类型进行双向地址伪装

配置详解

拓扑图
imageimage
基础配置
Client-1:
Client-1(config)#inter f0/0
Client-1(config-if)#ip add 192.168.2.2 255.255.255.0
Client-1(config-if)#no shut
Client-1(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.1
Client-1(config)#username  test privilege 15 password test
Client-1(config)#line vty 0 15
Client-1(config-line)#login local
Client-2:
Client-2(config)#inter f0/0
Client-2(config-if)#ip add 192.168.2.3 255.255.255.0
Client-2(config-if)#no shut
Client-2(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.1
Client-2(config)#username  test privilege 15 password test
Client-2(config)#line vty 0 15
Client-2(config-line)#login local
GW-WAN:
GW-WAN(config)#inter f0/0
GW-WAN(config-if)#ip add 192.168.2.1 255.255.255.0
GW-WAN(config-if)#ip nat inside
GW-WAN(config-if)#no shut
GW-WAN(config-if)#inter f0/1
GW-WAN(config-if)#ip add 200.1.1.2 255.255.255.0
GW-WAN(config-if)#ip nat outside
GW-WAN(config-if)#no shut
GW-WAN(config)#ip route 0.0.0.0 0.0.0.0 200.1.1.1
Internet:
Internet(config)#inter f0/0
Internet(config-if)#ip add 200.1.1.1 255.255.255.0
Internet(config-if)#no shut
Internet(config-if)#inter f0/1
Internet(config-if)#ip add 100.1.1.1 255.255.255.0
Internet(config-if)#no shut
Server:
Server(config)#inter f0/0
Server(config-if)#ip add 100.1.1.100 255.255.255.0
Server(config-if)#no shut
Server(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1
Server(config)#username test priv 15 password test
Server(config)#line vty 0 15
Server(config-line)#login local
ip nat inside source

此为最常见的配置方式这里不再赘述

ip nat inside destion

(可用于负载均衡TCP)

配置
GW-WAN(config)# ip access-list extended outside-ip
GW-WAN(config-ext-nacl)# permit ip any host 200.1.1.6
GW-WAN(config-ext-nacl)#exit
GW-WAN(config)#ip nat pool inside-ip 192.168.2.2 192.168.2.3 netmask 255.255.255.0 type rotary
#rotary配置后地址池内地址为轮询转态,用于负载轮询
GW-WAN(config)#ip nat inside destination list outside-ip pool inside-ip
测试
#当从Server第一次telnet 200.1.1.6这个地址时我们进入的是Client-1设备,当我们退出后再进入后就是Client-2设备了
#所以以一种简单的方式实现了简单的负载均衡
Server#telnet 200.1.1.6
Trying 200.1.1.6 ... Open
User Access Verification
Username: test
Password:
Client-1#
Client-1#exit
[Connection to 200.1.1.6 closed by foreign host]
Server#telnet 200.1.1.6
Trying 200.1.1.6 ... Open
User Access Verification
Username: test
Password:
Client-2#
Client-2#exit
[Connection to 200.1.1.6 closed by foreign host]
#在NAT设备上我们可以清晰看到设备产生了两条映射关系,一条200.1.1.6指向2.2,另外一个指向2.3
GW-WAN(config)#do show ip  nat tr
Pro Inside global      Inside local       Outside local      Outside global
tcp 200.1.1.6:23       192.168.2.2:23     100.1.1.100:34623  100.1.1.100:34623
tcp 200.1.1.6:23       192.168.2.3:23     100.1.1.100:60762  100.1.1.100:60762
ip nat outside source

(可用于地址伪装)

配置
GW-WAN(config)#ip access-list extended Client
GW-WAN(config-ext-nacl)# permit ip any any
GW-WAN(config)#$de source list Client interface FastEthernet0/1 overload    
#该命令第一个地址为外部全局地址,第二个为外部本地地址,200.1.1.3为外部Server对内部用户的伪装地址
GW-WAN(config)#ip nat outside source static 100.1.1.100 200.1.1.3  
测试
#首先,在Client-1 debug icmp报文,ping 200.1.1.3,然后我们会收到来自200.1.1.3的回应报文
#然后,在Server debug icmp报文,发现收到了200.1.1.2的ping报文
#最后,在GW-WAN上我们可以清晰的看到Client-1的192.168.2.2 转成了200.1.1.2,Server的100.1.1.100转成了200.1.1.3,基于此实现了双向地址隐藏
Client-1
Client-1#debug ip icmp
Client-1#ping 200.1.1.3 repeat 1
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 200.1.1.3, timeout is 2 seconds:
!
Success rate is 100 percent (1/1), round-trip min/avg/max = 168/168/168 ms
Client-1#
*Mar  1 02:55:12.455: ICMP: echo reply rcvd, src 200.1.1.3, dst 192.168.2.2
Server
Server#debug ip icmp
Server#
*Mar  1 02:56:18.947: ICMP: echo reply sent, src 100.1.1.100, dst 200.1.1.2
GW-WAN
GW-WAN(config)#do show ip nat tr
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                200.1.1.3          100.1.1.100
icmp 200.1.1.2:5       192.168.2.2:5      200.1.1.3:5        100.1.1.100:5

其实还有很多不同的组合,静态、动态、NAT、PAT的结合,不过理解了转换思路,剩下的只是机械工作。
下一篇文章将会介绍(ip nat enable)没有inside、outside的NAT配置


猜你喜欢

转载自blog.51cto.com/7270589/2128596
今日推荐