【Cisco IOS路由上的NAT验证与排错】分享给互联网从爱好者学习参考。
本文将讨论cisco ios 路由器上的NAT验证命令。读者可以用本文所讲述的命令来显示NAT转换信息和清除地址转换条目。
一.验证NAT
"show ip nat translation"命令可以用于显示当前存在的转换。代码1中屏幕输出显示有2个基本型转换存在。
代码1 "
show ip nat translation
"命令的输出显示例。
Router#show ip nat translations
ror inside ip nat translations
pro inside global; inside local; outside localoutside global
---;192.2.2.1; 10.1.1.1 ------
---;192.2.2.1; 10.1.1.2 ------
Router#
代码2是一个采用地址复用的NAT样例。2个不同的内部主机使用同一个IP地址显现在外部网络,这2个主机都要建立一个telent会话---到目的地的TCP端口23。唯一的源TCP端口号被用来区分这2个内部主机。
代码2 应用地址复用时,"show ip nat translations"命令的输出示例。
Router#show ip nat translations
pro inside global inside local;;;outside localoutside global
tcp 192.168.2.1:11003;;10.1.1.1:11003;172.16.2.2:23;172.16.2.2:23
tcp 192.168.2.1:1067; 10.0.1.1.1:1067;172.16.2.3:23;172.16.2.3:23
Router#
我们可以用"show ip nat translations"命令来查看NAT的统计信息。
动态NAT超时
默认地,动态地址转换条目如果在一定时间后没有被使用后就因为会超时而会超时而被取消。如果必要的话,用户可以改变超时的默认值。在没有配置地址复用的情况下,简单转换条目的超时时间为24小时。
如果培植了地址复用,因为没个条目都包含了使用它的数据流的更多内容,我们就可以对转换条目的超时值实施较细的控制。下面是采用地址复用默认的NAT超时值:
UDP超时值:;;5分钟
DNS;;;:;;1分钟
TCP;;;:;;24小时
结束和复未值:; 1分钟
译者注:"结束(finish)和复位(reset)"指的是TCP连接的结束和复位包。
二、NAT排错
如果想要跟踪NAT的操作,可以用"debug ip nat"命令显示出每上被转换的数据包。
代码2是一个内部到外部地址转换的调试示例。
代码2; "
debug ip net
"命令显示 Router#debug ip net
NAT:S﹦10.1.1.1->192.168.2.1,d﹦172.16.2.2【0】
NAT:S﹦172.16.2.2,d﹦192.168.2.1->10.1.1.1【0】
NAT:S﹦10.1.1.1->192.168.2.1,d﹦172.16.2.2【1】
NAT:S﹦10.1.1.1->192.168.2.1,d﹦172.16.2.2【2】
NAT:S﹦10.1.1.1->192.168.2.1,d﹦172.16.2.2【3】
NAT*:S﹦172.16.2.2,d﹦192.168.2.1->10.1.1.1【1】
NAT:S﹦172.16.2.2,d﹦192.168.2.1->10.1.1.1【1】
NAT:S﹦10.1.1.1->192.168.2.1,d﹦172.16.2.2【4】
NAT:S﹦10.1.1.1->192.168.2.1,d﹦172.16.2.2【5】
NAT:S﹦10.1.1.1->192.168.2.1,d﹦172.16.2.2【6】
NAT*:S﹦172.16.2.2,d﹦192.168.2.1->10.1.1.1【2】
我们可以按下面所述的要点对上面的输出进行分析:
·紧靠"NAT"的"*"号表示该转换是发生在高速通道上。每个会话的第一个数据包总是经由低速通首(按处理器交换方式处理)。如果缓存条目存在的话,每个会话余下的数据包将经由高速通道;
·"S﹦10.1.1.1"表示源地址是10.1.1.1;
·"d﹦172.16.2.2" 表示目的地址是172.16.2.2;
·"10.1.1.1->192.168.2.1"表示将地址10.1.1.1转换为192.168.2.1;
·括号中的值是IP标识号。该信息会对调试有所帮助,因为它可以帮助你将同一个会话的数据包关联起来。
三、清除NAT转换表中的条目
可以用"
clear ip nat translation
*"命令来清除转换表中的所有条目,如例代码3所示。"*"号是一个通配符,代表所有任意值。在该例串,"
show ip nat translation
"命令将当前活跃的转换都显示出来了。然后,输入"clear ip nat translation
*"命令来清除所有的转换。再次输入"show ip nat translation
*"命令时将看不到任何转换条目。代码3"
clear ip nat translation
*"命令的结果ROUTER#show ip nat translation
Pro Inside global; Inside local; Outsids local; Outside global
tcp 192.168.2.1:1100310.1.1.1:11003; 172.16.2.2:23; 172.16.2.2:23
tcp 192.168.2.1:1067;;;;10.1.1.1:1067; 172.16.2.2:23; 172.16.2.2:23
Router#
Router#clear ip nat translation *
Router#show ip nat translation
Router#<nothing>
"Translation"一字的具体拼法
"translation"一字在"clear ip nat translation" 命令中是用单数形式,而它在"show ip nat translation"命令中是用复数形式。
使用"
clear ip nat translation inside
global-ip locdl-ip【outside
locdl-ip global-ip】" 命令,我们可以清除包含一个内部转换或一个内部转换和一个外部转换的一个简单转换条目。使用"
clear ip nat translation onside
locdl-ip global-ip"命令,我们可以清除包含一个外部转换的一个简单转换条目。如果想要清除一个扩展转换条目,可以使用"clear ip nat translation protocl inside global-ip global-port locdl-ip locdl- port【outside locdl-ip locdl- port global-ip global-port】" 命令。
下面该命令的一个使用例:
Router#clear ip nat trans udp inside 192.168.2.2 1220 10.1.1.2 1220
172.69.2.132 53 171.69.2.132 53