标准EVPN分布式网关组网。
如下图所示,终端tracert外网交换机上地址,发现报文第二跳到Border后无回显。
tracert程序的实现原理是利用IP生存时间 (TTL) 字段和 ICMP错误消息来确定从一个主机到网络上其他主机的路由。 首先,tracert送出一个TTL是1的IP 数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个【ICMP time exceeded】消息。tracert收到这个消息后,便知道这个路由器存在于这个路径上,接着tracert再送出另一个TTL是2的数据包,发现第2个路由器...... tracert每次将送出的数据包的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个数据包抵达目的地。tracert有一个固定的时间等待响应,如果这个时间过了,它将打印出一系列的*号表明在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后tracert给TTL记数器加1,继续进行。
通过在Border设备上执行debugging ip icmp,然后在终端执行tracert程序,可以看到Border返回的ICMP错误消息的报文源IP为0.0.0.0。这导致了Leaf设备认为该报文是不合法,并将ICMP错误消息报文弃掉,并没有到达用户终端。
ICMP差错消息报文通过查找去往终端的路由表,然后用路由出接口IP作为ICMP差错消息报文的源IP的。在Border上查找去往终端的路由,发现路由的出接口是L3VNI接口。由于L3VNI接口没有IP,所以ICMP差错消息报文的源IP为0.0.0.0。
为了让ICMP错误消息报文可以正常到达用户终端,让tracert的第二跳结果回显,需要使其报文源IP为非0.0.0.0。可以通过在设备上指定ICMP差错报文源IP进行规避。命令为ip icmp source [ vpn-instance vpn-instance-name ] ip-address,该命令需要指定该终端业务网段所关联的VRF名称,源IP可以任意指定(非0.0.0.0)。
通过在Border上指定ICMP差错报文的源IP,实现了tracert第二跳到Border后tracert结果可以正常回显,具体现象如下:
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作