分享

ip nat inside / ip nat ouside

 神人自有天助 2016-10-11

名词解释:
NAT    网络地址转换(正常数据转发时,IP头部的源和目的地址以及端口号是不会被更改的,而使用了NAT技
术后,它将更改头部内容以达实现隐藏内外部主机真实地址、多台主机共享少量IP访问内外部网络、解决IP地址空间重
叠、服务器负载均衡等功能)
PAT    端口地址转换,又叫网络地址端口转换(NAPT)或NAT的端口复用(用IP地址+端口号来对应和区别各个
数据流进行网络地址转换,以达到多内部主机通过一个或少量合法IP地址来访问外部网络)
Inside  内部
Outside 外部
Inside local    内部本地地址(内部主机的实际地址,一般为私有地址)
Inside global  内部全局地址(内部主机经NAT转换后去往外部的地址,是ISP分配的合法IP地址)
Outside local 外部本地地址(外部主机由NAT设备转换后的地址,一般为私有地址,内部主机访问该外部主机时,
认为它是一个内部的主机而非外部主机)
Outside global 外部全局地址(外部主机的真实地址,互联网上的合法IP地址)
NAT超时:
没有使用PAT时则为24小时
使用PAT:
UDP超时值: 5分钟
DNS : 1分钟
TCP : 24小时

1,ip nat inside source
2,ip nat inside destination

都是内部地址转换,ip nat inside source             即是IL->IG (由内部发起的流量)
ip nat inside destination      即是IG->IL (由外部发起的流量)

撇开流量的发起方不说,达到的效果是一样的(都是IL与IG之间转换),即NAT Translation表的IL和IG项都一样。

但是对于ip nat inside destination  需要注意:

①只有TCP流量才会转换,ping 流量是不会触发NAT的Destination转换的!
②nat pool 一定要设置type为 rotary!!

ip nat inside source举例

ip <wbr>nat <wbr>inside <wbr>/ <wbr>ip <wbr>nat <wbr>ouside

假定ISP为网络1分配了IG地址段:100.0.0.0/28
配置:
GW1:
GW1(config)#int s0
GW1(config-if)#ip nat outside /定义外部接口
GW1(config-if)#int e0
GW1(config-if)#ip add 192.168.0.1 255.255.255.0
GW1(config-if)#ip nat inside /定义内部接口
GW1(config-if)#exit
GW1(config)#access-list 1 permit 192.168.0.0 0.0.0.255 /用ACL捕捉IL地址
GW1(config)#ip nat pool POOL_NAME 100.0.0.1 100.0.0.14 prefix-length 28 /定义IG地址池
GW1(config)#ip nat inside source list 1 pool POOL_NAME /将ACL1里指定的IG地址从名为
POOL_NAME的地址池里动态顺序地取IG地址进行映射

ip nat inside destination 举例(服务器负载均衡)

当我们内部有几台提供相同服务的服务器时,我们可以用NAT来做到负载分担,它的分担方式是基于每次访问的,如
下图,如果用NAT做了负载分担,我们把这三台服务器的IL映射为同一个IG,这时外部用户访问该IG地址时,NAT会进行
基于每次访问的负载分担。用户第一次访问时会定向到Server1,第二次则是Server2,第三次则是Server3,轮循完后又
回到Server1,服务器依次轮流对外提供服务。

ip <wbr>nat <wbr>inside <wbr>/ <wbr>ip <wbr>nat <wbr>ouside

配置:
GW1(config)#int s0
GW1(config-if)#ip nat outside /定义外部接口
GW1(config-if)#int e0
GW1(config-if)#ip add 192.168.0.1 255.255.255.0
GW1(config-if)#ip nat inside /定义内部接口
GW1(config-if)#exit
GW1(config)#access-list 1 permit host 100.0.0.1 /定义IG
GW1(config)#ip nat pool POOL1 192.168.0.1 192.168.0.3 prefix-length 24 type rotary
/建立一个IL地址池,范围是服务器所占用的地址范围,
类型为rotary是指将在这段地址内轮循
GW1(config)#ip nat inside destination list 1 pool POOL1 /对目的地址为列表内匹配的访
问进行地址转换,把目的地址轮流转换成pool指定的地址
要注意的是如果服务器群里有一台或多台甚至是全部服务器不再工作了,路由器是无法辨别的,依旧会将流量进行
轮循,不管服务器能否应答。    3,ip nat outside source
/外部地址转换,即是OG->OL,由外部发起的流量,用法为隐藏外部主机真实地址。
ip nat ouside source static (OG) (OL) add-route 
/add-route 是为了产生一条去往OL的路由.(查看路由表,多了一条去往OL的路由)
注意:如果ip nat ouside source list (list number) pool (pool name) add-route
虽然能转换OG->OL,但是这样是产生不了一条去往(pool name)的路由,即使(pool name)只有一个地址。结局也是通信不成功的。
所以一般都是这样用ip nat ouside source static (OG) (OL) add-route ,单个地址映射。   ip nat outside source举例(隐藏外部主机真实地址)如果希望禁止内部主机访问外网的同时让内部主机能访问指定的外部主机,但又不希望让内部主机了解其实自己已
经访问了外网时,那么可将需要被访问的外部主机的OG地址转换成为一个内部或者一个虚假的空OL地址,外部主机只用
访问这个虚假的OL地址就可以访问到真实的服务器了,达到隐藏真实IP的效果。ip <wbr>nat <wbr>inside <wbr>/ <wbr>ip <wbr>nat <wbr>ouside


配置:
GW1(config)#int s0
GW1(config-if)#ip nat outside /定义外部接口
GW1(config-if)#int e0
GW1(config-if)#ip add 192.168.0.1 255.255.255.0
GW1(config-if)#ip nat inside /定义内部接口
GW1(config-if)#exit
GW1(config-if)#ip nat outside source static 200.0.0.1 192.168.1.1 add-route
/定义OG转换为OL,后面加一个add-route是为了产生一
条去往192.168.1.0的静态路由,否则内部主机去往网关后,网关查表时没有相关路由则丢弃报文。如果有默认路由或者
本来就已经有路由了,则可省略该参数,也可以手工配置路由。

4,ip nat outside destination 

cisco2691,3640,7200都无此条命令!!

注:

①ip nat inside source list n pool POOL_NAME

当list n为标准访问列表---access-list 1 permit a.b.c.d ,数据包的源地址

满足list n(a.b.c.d),源地址转换为POOL_NAME地址

当list n为扩展访问列表--- access-list 100 permit tcp A B ,数据包的协议、

源地址、目的地址、端口号等都要匹配list n , 源地址转换为POOL_NAME地址

②ip nat inside destination list n  pool POOL_NAME

当list n为标准访问列表---access-list 1 permit a.b.c.d ,数据包的目的地址

满足list n (a.b.c.d), 目的地址转换为POOL_NAME地址

当list n为扩展访问列表--- access-list 100 permit tcp A B ,数据包的协议、

源地址、目的地址、端口号等 都要匹配list n , 目的地址转换为POOL_NAME地址

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多