Debianでのbonding設定メモです。
bondingとは、複数のNICを一つのデバイスとして管理することで、NICの冗長化・負荷分散ができます。
一方のケーブルが断線したり、対向スイッチのポートが壊れたりしても大丈夫なわけです。
teamingと言われることもあるみたいです。
ifenslaveパッケージのインストール
$ sudo aptitude install ifenslave
bondingモジュールの設定
/etc/modprobe.d/bondingに、bondingモジュールのパラメータを設定します。
#/etc/modprobe.d/bonding alias bond0 bonding options bonding mode=0 miimon=100
bondingポリシーは、mode=0を設定しています。
主なmodeは、以下の通り。
- 0 ―> 耐障害性と負荷バランシングに対するラウンド ロビン ポリシーを設定します。ボンディングされたスレーブインタフェースは使用できるものから順に、送受信を順次行ないます。
- 1 -> 耐障害性に対するアクティブ バックアップ ポリシーを設定します。最初に使用できるボンディングされたスレーブインタフェースによって送受信が行なわれます。ボンディングされた他のスレーブインタフェースはアクティブなスレーブインタフェースが失敗した場合のみ使用されます。
miimonは、MIIリンク監視の実行頻度を指定します。
その他、bondingパラメータの詳細については、こちらを参照ください。
bondingモジュールのロード設定
bondingモジュールをロードします。
$ sudo modprobe bonding $ lsmod | grep bonding bonding 83680 0
ロードに成功したら、OS起動時に自動ロードされるように/etc/modulesに設定します。
#/etc/modules
bonding
bondingインタフェースの設定
/etc/network/interfaceにbondingインタフェースを設定します。
今回は、bondingインタフェースをbond0とし、DHCPを使用しました。
#/etc/network/interface # The primary network interface iface eth0 inet manual # The secondary network interface iface eth1 inet manual # The bonding interface auto bond0 iface bond0 inet dhcp slaves eth0 eth1
networkingのリスタートもしくは、OS再起動でbondingが有効になります。
ifconfigを実行し、以下の状態になっていればbonding設定完了です。
ファイルダウンロード中に一方のケーブルを抜くなどして、動作を確認してください。
bondingインタフェースをブリッジネットワークに設定*1
私の環境では、KVMで仮想化環境を構築しているため、ブリッジネットワークを使用しています。
詳しい環境は、こちらを参照ください。
ということで、ブリッジネットワークを設定しました。
#/etc/network/interface # The primary network interface iface eth0 inet manual # The secondary network interface iface eth1 inet manual # The bonding interface auto bond0 iface bond0 inet manual slaves eth0 eth1 # The bridge network interface auto br0 iface br0 inet dhcp bridge_ports bond0 bridge_stp off bridge_maxwait 5
*1:bondingのみ場合は、設定不要です。