由于未添加到NAT Server Global IP地址的路由导致Tracert该地址不通

发布时间:  2014-09-20 浏览次数:  243 下载次数:  0
问题描述
组网结构:
图4-11 组网图

防火墙上配置了nat server,映射内网的一台服务器。从pc上面ping防火墙上nat server的global地址可以ping通,但是Tracert却不通,显示一个目的不可达。


处理过程
1. Ping是正常的,说明路由和包过滤应该没有问题。ping包的时候查看防火墙上的会话表是正常的,已经将global地址转换为内网地址了。在Tracert的同时查看会话表,没有找到对应的会话表信息。
2. 在客户端抓包,发现防火墙回应了一个目的不可达报文,但无法判断目的不可达的原因,正常情况下应该为TTL超时。
3. 在防火墙上打开debug信息,发现在数据面防火墙确实是要去发送TTL超时报文的。
Current Show sessions count: 1
    Protocol(ICMP) SourceIp(10.122.131.3) DestinationIp(10.151.226.6)   
SourcePort(2048) DestinationPort(2048) VpnIndex(public)   
           Receive           Forward           Discard   
Obverse : 1          pkt(s) 0          pkt(s) 1          pkt(s)   
Reverse : 0          pkt(s) 0          pkt(s) 0          pkt(s)
    Discard detail information:
  DP_FW_L3Distribute            :exit 16:     1-----丢包,且需要发送TTL超时报文

0.7422383 shengzhan-USG-1 %%01IP/7/debug_case(d): 
Receiving, interface = GigabitEthernet0/0/1, version = 4, headlen = 20, tos = 0, 
pktlen = 92, pktid = 62450, offset = 0, ttl = 1, protocol = 1, 
checksum = 19348, s = 10.122.131.3, d = 10.151.226.6
prompt: Receiving IP packet from GigabitEthernet0/0/1------收到Tracert包。

0.7422766 shengzhan-USG-1 %%01IP/7/debug_case(d): 
Discarding, interface = GigabitEthernet0/0/1, version = 4, headlen = 20, tos = 0, 
pktlen = 92, pktid = 62450, offset = 0, ttl = 1, protocol = 1, 
checksum = 19348, s = 10.122.131.3, d = 10.151.226.6
prompt: Destination is unreachable!---产生目的不可达包

0.7423133 shengzhan-USG-1 %%01IP/7/debug_case(d): 
Sending, interface = GigabitEthernet0/0/1, version = 4, headlen = 20, tos = 0, 
pktlen = 56, pktid = 44120, offset = 0, ttl = 255, protocol = 1, 
checksum = 18603, s = 10.56.47.12, d = 10.122.131.3
prompt: Sending the packet from local at GigabitEthernet0/0/1----将目的不可达报文发送出来

4. 在数据面处理时要发送TTL超时报文,但是将该报文上送给VRP面的时候,由于此时是原始报文,目的地址仍然是global地址,在VRP面上去查找路由的时候,因为现网没有配置到这个地址的路由,则就无法找到路由,就回复了一个路由不可达。如果在现网配置一条默认路由,则此时VRP面上就走到发送TTL超时报文,也就可以正确的发送TTL超时报文了。
根因
数据面处理时要发送TTL超时报文,但是将该原始报文上送给VRP面的时候,由于此时并没有做目的NAT,目的地址仍然是global地址,在VRP面上去查找路由的时候,因为现网没有配置到这个地址的路由,无法找到路由,就回复了一个TTL超时报文。如果在现网配置一条默认路由(主要有到global地址的路由),则此时VRP面上就走到发送TTL超时报文那,也就可以正确的发送TTL超时报文了。
解决方案
根据组网实际情况,添加到global地址的路由。

END