静的ホストルートを設定できません-「SIOCADDRT:No such process」


11

私のオフィスには、デフォルトゲートウェイであるWindows Server 2008ルーター192.168.16.1があります。これにより、メインのインターネット接続を介してデータが送信されます。これは完全に機能します。

192.168.16.1には、現在使用されていない別のインターネット接続もあります。これは、ルーター192.168.1.254に接続し、ルーターはセカンダリインターネット接続に接続します。

192.168.1。*の範囲を内部ネットワークにルーティングするようにルーティングとリモートアクセスを設定し、IPアドレスが192.168.16.22のデスクトップから192.168.1.254にpingを実行できます。

同じオフィスにあるlinux boxのアップロードとダウンロードのタスクが非常に集中しているため、メインのインターネット接続を拘束して同僚に影響を与えないように静的ルートを設定したいと思います。したがって、私の計画では、このボックスに静的ルートを設定することです。

Linuxボックスから192.168.1.254にpingできますが、データセンターの宛先サーバーに静的ルートを追加できません。

$ 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に追加しようとしましたが、これは完全に機能しましたが、問題は解決しませんでした(予想どおり)。

私のバックグラウンドはシステム管理ではなくソフトウェア開発であるため、この問題をさらに診断するためのネットワーキングの知識は十分ではありません。アドバイスをいただければ幸いです。

お時間をいただきありがとうございます。

回答:


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/en_US/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コマンドを実行すると、再起動時に失われます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.