Bondingとは・Bonding設定

1.Bondingとは・メリット

bond100

Bondingとは複数のNICを束ねて仮想的なNICとして利用できる技術です。複数のリンクを束ねる類似機能としてWindows・VMwareではチーミング(teaming)、スイッチではリンクアグリゲーション(EtherChannel)があります。Bondingにより得られるメリットは耐障害性の向上や、複数のリンクから送受信を行うことによる負荷分散などが挙げられます。
■Bondingを用いない場合
例えばBondingを用いないケースでは、下記図のように複数のNICは独立したデバイスとして動作します。各リンクは別々のリンクとして扱われ複数のNICに同じIPaddressを付与することはできません。リンクのどちらかに障害が発生した場合、片側のIP宛には通信できなくなります。
bond1
■Bondingを使用する場合
Bondingを用いれば下記のように複数の物理NICを仮想的なNICとして利用できます。リンクのどちらかに障害が発生しても通信の継続は可能ですし、両方の物理NICから通信を送出すれば送信負荷分散が可能です。(負荷分散の有無はBondingの設定により変わります。)
bond2
仮想インターフェースからは通常の物理NICと同じようにAlias IPアドレスを付与することもできます。
bond3

2.Bondingモードについて

Bondingでは7種類の動作モードが用意されており、目的に応じたモードを選択し設定する必要があります。ただし主に採用されるオプションは3つのみです。(赤字)
モード名称
モード
番号
送信
分散
受信
分散
特徴
balance-rr
0
SW設定
ラウンドロビン方式で送信のみ負荷分散する。サーバが複数のスイッチに接続されている場合、スイッチで行っているフローベースの通信にバラつきが生じ、相手にパケットがバラバラな順番で届きやすくなる。(TCPの再送処理が走る)
active-backup
1
1つのアクティブなスレーブインターフェースで送受信を行い、他のスレーブインターフェーブはスタンバイ状態とする。アクティブなスレーブインターフェース障害が発生したら他のスレーブインターフェースに切り替える。
balance-xor
2
SW設定
送信元・先のmac-addressを基に送出スレーブインターフェースを決定する方式で負荷分散する。L3ポート直結だとmacが変わらないので負荷分散されない。
broadcast
3
SW設定
全てのスレーブインタフェースから同一のパケットを送出する。(基本使わないはず)
802.3ad
4
SW設定
プロトコルLACPを使用してリンクアグリゲーションを行い、動的にリンクを形成する。スイッチ側にもLACPでリンク形成を行うためのを設定が必要。全てのスレーブインターフェースで送受信を行う。
balance-tlb
5
SW設定
NICの負荷に応じて送出スレーブインターフェースを変える。
balance-alb
6
SW設定
NIC負荷に応じて送出・受信スレーブインターフェースを決定する。
BondingはKernelのbonding moduleを使用します。モジュールがすでにロードされているかは下記コマンドでbondingが表示されるかで確認できます。

Bondingを扱う上でよく出てくるインターフェースのキーワードありますが扱いや意味を下記にまとめます。

名前
概要
マスターインターフェース
(Master Interface)
bondingされた仮想的なインターフェースを指す。例:bond0
スレーブインターフェース
(SLAVE Interface)
マスターインターフェースを構成するインターフェース。例:eth0,eth1など
アクティブインターフェース
(Active Interface)
マスターインターフェースに所属するスレーブインタフェースで実際にパケットの送受信を行うインターフェース。

3.Bondingの監視モードについて

Bondingはスレーブインタフェースの状態を監視しており、スレーブインターフェースの状態を監視する方法は下記2つです。

MII監視

MII(Media Independent Interface)とはメディアに依存しないインターフェースを設定・管理するために使用されるユーティリティです。イーサネットアダプタの多くは、speed,duplexを設定するためにMIIを使う。MII監視は、自身にハードウェア的な問題がないかチェックする方法です。そのため、対向の接続SWポート以降の経路に障害が発生している場合には障害検知を行うことができません。この場合、ARP監視でSW以降の両側からアクセス可能なデバイスをARPターゲットとして監視を行う必要があります。
bond4

ARP監視

デフォルトで無効化されています。予め監視対象のIPアドレスを設定し、そこに定期的にARPリクエストを送出します。ARP監視に失敗すると自身のアクティブなスレーブインターフェースに障害が発生したと判断し、アクティブインターフェースを切り替えます。(Mode=ActiveBackupの場合)

4.Bonding(Active Backup)設定手順

今回は仮想マシンでサクッと設定してみます。物理マシンで行っているのではないのでご参考までに。
素のVMにVMwareの管理画面からNICを追加します。

bond5
追加したNICがOS側からPCIデバイスとして認識されているか確認する。
何も変更を加えていない状態です。00:0c:29:5d:4e:64 , 00:0c:29:5d:4e:6eのmac-addressが見えますね。

次にbondig設定に必要なファイル編集&作成を行います。各パラメータの意味は下記のとおりです。

パラメータ
意味
DEVICE
device名を指定
ONBOOT
OS起動時に自動起動するか
USERCTL
root以外のユーザに制御を許可するか
BOOTPROTO
DHCPの使用有無
MASTER
bondingのmaster interfaceのデバイス名を指定する。
SLAVE
slave interfaceとするか
BONDING_OPTS
bondigのためオプション設定。カーネルモジュールに渡すパラメータを記述する。
スレーブインターフェース(今回はeth0,eth1)はほぼ同一の設定となるはずです。

マスターインターフェース用のコンフィグファイルです。bonding-optionでMII監視の監視間隔、bonding-mode,優先的に使用するスレーブインターフェース、スレーブインターフェース復旧後の挙動についてのポリシー設定を行っています。
ネットワーク設定を再読込します。

5.設定確認

Bonding設定を確認します。新たにbond0インターフェースが確認できました。mac-addressはprimary スレーブインターフェースのmacが使用されています。(フェイルオーバしてもmacに変化はありませんでした。)

Bondingのステータス状態(モード、スレーブインターフェースの状態)を確認するにはプロセスファイルを確認します。

リンクスピードなどNICとしてのステータス状態を確認する場合はethtoolを使用して確認します。

6.手動切り替え方法(Active Backup)

現在のプライマリアクティブとなっているインターフェースeth0をeth1に変更してみます。
以上です。
Bookmark this on Google Bookmarks
LINEで送る
Pocket