destination host unreachable目标主机不可达,消息属于icmp协议层的消息,用于ip层的差错报文的传递,由出问题的网关发出,用于差错控制。IP 路由器无法将 IP 数据报发送给目的地址时,会给发送端主机返回一个目标不可达 ICMP 消息,并在这个消息中显示不可达的具体原因。我们经常在ping命令的回显中看到这个消息,表示1到目的主机没有路由或者找不到目的主机。2这种情况是源主机已经能够到达目的主机的网络,但目的主机的无法到达。

icmp消息的发出源ip是出现问题的节点发出的,表明是在那个节点出的问题。发出时使用的ip地址是访问正常时使用的ip和硬件端口。根据此ip我们就能判断是那个节点有了问题。

这个消息一般是由经过节点的路由器的ip地址发出的,当是目的ip同和自身ip是直连路由时,此消息由直连路由的网关就是设备自身ip产生。

当跨网段的访问,是由一个节点设备,有多个ip配置时,会查路由表,选定一个和正常回包时的出口端口和ip地址,作为icmp消息的源ip发给源主机。和直连路由时打印的区别就是用节点ip打印目的主机不可达,从流程来说,ping的request消息已经发给节点,只是节点没法找到目的ip,查询目的ip的mac地址失败,所以后向给源主机返回一个错误消息。

简单的说,同网段用arp消息探查,超时没有arp响应,打印目的主机不可达,跨网段用ping的request消息发送到网关,网关发出arp探查,超时没有收到,给源ip发出目的主机不可达。

       这就像大教室老师找人,老师问谁谁来了没有?可以问几次,这好比直连路由,在本地可以处理。连问几次没有响应,就认为这人没来,得出结论目的主机不可达。而找的另外一个人,只有他们办公室电话,打过去,告诉,我找谁谁谁?接电话不是本人,那边找了以后,反馈人不在办公室。这好比非直连路由,你要把你找谁的信息告诉所属的网关,这个反馈就是差错消息目的主机不可达。一个本地探查,一个要把我找谁谁谁信息带给目的节点方。

无法访问目的主机的可能性:

1、对方没有开机,或者开机但没有接入对应的广播域,导致arp查询消息没有得到应答。

2、对方ip不存在。

3、设备本身路由错误,没有对应访问的路由。

4、设备自身路由错误,应该走默认网关的ping消息,认为是同一网段,发出arp查询消息,在广播域里没到得到应答。

一次ping的request的源主机流程:

节点收到ping的request的处理流程:

 范例:

第一种情况,双网卡,没有路由时的情况,回显是自身的ip地址回的destnation unreachable。

如图:pc双网卡,有网关设置的网卡ip地址192.168.205.201/24,网关是192.168.205.1,网线断开。另一个网卡没有配置网关,如下图:

本地没有路由时的回显如下:

 本机的网卡配置,没有配置网关。路由表如下:

去ping192.168.207.25,同样显示无法访问目标主机

回显的ip地址是自己主板网卡配置的ip地址回复的无法访问目的主机。 

 Wireshark里看没有发出任何arp和icmp消息

   这个是本机发出的目的主机不可达消息。

去ping18.250.0.45,这个ip要么没开机,要么不存在时的,要么网络的广播消息不通,对方没收到情况:

  

 显示无法访问目标主机,查看一下wireshark里的表现?

一秒一次,发出三次arp请求,没有响应,打印一次无法目的主机,发出12次arp请求,打印四次无法访问目的主机。

第二种情况是,跨网段对方网络网关没有找到对应的ip地址的mac地址情况,由经过网络节点正常路由的接口ip回的icmp destnation  unreachable消息。

pc的配置如上图。

去ping192.168.206.10的情况:

   pc上抓包如下:

注意看,ping的request发出后,三秒后,节点发来目的主机不可达,destnation host  unreachable。

因为192.168.206.10的vlan206和vlan205的svi在同一台交换机上,所以显示是192.168.205.1回的icmp目的主机不可达消息。

 三层交换机发出查询主机地址arp命令,没有得到响应,发三次arp请求,后给目的ip回目的主机不可达。

 

在接入交换机的级联口上抓包(接入交换机上有网口属于206网段,所以能抓到广播包),过滤对应目的ip c0-a8-ce-0a的arp广播消息,看到收到源主机的一个ping的request,网关每隔一秒发出一次arp的广播查询消息,发三次,第三次超时后,发出目的主机不可达,一共收到4个ping的request,所以会12次arp请求。如下图:

 

 Arp查询没有成功,所以交换机用可达路由的ip给源主机回主机不可达的icmp消息。

   ping出现无法访问目的主机时,我们要看回显的发起的ip地址是否是本地地址,是本机地址,意味着本机认为这是直连路由(因为直连路由的下一跳是自身的ip地址),可能arp去查询目的mac地址没有成功造成的显示。若是其他ip地址回的消息,那就看是否这个ip是个网关设备的ip(可能和目的ip在同一网段,是目的ip的网关,也可能不是,但肯定是个网关设备的ip地址),这时就可能网关找不到对应的主机,或者对应的主机未开机,没有在线的原因。

还有一种极端情况是,设备所有网卡都是down,未接线的状态时,这是ping出去,也会显示host unreachable。

 

第四种情况见ping回显无法访问目的主机,资源无法访问问题解决过程_wj31932的博客-CSDN博客_ping 无法访问目标主机有同事反馈他的pc192.168.205.201无法访问svn资源192.168.193.10,而其他人都能访问,让协助解决。询问他ping的结果,反馈回显目标主机不可达。无法访问目的主机,同网段是获取mac地址失败,跨网段是对方网关找对应ip的mac地址失败后的,对方网关发icmp消息目标主机不可达。考虑205网段的网关是205.1,193的网段的网关是193.1,两个网段都接在同一三层交换机下,通过三层交换机的直连路由实现访问的,告知他是否193.10未开机? 反馈其他人都能访问,奇怪...https://blog.csdn.net/wj31932/article/details/108999891

有一篇三步搞定子网划分方法和例题详解,自觉写的不错,有兴趣可以参考一下。三步搞定子网划分方法和例题详解_wj31932的博客-CSDN博客_划分子网的方法 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐