Ubuntu: ケーブルを抜き差ししても ethX インターフェイスが結合されない

Ubuntu: ケーブルを抜き差ししても ethX インターフェイスが結合されない

ボンディングでフェイルバック構成を設定しようとしていますが、インターフェース構成を回避できません。インターフェースは次のとおりです。

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) を試しました。しかし、どの構成もフェイルバック サポートを提供していません。どこが間違っているのでしょうか?

答え1

編集 2019-01-10:これらの手順は Ubuntu 16.04 以前用です。18.04 用の手順に更新してみます。

この回答では、プライマリが利用可能になったときにフェイルオーバーでプライマリに戻ることができるインターフェース セットを使用しactive-backupたボンディングを使用しています。詳細については、以下を参照してください。bond-primaryhttps://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、、およびインターフェースを設定loopbacketh1ます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

これで、ボンディング設定を確認できます。bond0eth1およびが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

お役に立てれば!

関連情報