より高いメトリックを持つ 2 番目のインターフェースを ssh で使用するように強制するにはどうすればよいですか?

より高いメトリックを持つ 2 番目のインターフェースを ssh で使用するように強制するにはどうすればよいですか?

2 つのインターフェースを持つ Crunchbang VM と があり、eth0それぞれeth1が OpenWRT VM ( と ) に接続しています。Network eth0Managerと DHCP を使用しています。全体的な目標は、複数の接続を確立し、 でそれらを結合することです。10.232.64.20eth110.232.65.20sshifenslave

デフォルトでは、eth1(何らかの理由で)デフォルト ゲートウェイは次のとおりです。

user@crunchbang:~$ ip ro
default via 10.232.65.1 dev eth1  proto static
10.232.64.0/24 dev eth0  proto kernel  scope link  src 10.232.64.20
10.232.65.0/24 dev eth1  proto kernel  scope link  src 10.232.65.20

次のルートを追加しましたeth0:

user@crunchbang:~$ sudo ip route add default via 10.232.64.1 dev eth0  proto static metric 1

次に、2 つのルートがあります。

user@crunchbang:~$ ip ro
default via 10.232.65.1 dev eth1  proto static
default via 10.232.64.1 dev eth0  proto static  metric 1
10.232.64.0/24 dev eth0  proto kernel  scope link  src 10.232.64.20
10.232.65.0/24 dev eth1  proto kernel  scope link  src 10.232.65.20

ただし、ssh次の方法でのみ出力されますeth1:

user@crunchbang:~$ ssh -b 10.232.64.20 [email protected]
ssh: connect to host 1.2.3.4 port 22: Connection timed out

user@crunchbang:~$ ssh -b 10.232.65.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa': 

メトリックを変更した後はeth0次のようになります。

user@crunchbang:~$ ip ro
default via 10.232.64.1 dev eth0  proto static  metric 1
default via 10.232.65.1 dev eth1  proto static  metric 2
10.232.64.0/24 dev eth0  proto kernel  scope link  src 10.232.64.20
10.232.65.0/24 dev eth1  proto kernel  scope link  src 10.232.65.20

そして、現在はssh次の方法でのみ出ることができますeth0:

user@crunchbang:~$ ssh -b 10.232.64.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa': 

user@crunchbang:~$ ssh -b 10.232.65.20 [email protected]
ssh: connect to host 1.2.3.4 port 22: Connection timed out

sshより高いメトリックを持つインターフェースを強制的に使用するにはどうすればよいでしょうか?

編集

私は設定を実装しテストしました4.2. 複数のアップリンク/プロバイダーのルーティングLinux Advanced Routing & Traffic Control HOWTO のセクションを参照してください。設定は単純で、エラーも発生していないため、説明は最小限にして、コードと結果のみを示します。

root@crunchbang:~# ip route add 10.232.64.0/24 dev eth0 src 10.232.64.20 table T0
root@crunchbang:~# ip route add default via 10.232.64.1 table T0
root@crunchbang:~# ip route add 10.232.65.0/24 dev eth1 src 10.232.65.20 table T1
root@crunchbang:~# ip route add default via 10.232.65.1 table T1
root@crunchbang:~# ip route flush table main
root@crunchbang:~# ip route add 10.232.64.0/24 dev eth0 src 10.232.64.20
root@crunchbang:~# ip route add 10.232.65.0/24 dev eth1 src 10.232.65.20
root@crunchbang:~# ip rule add from 10.232.64.20 table T0
root@crunchbang:~# ip rule add from 10.232.65.20 table T1
root@crunchbang:~# ip route add default scope global nexthop via 10.232.64.1 dev eth0 weight 1 nexthop via 10.232.65.1 dev eth1 weight 1

生成されたルーティング テーブルは次のとおりです。

root@crunchbang:~# ip route show table T0
default via 10.232.64.1 dev eth0 
10.232.64.0/24 dev eth0  scope link  src 10.232.64.20 

root@crunchbang:~# ip route show table T1
default via 10.232.65.1 dev eth1 
10.232.65.0/24 dev eth1  scope link  src 10.232.65.20 

root@crunchbang:~# ip ro
default 
    nexthop via 10.232.64.1  dev eth0 weight 1
    nexthop via 10.232.65.1  dev eth1 weight 1
10.232.64.0/24 dev eth0  scope link  src 10.232.64.20 
10.232.65.0/24 dev eth1  scope link  src 10.232.65.20 

この設定では、ssh は両方のインターフェースを介して接続します。

user@crunchbang:~$ ssh -b 10.232.64.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa': 

user@crunchbang:~$ ssh -b 10.232.65.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa': 

しかし、Network Manager を削除する必要があるようです。なぜそれが悪い考えなのか、または落とし穴について警告してくれる人がいたら、ありがたいです。

編集2

Network Manager の削除はうまくいきました。最後にもう 1 つ質問があります。起動時に構成をロードする現在の標準的な方法は何ですか?

答え1

まず、問題に対するあなたの解決策は良いです。次に、それは OS に依存します。Crunchbag は Debian ベースなので、次の解決策が役に立つかもしれません:

https://serverfault.com/questions/487939/ソースポリシールーティングルールを永続的に追加

<ifname>-ruleRHEL ベースのシステムでは、およびを追加することもできます<ifname>-route

関連情報