解決策 1:
デスクトップは 192.168.16.0/24 ですか?
直接接続されていないゲートウェイを介して (任意のターゲットへの) ルートを追加することはできません。これは、コンピューターがデフォルト ルートを経由せずにルーターへの道を見つける方法を認識していないためです。
解決策 2:
「SIOCADDRT:そのようなプロセスはありません」 を取得できます 「前にネットワークのルートを設定しようとした場合のエラー」 そのネットワークのトラフィックを処理するゲートウェイのホスト ルートを設定します。"
例えばローカルの場合 -> 172.19.0.1 -> 172.19.0.xx
[[email protected]]# 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 で同様の問題が発生しました。 local -> 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
[[email protected]]# route add -host $dockerservernet dev eth0
[[email protected]]# route add -net $dockerservernet gw $dockerserver netmask 255.255.255.0 dev eth0
### 1. route on dockerserver to local
[[email protected] ~]# route add -net $localnet netmask 255.255.255.0 dev eno1
[[email protected] ~]# ping $local
### 2. route FROM dockercontainer to local (via gateway dockerserver)
[[email protected] /]# route add -net $localnet netmask 255.255.255.0 gw gateway dev eth1
[[email protected] /]# ping $local