![Linux下如果未配置网关所在子网则添加路由](https://linux22.com/image/73713/Linux%E4%B8%8B%E5%A6%82%E6%9E%9C%E6%9C%AA%E9%85%8D%E7%BD%AE%E7%BD%91%E5%85%B3%E6%89%80%E5%9C%A8%E5%AD%90%E7%BD%91%E5%88%99%E6%B7%BB%E5%8A%A0%E8%B7%AF%E7%94%B1.png)
我有一台 PC,其 192.168.1.1/24 配置为 eth0 接口。现在,如果我尝试通过 10.10.10.254 添加路由,ip
实用程序会报告No such process
:
root@PC:~# ip neigh add 10.10.10.254 lladdr 00:01:02:03:04:05 dev eth0
root@PC:~# ip route add default via 10.10.10.254 dev eth0
RTNETLINK answers: No such process
root@PC:~# ip route add 172.16.0.1/32 via 10.10.10.254 dev eth0
RTNETLINK answers: No such process
root@PC:~#
只要 PC 知道 10.10.10.254 的 MAC 地址,技术上就可以通过 10.10.10.254 发送数据,而 10/8 网络未配置到 PC 中的任何接口。根据我的示例,它将使用 PC 的 eth0 MAC 地址作为源 MAC,00:01:02:03:04:05 作为目标 MAC,192.168.1.1 作为源 IP 地址,目标地址将是我指定的任何地址。
如果网关所在的子网未配置到接口,是否可以强制 Linux 添加路由?
答案1
尝试这个:
ip route add 172.16.0.1/32 via 10.10.10.254 dev eth0 onlink