您的位置:首页 > 其它

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

2015-09-23 12:21 323 查看
某客户要求本地主机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.30A(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.1ip 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 nat30ip 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.255access-list 110permit ip host 10.1.1.1 anyip 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.0ip nat pool nat3123.1.1.31 23.1.1.31 netmask 255.255.255.0access-list 130permit ip host 10.1.1.1 host 23.1.1.30access-list 131permit ip host 10.1.1.1 host 23.1.1.31ip nat insidesource list 130 pool nat30 overloadip 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。

本文出自 “菠萝味咖啡的领地” 博客,请务必保留此出处http://ccies.blog.51cto.com/717209/1697415
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: