解決策

解決策

私はRaspberry Pi 2モデルBを使用してプロジェクトを開始し、ここにFedora Armをインストールしました。現在の目標は、イーサネットケーブルを介してDSLルーターと3G USBドングルを介してパイをインターネットに接続してフェールオーバーメカニズムを設定できるようにすることです。これを行うには、eth0(イーサネット接続)が機能していることを確認するスクリプトを作成する必要がありますping 8.8.8.8 -I eth0。それ以外の場合は、eth0をオフにしてeth1(3Gドングル)を有効にして3G接続に切り替えることができます。 。

すべてが大丈夫です。ここで問題が発生します。イーサネットが再接続された後、再びイーサネットに戻りたいのですが、3G接続が実行されている間はそれを行うことはできません(ping 8.8.8.8 -I eth0eth0をロードしても公開は機能しません)。 )eth0のインターネット接続が復元されたことを確認できるように、eth1を終了する必要があります。 2つのインターフェイスを同時に開くと、一度に1つだけがアクティブになり、ping 8.8.8.8 -I eth0' and 'ping 8.8.8.8 -I eth1同時に2つのインターフェイスを使用してインターネットにpingを実行できないことに気づきました。私の質問は次のとおりです

両方のインターフェイスが実行されているときにpingは可能ですか?

それではどうでしょうか?

答え1

明らかに問題は、基本的にシステムにデフォルトゲートウェイが1つしかないことです。説明した状況では、非同期ルーティングが発生します。

解決策

iproute2プログラムはこの問題を解決するために頻繁に使用することができ、現在すべてのLinuxディストリビューションに含まれており、インストールされています。通常、Linuxシステムには1つのデフォルトゲートウェイエントリしか持てないルーティングテーブルが1つしかありません。 iproute2を使用すると、追加のルーティングテーブルを設定でき、システムはルールに従ってこのテーブルを使用できます。初期位置

eth0とeth1という2つのインターフェースがあるとしましょう。使用する必要がある2つのネットワークは192.168.0.0/24と10.10.0.0/24です。ここで、各ネットワークの最初のIPアドレスはゲートウェイでなければなりません。初期構成は以下の通りです。 /etc/ネットワーク/インターフェース

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface

auto lo
iface lo inet loopback

# The primary network interface

allow-hotplug eth0
iface eth0 inet static
    address 192.168.0.10
    netmask 255.255.255.0
    gateway 192.168.0.1

# The secondary network interface
allow-hotplug eth1
iface eth1 inet static
    address 10.10.0.10
    netmask 255.255.255.0

2番目のルーティングテーブルの追加

新しいルーティングテーブルを追加するには、/etc/iproute2/rt_tablesファイルを編集する必要があります。ルーティングテーブルを「rt2」と呼び、デフォルト設定を1に設定します。名前付きファイルは次のようにする必要があります。

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
1 rt2

新しいルーティングテーブルの設定

今、目標を達成するには4つのコマンドが必要です。まず、次のコマンドを使用して新しいルーティングテーブルを入力する必要があります。

ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table rt2
ip route add default via 10.10.0.1 dev eth1 table rt2

最初のコマンドは、eth1インターフェースを介してネットワーク10.10.0.0/24にアクセスできることを示します。 2番目のコマンドはデフォルトゲートウェイを設定します。ルーティングルール

システムがいつ新しいルーティングテーブルを使用するかを知るには、2つのルールを設定する必要があります。

ip rule add from 10.10.0.10/32 table rt2
ip rule add to 10.10.0.10/32 table rt2

これらの規則は、IPアドレス10.10.0.10から始まり、IPアドレスに向かうトラフィックがrt2ルーティングテーブルを使用する必要があることを示しています。

関連情報