Cisco路由交换-NAT详解二

概述

上篇最后说了在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配置

原文地址:http://blog.51cto.com/7270589/2128596

时间: 2024-07-29 08:26:31

Cisco路由交换-NAT详解二的相关文章

Cisco路由交换-NAT详解三(区域无关NAT)

概述 上篇文章介绍了在不同区域下各个参数搭配使用的不同效果(实现tcp的负载均衡.地址伪装),今天给大家带了一个不太被常用但是确实很好用的NAT配置方法.大家应该很清楚常规的NAT配置下经常会碰到NAT回流的问题(内部的服务器映射给公网使用,常规ip nat inside source static映射后,外网用户可以正常访问该服务器,但是内网用户则无法使用该服务器映射公网地址访问服务器).归根结底问题出在内网用户访问其公网地址时因为数据包处理逻辑问题无法匹配到该静态NAT,而是做完动态NAT后

Cisco路由交换--NAT详解一

NAT出现背景 话不多说大家应该很清楚NAT出现是因为IPv4在设计之初没有考虑到网络发展的如此迅猛以至于32位的地址容量迅速面临枯竭,为了寻求解决方案.一方面IPv6技术问世,另外一方面NAT技术出现.但是NAT的出现使得IPv4地址面临枯竭的状态得到了非常有效的缓解,让IPv4依然是当今网络环境的主流技术.而IPv6至今也因为易用性和IPv4地址枯竭问题的遏制等等很多原因导致没有好的实施.(IPv6依然是未来) NAT类型 静态NAT 静态NAT就是把本地局域网IP地址和外部公网IP地址一对

php学习之道:WSDL详解(二)

3.定义服务使用的逻辑消息 当服务的操作被调用时,服务被定义为消息交换.在wsdl文档中,这些消息被定义message元素.这些消息由称之为part元素的部分组成. 一个服务的操作,通过指定逻辑消息的方式来定义.当操作被调用时,逻辑消息被交换.(也就是说,逻辑消息代表了服务的操作)这些逻辑消息,将在网络上传输的数据定义为xml文档.他包含了所有的参数,这些参数是方法调用的一部分.(也就是说,逻辑消息里的参数,是操作对应方法的参数集合) 消息和参数列表:每一个被服务暴露的操作能且仅能有一个输入消息

HTTPS详解二:SSL / TLS 工作原理和详细握手过程

HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流程,但总感觉少了点什么,应该是少了对安全层的针对性介绍,那么这篇文章就算是对HTTPS 详解一的补充吧.还记得这张图吧. HTTPS 和 HTTP的区别 显然,HTTPS 相比 HTTP最大的不同就是多了一层 SSL (Secure Sockets Layer 安全套接层)或 TLS (Transp

UINavigationController详解二(转)页面切换和SegmentedController

原文出自:http://blog.csdn.net/totogo2010/article/details/7682433,非常感谢. 1.RootView 跳到SecondView 首先我们需要新一个View.新建SecondView,按住Command键然后按N,弹出新建页面,我们新建SecondView 2.为Button 添加点击事件,实现跳转 在RootViewController.xib中和RootViewController.h文件建立连接 在RootViewController.m

Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

[Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.Android 布局学习之——LinearLayout的layout_weight属性   4.Android 布局学习之——LinearLayout属性baselineAligned的作用及baseline    Layout Parameters(布局参数): 在XML文件中,我们经常看到类似与lay

CSS3中的弹性流体盒模型技术详解(二)

在上一篇文章<CSS3中的弹性流体盒模型技术详解(一)>里,我给大家列出了,从css1到css3各版本中盒子模型的基本元素.本篇我会把余下的属性进行详细讲解. box-pack 作用:用来规定子元素在盒子内的水平空间分配方式 box-pack 语法:box-pack: start | end | center | justify; start 对于正常方向的框,首个子元素的左边缘吸附在盒子的左边框显示 对于相反方向的框,最后子元素的右边缘吸附在盒子的右边框显示 end 对于正常方向的框,最后子

LinearLayout详解二:从其父类View说起

这个View类说来就话长了,但我们又不得不说,要说呢,就得说的彻底,要让大家看得一清二楚,明明白白.所以我们就从源代码角度来看一个view是如何被加载的吧. 如果大家不知道怎么下载android的源代码,或者说懒得去下载(因为源代码确实比较大,大概有10G)的话,教大家几个取巧的办法: 1.直接在google中输入"android view.java"即可.这种方法成功率非常高,一般android的比较重要的类都能搜到. 2.给大家提供一个人家用于放源码的的git:[email pro

jquery validate 详解二

原文:http://blog.sina.com.cn/s/blog_608475eb0100h3h2.html 这里只是第二篇,前面的内容请参阅上一篇 五.常用方法及注意问题 1.用其他方式替代默认的SUBMIT 1 $().ready(function() { 2 $("#signupForm").validate({ 3 submitHandler:function(form){ 4 alert("submitted"); 5 form.submit(); 6