“SIOCADDRT: Network is unreachable”不可达到底指的什么意思

引用一下别人的描述

问题描述:

[root@ACONBIO /etc]# route add default gw 192.168.4.1
route: SIOCADDRT: Network is unreachable

解决:
确认所配置的网关是否可以ping通。

网络不可达。配置失败。

----------------------------------------------------------------------------------------------------------------------

上面的解决办法有问题,能Ping通不一定能做路由的下一跳!!!

“SIOCADDRT: Network is unreachable”不可达到底指的什么意思_第1张图片


能ping通,但是当我设置路由的下一跳的时候依然提示错误:



所以我猜测这里所提示的unreachable应该指的是广播不可达,而不是路由不可达:


因为路由下一跳就是给ip数据包提示下一步如何走的,如果你告诉它一个无法直接广播到达的地址的话他就要通过相应的路由去找这个地址,这就等于你要千辛万苦找到“下一跳”(加引号是因为其实它并不是真正的下一跳,因为你是通过对应的路由[这个对应的下一跳反而成了真正的下一跳]才能找到它),然后再问他它去往原目的下一跳如何走... 这显然不合理也难做到,因为有两个目的地址要定位, 一个是找“下一跳”, 一个找数据包的目的地址,但正常情况下ip报文中只有一个目的地址。当然我现在还没有学习源码来验证这个答案,不过有时候合理的猜测也是一种不错的学习方法,尤其是对我这种有强迫症的人,有时不给自己一个合理的解释全身难受,哈哈。


---------------------------------------------------------

所以说路由的下一跳一定得是广播可达的,仅仅ping通(路由可达)没卵用!!!

---------------------------------------------------------



你可能感兴趣的:(route,gateway,linux,linuxC编程)