web-dev-qa-db-ja.com

静的ホストルートを設定できない-「SIOCADDRT:そのようなプロセスはありません」

私のオフィスには、デフォルトゲートウェイである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ボックスに対して非常に集中的なアップロードとダウンロードのタスクを行っているため、静的ルートを設定して、メインのインターネット接続を拘束して同僚に影響を与えないようにします。それで、私の計画はこのルートを静的ルートでセットアップすることです。

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

私のバックグラウンドはシステム管理ではなくソフトウェア開発であるため、私はネットワーキングでこの問題をさらに診断できるほど高度ではありません。私は与えられたアドバイスにとても感謝しています。

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

11
Steve Rukuts

デスクトップは192.168.16.0/24にありますか?

直接接続されていないゲートウェイを介してルートを(任意のターゲットに)追加することはできません。これは、コンピューターがデフォルトルートを経由せずにルーターへの経路を見つける方法を知らないためです。

8
3molo

"SIOCADDRT:No such process"エラーが表示される場合は、「ネットワークのルートを設定しようとしましたbeforebeforeそのネットワークのトラフィックを処理するゲートウェイのホストルート。」

例えばローカルの場合-> 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

ANSWER:最初にホストルートを作成し、次にネットルートを作成します。

例えば問題のネットワークの場合:ローカル-> 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
2
gaoithe

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

0
Duke Hall