频道栏目
首页 > 资讯 > 路由器 > 正文

有关nat和路由的先后顺序

15-10-26        来源:[db:作者]  
收藏   我要投稿
在自己的拓扑中,从inside的pc上ping单个包测试, 前端配置了NAT的路由器上,debug ip pack, debug ip nat 输出:
 
 
 
*Mar  1 01:28:32.728: IP: tableid=0, s=172.16.8.5 (Ethernet0/0), d=63.19.6.1 (Ethernet1/0), routed via FIB
 
   先查FIB确定出口
 
*Mar  1 01:28:32.728: NAT: s=172.16.8.5->200.1.8.7, d=63.19.6.1 [37411]
 
   可以理解为在去出口的路上,发现配置了NAT,把源IP替换掉
 
*Mar  1 01:28:32.728: IP: s=200.1.8.7 (Ethernet0/0), d=63.19.6.1 (Ethernet1/0), g=200.1.8.8, len 48, forward
 
   替换源IP后,继续转发包
 
*Mar  1 01:28:32.732: NAT*: s=63.19.6.1, d=200.1.8.7->172.16.8.5 [37411]
 
   返回的应答包,目的IP替换回当初发送时对应的源IP
 
   然后再查路由表转发,因为这里ping的机器是直连,所以没有这步
 
 
 
   在后端路由器上 debug ip pack的输出:
 
 
 
*Mar  1 01:28:32.928: IP: tableid=0, s=200.1.8.7 (Ethernet1/0), d=63.19.6.1 (Ethernet0/0), routed via RIB
 
*Mar  1 01:28:32.933: IP: s=200.1.8.7 (Ethernet1/0), d=63.19.6.1, len 48, rcvd 4
 
   收到ping包
 
*Mar  1 01:28:32.933: IP: tableid=0, s=63.19.6.1 (local), d=200.1.8.7 (Ethernet1/0), routed via FIB
 
*Mar  1 01:28:32.937: IP: s=63.19.6.1 (local), d=200.1.8.7 (Ethernet1/0), len 48, sending
 
   应答ping包
 
 
 
先查路由表确定出口,因为目的地址是确定的并且直接决定出口。找到出口后,如果有NAT就替换源IP,如果没有NAT就不替换。所以,之前看到的开NAT就替换不开NAT就不替换,并不是NAT优先级更高,而是NAT处于路由转发之后,更接近出口的缘故。
 
 
 
这是NAT从内向外,先查路由再NAT的顺序。从外向内的方向,顺序相反。因为从外向内的包,如果不先NAT把目的IP替换为内部IP的话,是不可能在路由表中查到对应转发规则的。
相关TAG标签
上一篇:CCNA学习笔记2---以太网
下一篇:sed命令详解
相关文章
图文推荐

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

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