拓扑:

nat中list acl和route-map的区别_ROUTE-MAP

配置:

nat中list acl和route-map的区别_NAT_02

 分析:

从R1分别ping 3.3.3.3和4.4.4.4

nat中list acl和route-map的区别_NAT_03 

nat中list acl和route-map的区别_NAT_04

结果没有像我们预料的那样按照顺序匹配。

查看

nat中list acl和route-map的区别_NAT_05

转发项已经有了为什么不通那?

因为list匹配的ACL在翻译的时候,仅在NAT表中留下inside global和inside local表项,并没有记录outside那边的情况。所以当目的地址改变的时候,由于NAT表里面已经有表项了,所以R2直接沿用原来的表项。

这可通过DEBUG观察到

nat中list acl和route-map的区别_ROUTE-MAP_06

配置改变为:

nat中list acl和route-map的区别_ROUTE-MAP_07

从R1分别ping 3.3.3.3和4.4.4.4

nat中list acl和route-map的区别_NAT_08

nat中list acl和route-map的区别_ROUTE-MAP_09

这次都通了

查看NAT转换表

nat中list acl和route-map的区别_ROUTE-MAP_10

可以看到并没有出现

nat中list acl和route-map的区别_NAT_11

观察debug

nat中list acl和route-map的区别_ROUTE-MAP_12

从以上分析可以看出NAT先匹配一般项然后才匹配具体。

在执行NAT的时候,使用list匹配ACL和使用route-map在处理上是有区别的。

如果想使用list匹配ACL,同时要达到route-map的效果,也就是匹配具体的源和目的对的话,必须使用PAT。

如果有兴趣可以做一些PAT的情况。