ボンディング(ボンディング)とは | 意味や読み方など丁寧でわかりやすい用語解説
ボンディング(ボンディング)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
ボンディング (ボンディング)
英語表記
Bonding (ボンディング)
用語解説
ボンディングとは、主にネットワークの分野で用いられる技術であり、複数の物理的なネットワークインターフェースカード(NIC)を論理的に束ねて、あたかも一つの大きなインターフェースとして扱う手法を指す。この技術は、個々のNICが持つ通信帯域を合計してより広範な帯域幅を実現することや、いずれかのNICに障害が発生した場合でも通信を継続できる冗長性を確保することを主な目的として導入される。特にサーバーやネットワーク機器において、通信性能の向上と信頼性の確保は極めて重要であり、ボンディングはその両方を同時に実現する手段として広く利用されている。
ボンディングの主な目的は二つある。一つは通信帯域の拡大である。例えば、サーバーが二つの1ギガビットイーサネット(GbE)NICを搭載している場合、それぞれが独立して動作すれば最大1Gbpsの通信が可能だが、ボンディング技術を利用することで、これらのNICを論理的に結合し、最大で理論上2Gbpsの通信帯域を持つインターフェースとして機能させることが可能になる。これは、大量のデータ転送や多数のクライアントからのアクセスを処理するサーバーにおいて、ネットワークボトルネックを解消し、全体のパフォーマンスを向上させる上で非常に有効である。パケットは複数の物理インターフェースに分散して送信されるため、単一のインターフェースでは達成できない高いスループットを実現できる。
もう一つの重要な目的は、冗長性の確保である。ネットワークの接続は、サーバーの運用において生命線とも言える。もし一つのNICが故障したり、そのNICに接続されているケーブルが断線したり、あるいはその先のネットワークスイッチのポートに障害が発生したりすれば、サーバーのネットワーク通信は途絶えてしまう。ボンディングを適切に設定していれば、複数のNICのうち一つに障害が発生した場合でも、残りの正常なNICが自動的に通信を引き継ぎ、サービスが継続される。この機能はフェイルオーバーと呼ばれ、予期せぬ障害からシステムを守り、可用性を高める上で不可欠な要素となる。これにより、システム管理者による手動での対応を待つことなく、サービスの中断時間を最小限に抑えることができる。
ボンディングは、通常、オペレーティングシステム(OS)のカーネルレベルでサポートされる機能であり、LinuxのようなOSでは「ボンドドライバ」と呼ばれるモジュールがこの役割を担う。物理NICがOSに認識された後、これらをグループ化して一つの論理的なボンディングインターフェースを作成する。この論理インターフェースには独自のMACアドレスが割り当てられ、ネットワークからはあたかも単一のNICであるかのように見える。実際のパケットの送受信は、この論理インターフェースを通して行われ、内部でボンディングドライバが設定されたポリシーに基づいてどの物理NICを使用するかを決定する。
ボンディングには複数の動作モードがあり、それぞれが異なる特性を持ち、用途に応じて使い分けられる。代表的なモードをいくつか挙げる。
balance-rr (ラウンドロビン) モードは、パケットを物理インターフェースに順繰りに分散して送信する。これにより、複数のインターフェースの帯域を均等に利用し、高いスループットを目指す。しかし、受信側のトラフィックも均等に分散される保証はなく、またパケットが到着する順番が入れ替わる可能性もあるため、特定の環境では注意が必要となる。
active-backup モードは、冗長性を最優先するモードである。一つの物理インターフェースを「アクティブ」として使用し、残りのインターフェースを「スタンバイ」として待機させる。アクティブインターフェースに障害が発生した場合、スタンバイインターフェースの中から一つが自動的にアクティブに昇格し、通信を引き継ぐ。このモードでは、普段は一つのインターフェースしか利用されないため、帯域幅の拡大効果はないが、高い可用性を実現できる。
balance-xor モードは、送信元MACアドレスと送信先MACアドレスのXOR演算の結果に基づいてパケットを物理インターフェースに割り振る。これにより、特定の送信元と送信先の組み合わせからの通信は常に同じ物理インターフェースを使用し、同一の通信セッション内でのパケットの順序性を保ちつつ、異なる通信セッション間での負荷分散を図る。このモードは、スイッチ側の特別な設定なしに一定の負荷分散効果を期待できる。
802.3ad (LACP: Link Aggregation Control Protocol) モードは、最も高度なボンディングモードの一つであり、IEEE 802.3adという標準規格に基づいている。このモードでは、サーバー側のボンディングインターフェースと、接続先のネットワークスイッチの両方でLACPを有効にする必要がある。LACPは、複数の物理リンクの状態を互いに監視し、リンクの追加や削除、障害発生時の切り替えを協調して行う。これにより、複数の物理リンクを論理的に一つのバンドルとして扱い、複数の送信元・送信先からのトラフィックを効率的に分散させつつ、冗長性も確保できる。LACPは、特定のアルゴリズム(例:送信元MACアドレス、送信先MACアドレス、送信元IPアドレス、送信先IPアドレス、ポート番号などの組み合わせ)に基づいてパケットを分散するため、より柔軟で効率的な負荷分散が可能となる。このモードは、特に大規模なデータセンターやエンタープライズネットワークで広く採用されている。
ボンディングを導入する際には、いくつかの考慮事項がある。まず、LACPモードを使用する場合、接続先のネットワークスイッチがLACPをサポートしていること、そして適切に設定されていることが不可欠である。スイッチ側の設定が誤っていると、ボンディングが正しく機能しないか、通信自体が確立できない場合がある。また、ロードバランシングの効果は、利用するボンディングモードやネットワーク上のトラフィックパターンによって大きく異なる。例えば、単一の通信セッション(例:一つのTCP接続)では、一般的に複数の物理リンクを同時に利用して帯域を合計することは難しく、多くのモードでは一つの物理リンクの最大帯域に制限されることが多い。複数の異なる通信セッションが同時に発生する場合に、ボンディングのロードバランシング効果が顕著に現れる。さらに、ボンディングの設定は、OSやネットワーク機器のベンダーによって詳細が異なるため、それぞれのドキュメントをよく確認することが重要である。ボンディングはシステム全体の可用性と性能を高める強力なツールであるが、その複雑さゆえに、適切な設計とテストが不可欠となる。