频道栏目
首页 > 网络 > 路由器 > 正文

非常有意思的策略地址转换故障排查

2015-10-15 15:54:41         来源:菠萝味咖啡  
收藏   我要投稿
某客户要求本地主机A(10.1.1.1)新增访问需求,原主机A在边界路由器将地址转换为A1(23.1.1.30)后访问外联单位的主机B(1.1.1.1),现新增加一个系统C(3.3.3.3),需要将地址转换为A2(23.1.1.31)去访问。如下图所示网络结构,R3模拟外联单位路由器,R4模拟互联网;

简单来说就是一个策略NAT:

A(10.1.1.1)-》B(1.1.1.1)将A地址转换为23.1.1.30

A(10.1.1.1)-》B(3.3.3.3)将A地址转换为23.1.1.31

首先定义匹配策略,需要定义源和目的,使用扩展访问控制列表:

ip access-listextended nat30

 permit ip host 10.1.1.1 host 1.1.1.1

ip access-listextended nat31

 permit ip host 10.1.1.1 host 3.3.3.3

然后定义route-map:

route-map nat30permit 10

 match ip address nat30    

route-map nat31permit 10

 match ip address nat31

最后定义nat:

ip nat insidesource static 10.1.1.1 23.1.1.30 route-map nat30

ip nat insidesource static 10.1.1.1 23.1.1.31 route-map nat31

然后进行测试,竟然不通!!!

 

然后进行测试,竟然不通!!!

 

然后进行测试,竟然不通!!!

 

由于是生产环境,无法抓包,无法debug….

 

自己检查了几遍IP地址、调用的策略名等没有任何问题,命令放入IOS同版本的模拟器去执行,测试无问题!

 

Show ip access 检查匹配项,竟然无匹配,说明问题出在匹配上,继续检查acl、IP地址等等等等……

 

开始怀疑其它nat转换影响了该策略转换,发现现网配置里有这么一条:

ip nat pool nat100 23.1.1.100 23.1.1.100 netmask255.255.255.255

access-list 110permit ip host 10.1.1.1 any

ip nat insidesource list 110 pool nat100 overload

 

也就是说本网段访问其它地址时会被转换成23.1.1.100的PAT,在直觉中,策略的静态一对一转换转换应该会优于PAT吧。。。

 

但是在access-list 110中插入deny iphost 10.1.1.1 host 1.1.1.1和deny ip host 10.1.1.1 host 3.3.3.3后测试,没有任何问题!

 

难道是PAT优先静态转换?

 

找到问题所在就好,测试了另外一种转换方式也可以实现:

 

ip nat pool nat3023.1.1.30 23.1.1.30 netmask 255.255.255.0

ip nat pool nat3123.1.1.31 23.1.1.31 netmask 255.255.255.0

access-list 130permit ip host 10.1.1.1 host 23.1.1.30

access-list 131permit ip host 10.1.1.1 host 23.1.1.31

ip nat insidesource list 130 pool nat30 overload

ip nat insidesource list 131 pool nat31 overload

 

看来都是pat,大家级别一样了,就最小匹配啦!

 

那么留给大家的问题是,这两种实现方式在实际应用中有什么区别呢?

 

使用静态route-map的转换方式,可以用于对端需要主动发起访问的情况,这样当对端1.1.1.1或3.3.3.3可以主动访问23.1.1.30或23.1.1.31。

相关TAG标签 故障 策略 地址
上一篇:思科模拟器 简单网络连接操作
下一篇:高级静态路由之递归路由(三)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站