web-dev-qa-db-ja.com

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)で試しました。ただし、フェイルバックサポートを提供する構成はありません。どこがおかしいの?

2
Paul Justin

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ファイルで、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つが失敗した場合、フェールオーバー用にbond0active-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

eth1bond0に追加します。

Sudo ifenslave bond0 eth1

お役に立てれば!

6
Terrance