无法设置静态主机路由-“ SIOCADDRT:无此过程”


11

在我的办公室中,有一台Windows Server 2008路由器192.168.16.1,这是我们的默认网关。这通过我们的主要Internet连接发送数据。这很完美。

192.168.16.1也有另一个Internet连接,当前未使用。这将连接到路由器192.168.1.254,然后再连接到我们的辅助Internet连接。

我已经设置了“路由和远程访问”以将192.168.1。*范围路由到我们的内部网络,并且能够从IP地址为192.168.16.22的桌面上ping 192.168.1.254。

我在同一个办公室中有一个非常繁琐的Linux盒子上载和下载任务,因此我想设置一条静态路由,这样就不会占用主要的Internet连接并不会影响我的同事。因此,我的计划是使用静态路由设置此框。

从linux框中,我可以ping 192.168.1.254,但无法在我们的数据中心中添加到目标服务器的静态路由:

$ sudo route add -host 123.123.123.123 gw 192.168.1.254 dev eth0
SIOCADDRT: No such process

从广泛的谷歌搜索中,此错误消息似乎表明我无法访问192.168.1.254来设置路由,但是我可以ping通它。我试图向192.168.1.254添加一条静态路由,该路由运行良好,但是并没有解决问题(如预期的那样)。

由于我的背景是软件开发而不是系统管理,因此我在联网方面还不够先进,无法进一步诊断该问题。我将非常感谢您提出的任何建议。

感谢您的时间。

Answers:


8

桌面是否位于192.168.16.0/24?

您无法通过未直接连接的网关添加(到任何目标的)路由,因为您的计算机不知道如何通过默认路由就无法找到通往路由器的路径。


正确,路由决策需要设置在192.168.16.1上。
马克·瓦格纳

2

你可以得到:“没有这样的过程SIOCADDRT”如果“您试图设置一个网络路由错误之前设定其处理流量该网络的网关的主机路由。”

例如对于本地-> 172.19.0.1-> 172.19.0.xx

[root@local]# route add -net 172.19.0.0 gw 172.19.0.1 netmask 255.255.255.0 dev eth0
SIOCADDRT: No such process

解答:首先创建一个主机路由,然后创建一个网络路由。

例如对于有问题的网络:本地-> 192.168.1.254-> 123.123.123.123

sudo route add -host 192.168.1.254 dev eth0

sudo route add -net 123.123.123.123 netmask 255.255.255.255 gw 192.168.1.254 dev eth0

静态路由仍会加载网络,我想这取决于;)。上传/下载流量必须穿越网络。因此,它将影响网络的其他用户。如果希望减少对其他网络用户的影响,则可以对流量进行带宽限制或将其移至安静的时间。例如,rsync具有良好的带宽限制选项。

路由和SIOCADDRT也有类似的问题。 本地-> dockerserver-> dockercontainer。添加主机路由,然后添加网络路由,可以使路由在一个方向上工作。

这对我有帮助 https://support.symantec.com/zh_CN/article.TECH142841.html

完整的路由示例,双向路由:

dockerserver=172.19.0.1
dockerservernet=172.19.0.0
dockercontainer=172.19.0.25
local=192.168.111.23
localnet=192.168.111.0

### 0. create host route for gw and net route local->docker
[root@local]# route add -host $dockerservernet dev eth0
[root@local]# route add -net $dockerservernet gw $dockerserver netmask 255.255.255.0 dev eth0

### 1. route on dockerserver to local
[root@dockerserver ~]# route add -net $localnet netmask 255.255.255.0 dev eno1
[root@dockerserver ~]# ping $local

### 2. route FROM dockercontainer to local (via gateway dockerserver)
[root@dockercontainer /]# route add -net $localnet netmask 255.255.255.0 gw gateway dev eth1
[root@dockercontainer /]# ping $local

0

关于在运行Ubuntu的AWS EC2实例中设置持久性路由的部分问题,放置静态路由以通过AWS重新启动,停止和启动持久化的正确位置是/etc/rc.local

在该文件中,您需要将路线放置在最后一行上方的一行中。您的行应如下所示:

route add -net XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX gw XXX.XXX.XXX.XXX

sudo重新启动后,运行命令将丢失。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.