linux网络hack用法之onlink路由

Posted 柳清风09

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux网络hack用法之onlink路由相关的知识,希望对你有一定的参考价值。

在单网卡机器上,如果配置eth0的地址为192.168.40.249/32,那么别指望用常规的方式添加任何路由,这是因为链路层直连路由已经不存在了,我们如下的尝试:
route add -net 192.168.0.0/16 gw 192.168.40.254
将失败,因为网关地址并不和本地地址同在任何一个网段,那么如何是好呢?Linux的iproute2工具包提供了一个onlink参数,可以满足这样的要求:
ip route add 172.16.0.0/16 via 192.168.40.254 dev eth0 onlink
之所以要指明dev参数是因为没有链路层直连路由,因而协议栈根本不知道从哪个网卡发出数据包,必须显式指明才可以,最后的一个onlink参数表明强制此网关是“在链路上”的(虽然并没有链路层路由)。除了路由之外的所有访问都将以“路由不可达”这种错误而告终。
按照上述的配置,即使你访问192.168.40.0/24网段的,也会失败,因为192.168.40.249/32和谁都不在一个网段。那么onlink能表达什么呢?onlink的意义在于协议栈虽然找不到链路层直连路由,但是还是会发布针对via网关的arp请求的,仅此而已。如此一来,这种网络通信显得更加纯粹些。仅仅就是为了通信,不会因为通信本身而造出一个IP网段来。

以上是关于linux网络hack用法之onlink路由的主要内容,如果未能解决你的问题,请参考以下文章

网络配置之基本网络配置(cenos6)

Linux之网络管理静态路由小案例

网络通信模型基本以及Linux下高可用/Bonding的概念和用法

Linux之网络管理ip及路由相关命令

Linux系统之路由配置

[Linux] Linux网络之网络层协议详解