Linux下添加静态路由表设置网关出现SIOCADDRT: Network is unreachable的问题分析

场景:

# route add default gw 192.168.4.1
route: SIOCADDRT: Network is unreachable

解释:

1、先ping一下网关,但是ping的通不代表一定能做路由的下一跳。

2、这里所提示的unreachable应该指的是广播不可达,而不是路由不可达。因为路由下一跳就是给ip数据包提示下一步如何走的,如果你告诉它一个无法直接广播到达的地址的话他就要通过相应的路由去找这个地址,这就等于你要千辛万苦找到“下一跳”(加引号是因为其实它并不是真正的下一跳,因为你是通过对应的路由[这个对应的下一跳反而成了真正的下一跳]才能找到它),然后再问他它去往原目的下一跳如何走... 这显然不合理也难做到,因为有两个目的地址要定位, 一个是找“下一跳”, 一个找数据包的目的地址,但正常情况下IP报文中只有一个目的地址。

参考:

http://blog.csdn.net/lidonghat/article/details/53520098(以上内容转自此篇文章)

http://blog.csdn.net/panlei361/article/details/48373359

http://blog.csdn.net/u013304231/article/details/53319375

http://blog.csdn.net/trochiluses/article/details/9788247

http://www.360doc.com/content/12/0430/16/9318309_207703488.shtml

http://www.codes51.com/itwd/4369946.html

原文地址:https://www.cnblogs.com/EasonJim/p/8427569.html