概述
上篇最后说了在cisco IOS配置NAT的时候我们会发现inside、outside、source、destination这样的参数,我们常用的就是inside和source参数,今天就让我们来看一下之其中的玄奥之处。在此之前我们需要先了解一些基本的概念
基本概念
内部本地地址
内部局域网中的IP地址,常见的A、B、C类中的私网地址,转换前的源地址
内部全局地址
NAT设备外部地址,转化后的源地址
外部本地地址
常规配置方式下此地址为访问的公网地址。反向思考此地址和内部本地地址相同
外部全局地址
常规配置方式下此地址和外部本地地址相同。反向思考此地址和内部全局地址类似
主线概述
#cisco IOS中NAT配置命令主要有以下3种ip nat inside sourceip nat inside destinationip 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 #配合其他类型进行双向地址伪装
配置详解
拓扑图
image
基础配置
Client-1:Client-1(config)#inter f0/0Client-1(config-if)#ip add 192.168.2.2 255.255.255.0Client-1(config-if)#no shutClient-1(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.1Client-1(config)#username test privilege 15 password testClient-1(config)#line vty 0 15Client-1(config-line)#login localClient-2:Client-2(config)#inter f0/0Client-2(config-if)#ip add 192.168.2.3 255.255.255.0Client-2(config-if)#no shutClient-2(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.1Client-2(config)#username test privilege 15 password testClient-2(config)#line vty 0 15Client-2(config-line)#login localGW-WAN:GW-WAN(config)#inter f0/0GW-WAN(config-if)#ip add 192.168.2.1 255.255.255.0GW-WAN(config-if)#ip nat insideGW-WAN(config-if)#no shutGW-WAN(config-if)#inter f0/1GW-WAN(config-if)#ip add 200.1.1.2 255.255.255.0GW-WAN(config-if)#ip nat outsideGW-WAN(config-if)#no shutGW-WAN(config)#ip route 0.0.0.0 0.0.0.0 200.1.1.1Internet:Internet(config)#inter f0/0Internet(config-if)#ip add 200.1.1.1 255.255.255.0Internet(config-if)#no shutInternet(config-if)#inter f0/1Internet(config-if)#ip add 100.1.1.1 255.255.255.0Internet(config-if)#no shutServer:Server(config)#inter f0/0Server(config-if)#ip add 100.1.1.100 255.255.255.0Server(config-if)#no shutServer(config)#ip route 0.0.0.0 0.0.0.0 100.1.1.1Server(config)#username test priv 15 password testServer(config)#line vty 0 15Server(config-line)#login local
ip nat inside source
此为最常见的配置方式这里不再赘述
ip nat inside destion
(可用于负载均衡TCP)
配置GW-WAN(config)# ip access-list extended outside-ipGW-WAN(config-ext-nacl)# permit ip any host 200.1.1.6GW-WAN(config-ext-nacl)#exitGW-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.6Trying 200.1.1.6 ... OpenUser Access VerificationUsername: testPassword: Client-1# Client-1#exit[Connection to 200.1.1.6 closed by foreign host]Server#telnet 200.1.1.6Trying 200.1.1.6 ... OpenUser Access VerificationUsername: testPassword: Client-2#Client-2#exit[Connection to 200.1.1.6 closed by foreign host]#在NAT设备上我们可以清晰看到设备产生了两条映射关系,一条200.1.1.6指向2.2,另外一个指向2.3GW-WAN(config)#do show ip nat trPro Inside global Inside local Outside local Outside globaltcp 200.1.1.6:23 192.168.2.2:23 100.1.1.100:34623 100.1.1.100:34623tcp 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 ClientGW-WAN(config-ext-nacl)# permit ip any anyGW-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-1Client-1#debug ip icmp Client-1#ping 200.1.1.3 repeat 1Type 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 msClient-1#*Mar 1 02:55:12.455: ICMP: echo reply rcvd, src 200.1.1.3, dst 192.168.2.2ServerServer#debug ip icmp Server#*Mar 1 02:56:18.947: ICMP: echo reply sent, src 100.1.1.100, dst 200.1.1.2GW-WANGW-WAN(config)#do show ip nat trPro Inside global Inside local Outside local Outside global--- --- --- 200.1.1.3 100.1.1.100icmp 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配置