ボンディングでフェイルバック構成をセットアップしようとしていますが、インターフェイス構成を回避できません。私のインターフェースは次のとおりです。
auto bond0
iface bond0 inet static
address 192.168.1.39
netmask 255.255.255.0
up /sbin/ifenslave bond0 eth1 eth3
down /sbin/ifenslave -d bond0 eth1 eth3
私の/etc/modprobe.d/bonding.confファイルは次のとおりです。
alias bond0 bonding
options bonding mode=3
他のシステムからpingを実行してテストします。私の結合状態は次のとおりです。
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (broadcast)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 44:a8:42:03:68:2c
Slave queue ID: 0
Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 44:a8:42:03:68:2c
Slave queue ID: 0
Eth1ケーブルを取り外すと、フェールオーバーが機能し、eth3がデータを実行します(pingは引き続き続行されます)。
Eth1に接続し直してeth3を削除すると、pingが停止し、ボンディングステータスにインターフェイスが含まれなくなります。ボンドのステータスは次のとおりです。
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (broadcast)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
ボンディングのすべてのモード(0〜6)で試しました。ただし、フェイルバックサポートを提供する構成はありません。どこがおかしいの?
EDIT 2019-01-10:これらの手順はUbuntu 16.04以前のものです。 18.04の手順で更新してみます。
この回答では、active-backup
ボンディングとbond-primary
インターフェイスセットを使用して、使用可能な場合にフェールオーバーがプライマリに戻るようにします。詳細については、次を参照してください。 https://wiki.linuxfoundation.org/networking/bonding
Ubuntuでのボンディングは、RedHatなどの他のLinuxディストリビューションとは異なるセットアップです。 Ubuntuでいくつかのボンディング構成を行いましたが、可能な限り下に配置します。
一見、すでにifenslave
がインストールされていますが、インストールされていない場合は、ifenslave
をインストールします。
Sudo apt-get install ifenslave
次に、/etc/modules
を見て、次の行があることを確認します。
loop
lp
rtc
bonding
/etc/network/interfaces
ファイルで、loopback
、eth1
、およびeth3
インターフェイスを設定します。
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet manual
bond-master bond0
bond-primary eth1
auto eth3
iface eth3 inet manual
bond-master bond0
NIC接続の1つが失敗した場合、フェールオーバー用にbond0
でactive-backup
インターフェイスを設定します。
auto bond0
iface bond0 inet static
address 192.168.1.39
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
bond-mode active-backup
bond-miimon 100
bond-slaves none
/etc/network/interfaces
ファイルへの変更を保存し、ネットワークサービスを再起動します。
Sudo /etc/init.d/networking restart
これで、ボンディング設定を確認できます。 bond0
、eth1
、およびeth3
が正しいことを確認してください。
Sudo ethtool bond0
Sudo ethtool eth1
Sudo ethtool eth3
eth1
からbond0
を削除して、フェールオーバーが機能するかどうかを確認します。
Sudo ifenslave -d bond0 eth1
まだゲートウェイにpingできるかどうかを確認します。
ping -c2 192.168.1.1
eth1
をbond0
に追加します。
Sudo ifenslave bond0 eth1
お役に立てれば!