在进行网络调试的时候,发现属于同一网段的两台主机,一台是windows虚拟机、一台linux虚拟机,traceroute同一目的IP的时候,windows能够完整打印出整个路由路径,而linux则打印两跳之后就显示星号不可达了。
由于两台主机属于同一网段,所以中间网络的ACL策略是一样的,不会是策略差异的问题。
原因是:linux虚拟机在traceroute时,默认使用UDP报文,而不是使用ICMP报文;而防火墙为了方便网络调试是放行了ICMP报文,但没有放行UDP报文,这就导致了linux虚拟机的traceroute报文(UDP)被防火墙拦截了,windows虚拟机的traceroute报文(ICMP)正常通行。
解决方法:linux虚拟机在traceroute的时候可以加上选项-I,则traceroute会使用ICMP报文发送。
traceroute -I 192.168.1.1
网友评论