bonding

複数のNICを束ねる事で、耐障害性向上・トラフィック負荷分散を図る技術。
目的に応じて最適な負荷分散アルゴリズムを選択する必要がある。
 
様々な別名があり、Bonding(ボンディング)以外には、チーミング(Teaming)、
CiscoだとPortChannel(ポートチャネル)、LAG(リンクアグリゲーション)と呼ぶ事もある。


参考サイト


冗長化アルゴリズム

モードを何も指定しない場合は、balance-rrが自動的に選択される。
bondingインターフェースの対向L2SWでLACPを設定出来る場合、802.3adにするのがオススメ。
 
blance-rrはラウンドロビン方式となる為、対向L2SWがスタック構成の場合は、
パケット送信元のMACアドレスが都度変化する事となり、稀に接続断が発生する。
これは、Linux・UNIX系OSを使っているアプライアンス(SANディスク装置、負荷分散装置、FW-UTM)全般に当てはまる事が多い。
その為、blance-rrは基本的に使用しない事を推奨する。
どうしてもblance-rrを使用する場合は、対向L2SWが1台である事を前提に、
MACアドレス分散が発生しない事を踏まえた上で、設計する必要がある。
 

 アルゴリズム一覧


送信ポリシー

bondingには負荷分散アルゴリズムとは別に、パケット送信ポリシーが存在する。
L2~L4で分散方式に重み付けをする事で、通信が1インターフェースに偏るのを解消する事が出来る。
 
何も設定しない場合は、L2(MACアドレス)ベースでの負荷分散になる。
送信元のLinuxサーバが仮想化している場合、パケット送信元が全て同じMACアドレスとなる為、L2制御では偏りが発生する。
このような場合はL2+L3(MACアドレスとIPアドレスのハッシュ)で分散を行う方が良い。
 

 ポリシ一覧


設定方法(Linux)

CentOS4、CentOS5~7でパラメータの指定方法が変化する。
今回は下記の条件でbondingする事を想定して設定を行う

使用I/Feth0/eth1
生成I/Fbond0
アルゴリズム802.3ad (LACP)
ポリシーL2+L3

 

 設定内容


設定方法(L2SW)

L2SWではPort-ChannelインターフェースをLACPモードで作成する
事前にPort-Channelを形成した上でLANケーブル結線を行わないとループになるので注意
 

 L2SW設定例


ステータス確認

設定した後は、下記コマンドを使って設定が反映されているか確認を行う。
bondingはL2SWとのモード不一致、LACPDU送信タイミング不一致などでループになりやすい。
 

 確認コマンド


bondingデバイス(インターフェース)の削除

bondingのインターフェース番号を間違えた場合、間違えた番号でデバイスが生成されてしまい、
bondingデバイスを削除出来なくなる。
 
使わないデバイスが残っているのは後々障害になりかねないので、
いらないbondingデバイスは下記のコマンド2つを実行して削除する。
例として、bond0デバイスを手動削除する方法をメモしておく
 

 削除コマンド