
コンピュータネットワークにおいて、 リンクアグリゲーションとは、複数のネットワーク接続を複数の方法のいずれかを用いて並列に結合する(集約する)ことです。リンクアグリゲーションは、単一の接続が維持できる帯域幅を超えて総帯域幅を増加させ、物理リンクのうち1つを除くすべてが故障しても接続が失われない冗長性を提供します。リンクアグリゲーショングループ(LAG)は、物理ポートの集合体です。
この概念を説明するために使用されるその他の包括的な用語には、トランキング[ 1 ] 、バンドリング[ 2 ] 、ボンディング[ 1 ] 、チャネリング[ 3 ]、またはチーム化などがあります。
実装は、 IEEE 802.1AXまたは以前のIEEE 802.3adで定義されているイーサネット用のリンク アグリゲーション制御プロトコル(LACP)などのベンダー非依存の標準に従う場合もあれば、独自のプロトコルに従う場合もあります。
リンクアグリゲーションは、イーサネット接続の帯域幅と耐障害性を向上させます。
帯域幅の要件は線形的に増加するわけではありません。イーサネットの帯域幅は、歴史的に見て世代ごとに10倍に増加してきました。10 Mbit/s 、100 Mbit/s、1000 Mbit/s、10,000 Mbit /s。帯域幅の上限に達し始めた場合、唯一の選択肢は次世代に移行することでしたが、これはコストがかかりすぎる可能性がありました。1990年代初頭に多くのネットワーク機器メーカーが導入した代替ソリューションは、リンクアグリゲーションを使用して2つの物理的なイーサネットリンクを1つの論理リンクに結合することでした。これらの初期のソリューションのほとんどは、手動構成と接続の両側で同一の機器を必要としました。[ 4 ]
コンピュータとスイッチ間、あるいはスイッチ同士の接続において、一般的なポート・ケーブル・ポート接続には、ケーブル自体、あるいはケーブルが接続されているポートのいずれかが故障するという、3つの単一障害点が内在しています。複数の論理接続を確立することは可能ですが、多くの上位プロトコルは、完全にシームレスなフェイルオーバーを実現するように設計されていません。リンクアグリゲーションを用いて複数の物理接続を1つの論理接続に統合することで、より堅牢な通信を実現できます。
ネットワーク設計者は、OSI モデルの下位 3 つのレイヤーのいずれかで集約を実装できます。レイヤー 1 (物理層)での集約の例としては、複数の周波数帯域を組み合わせる電力線( IEEE 1901など) および無線(IEEE 802.11 など) ネットワーク デバイスがあります。OSI レイヤー 2 (データ リンク層、LAN のEthernet フレームや WAN のマルチリンク PPP、Ethernet MAC アドレスなど) での集約は、通常、スイッチ ポート間で行われます。スイッチ ポートは、物理ポートでも、オペレーティングシステムによって管理される仮想ポートでも構いません。OSI モデルのレイヤー 3 (ネットワーク層) での集約では、ラウンドロビン スケジューリング、パケット ヘッダーのフィールドから計算されるハッシュ値、またはこれら 2 つの方法の組み合わせを使用できます。
集約が行われるレイヤーに関わらず、ネットワーク負荷をすべてのリンクに分散させることは可能です。ただし、配信順序の乱れを防ぐため、すべての実装がこの機能を活用しているわけではありません。ほとんどの方式はフェイルオーバー機能も提供しています。
結合は、複数のインターフェースが1つの論理アドレス(IPアドレス)または1つの物理アドレス(MACアドレス)を共有する方式と、各インターフェースがそれぞれ独自のアドレスを持つ方式のいずれかで行われる。前者の場合、リンクの両端で同じ集約方式を使用する必要があるが、後者よりもパフォーマンス上の利点がある。
チャネルボンディングは、ロードバランシングとは異なり、ネットワークソケット(レイヤ4)ごとにネットワークインターフェース間でトラフィックを分割するのに対し、チャネルボンディングは、パケット(レイヤ3)ごと、またはデータリンク(レイヤ2)ごとに、より低いレベルで物理インターフェース間でトラフィックを分割することを意味します。
1990年代半ばまでに、ほとんどのネットワークスイッチメーカーは、スイッチ間の帯域幅を増やすための独自の拡張機能として集約機能を搭載していました。各メーカーは独自の方式を開発したため、互換性の問題が生じました。IEEE 802.3ワーキンググループは、1997年11月の会議で、相互運用可能なリンク層標準(物理層とデータリンク層の両方を含む)を作成するための研究グループを立ち上げました。 [ 4 ]このグループは、冗長性も追加する自動構成機能を含めることにすぐに合意しました。これがリンク集約制御プロトコル(LACP)として知られるようになりました。
2000年現在ほとんどのギガビットチャネルボンディング方式は、IEEE 802.3ad タスクフォースによって 2000 年 3 月に追加されたIEEE 802.3規格の条項 43 であった IEEE 規格のリンクアグリゲーションを使用していた。 [ 5 ]ほぼすべてのネットワーク機器メーカーは、独自の規格よりもこの共同規格を迅速に採用した。
2006 年 11 月の第 9 次改訂プロジェクトに関する 802.3 保守タスク フォースのレポートでは、特定の 802.1 レイヤ ( 802.1Xセキュリティなど)が、 802.3サブレイヤとして定義されたリンク アグリゲーションより下のプロトコル スタックに配置されていることが指摘されました。[ 6 ]この不一致を解消するために、802.3ax (802.1AX) タスク フォースが結成され、[ 7 ] 2008 年 11 月 3 日に IEEE 802.1AX-2008 が発行され、プロトコルが正式に 802.1 グループに移管されました。[ 8 ] 2025 年 2 月現在、標準の最新改訂版は802.1AX-2020です。[ 9 ] [ 10 ] 802.1AX 標準の歴史の概要については、IEEE 802.1ファミリー標準の表のこの部分を参照してください。
IEEEイーサネット規格において、リンクアグリゲーション制御プロトコル(LACP)は、複数の物理リンクを束ねて単一の論理リンクを形成するための制御方法を提供する。LACPを用いることで、ネットワーク機器は、LACPパケットを、同じくLACPを実装している直接接続された機器(ピア)に送信することにより、リンクの自動的な束ね方をネゴシエートすることができる。
LACPの機能と実例
LACPは、プロトコルが有効になっているすべてのリンクにフレーム(LACPDU)を送信することで機能します。リンクの反対側にLACPが有効になっているデバイスが見つかった場合、そのデバイスは同じリンクに沿って反対方向にフレームを独立して送信し、2つのデバイスが互いの間に複数のリンクを検出して、それらを1つの論理リンクに結合できるようにします。LACPは、アクティブモードとパッシブモードの2つのモードのいずれかで構成できます。アクティブモードでは、LACPDUは設定されたリンクに沿って1秒に1つ送信されます。パッシブモードでは、LACPDUは相手側から受信されるまで送信されず、応答時に送信します。
IEEEリンクアグリゲーションサブスタンダードに加えて、以下のような多数の独自のアグリゲーション方式が存在する。
ほとんどのハイエンドネットワーク機器は、何らかのリンクアグリゲーション機能をサポートしています。ソフトウェアベースの実装としては、*BSDのlaggパッケージ、Linuxのボンディングドライバ、Solarisのdladm aggrなど、多くのオペレーティングシステム向けに存在します。
Linuxボンディングドライバ[ 14 ]は、複数のネットワークインターフェイスコントローラ(NIC) を、2 つ以上のいわゆる(NIC) スレーブの単一の論理ボンディングインターフェイスに集約する方法を提供します。最新のLinux ディストリビューションの大部分には、ロード可能なカーネルモジュールとして Linux ボンディングドライバが統合され、ifenslave (if = [ネットワーク] インターフェイス)ユーザーレベルの制御プログラムがプリインストールされたLinux カーネルが付属しています。オリジナルの Linux ボンディングドライバはDonald Becker によってプログラミングされました。これは、 Linuxカーネル 2.0 用のBeowulf クラスタパッチで使用されました。
Linux ボンディングドライバ[ 14 ]のモード(ネットワークインターフェイス集約モード) は、ロード時にカーネルボンディングモジュールのパラメータとして渡されます。これらのモードは、insmodコマンドまたはmodprobeコマンドのコマンドライン引数として指定できますが、通常は Linux ディストリビューション固有の設定ファイルで指定されます。単一の論理ボンディングインターフェイスの動作は、指定されたボンディングドライバモードに依存します。デフォルトのパラメータは balance-rr です。
Linux Teamドライバ[ 17 ]は、ボンディングドライバの代替手段を提供します。主な違いは、Teamドライバのカーネル部分には必須コードのみが含まれており、残りのコード(リンク検証、LACP実装、意思決定など)はteamdデーモンの一部としてユーザー空間で実行されることです。
リンクアグリゲーションは、単一のポートやデバイスが処理できるデータ量の何倍ものデータを転送できる、大容量のバックボーンネットワークを低コストで構築できる方法です。また、リンクアグリゲーションにより、ネットワークの需要増加に応じてバックボーンの速度を段階的に向上させることが可能になり、既存の機器をすべて交換したり、新しいハードウェアを導入したりする必要がありません。
ほとんどのバックボーン設置では、当初必要とされるよりも多くのケーブルまたは光ファイバーペアが設置されます。これは、ケーブルのコストよりも人件費の方が高いためであり、余分なケーブルを敷設することで、ネットワークのニーズが変化した場合の将来の人件費を削減できます。リンクアグリゲーションを使用すると、ポートが空いていれば、これらの余分なケーブルを利用して、追加コストをほとんど、あるいは全くかけずにバックボーンの速度を向上させることができます。
トラフィックのバランスを取る際、ネットワーク管理者はイーサネットフレームの順序変更を避けたいと考えることが多い。例えば、TCPは順不同のパケットを処理する際に余分なオーバーヘッドが発生する。この目標は、特定のセッションに関連付けられたすべてのフレームを同じリンク経由で送信することで近似的に達成される。一般的な実装では、L2またはL3ハッシュ(MACアドレスまたはIPアドレスに基づく)を使用し、同じフローが常に同じ物理リンク経由で送信されるようにする。[ 18 ] [ 19 ] [ 20 ]
しかし、ハッシュの変動が少なすぎる場合、つまり、ホスト同士が通信するペアが1組またはごく少数しかない場合、トランク内のリンク全体に均等に分散されない可能性があります。結果として、クライアントの帯域幅が全体的に制限されます。[ 19 ]極端な場合、1つのリンクが完全に負荷がかかり、他のリンクは完全にアイドル状態になり、全体の帯域幅はこの単一メンバーの最大帯域幅に制限されます。このため、実際のシステム実装では、均等な負荷分散とすべてのトランクリンクの完全な利用はほとんど実現されません。
複数のNICをトランキング接続することで、個々のNICのスループットを超えるネットワークリンクを実現できます。例えば、中央ファイルサーバーは、1ギガビットNICを2つ組み合わせることで、合計2ギガビットの接続を確立できます。ただし、データ信号伝送速度は1Gbpsのままであり、リンクアグリゲーション適用後のスループット測定方法によっては、誤解を招く可能性があることに注意してください。
Microsoft Windows Server 2012 はリンク アグリゲーションをネイティブにサポートしています。以前の Windows Server バージョンでは、デバイス ドライバソフトウェア内のメーカーによる機能のサポートに依存していました。たとえば、 Intel はIntel Fast Ethernet および Gigabit カードをボンディングするために Advanced Networking Services (ANS) をリリースしました。[ 21 ]
Nvidiaは、 Nvidia Network Access Manager/Firewall Toolでチーミングをサポートしています。HPは、LACPを使用した802.3adを含む複数のリンクアグリゲーションモードをサポートするHPブランドのNIC用のチーミングツールを提供しています。さらに、同じネットワーク上の複数のIPインターフェイスを持つサーバーがロードバランシングを実行したり、複数のインターネット接続を持つホームユーザーがすべてのインターフェイスで負荷を共有することで接続速度を向上させたりできる基本的なレイヤー3アグリゲーション[22]があります。[ 23 ]
Broadcom はBroadcom Advanced Control Suite (BACS) を介して高度な機能を提供しており、BASP (Broadcom Advanced Server Program) のチーミング機能が利用できます。これにより、802.3ad スタティック LAG、LACP、およびスイッチでの設定を必要としないスマート チーミングが提供されます。少なくとも 1 つの NIC が Broadcom 製であり、他の NIC がチーミングをサポートするために必要な機能を備えている限り、異なるベンダーの NIC を混在させて BACS でチーミングを構成することが可能です。[ 24 ]
Linux、FreeBSD、NetBSD、OpenBSD、macOS、OpenSolaris 、およびAIXなどの商用Unixディストリビューションは、イーサネットボンディングをより高いレベルで実装しており、NICがカーネルでサポートされている限り、異なるメーカーのNICや異なるドライバを使用するNICを扱うことができます。[ 14 ]
Citrix XenServerとVMware ESXは、リンクアグリゲーションをネイティブにサポートしています。XenServerは、スタティックLAGとLACPの両方を提供します。vSphere 5.1(ESXi)は、仮想分散スイッチでスタティックLAGとLACPの両方をネイティブにサポートしています。[ 25 ]
MicrosoftのHyper-Vはハイパーバイザーレベルでのリンクアグリゲーションをサポートしていませんが、Windowsにおけるチーミングの上記手法はHyper-Vにも適用できます。
balance-rr、balance-xor、broadcast、および802.3adモードでは、リンクアグリゲーショングループ内のすべての物理ポートが同じ論理スイッチ上に存在する必要があります。これは、ほとんどの一般的なシナリオにおいて、すべてのリンクが接続されている物理スイッチがオフラインになった場合に、単一障害点が発生することを意味します。active -backup、balance-tlb、およびbalance-albモードは、2台以上のスイッチでも設定できます。ただし、フェイルオーバー後(他のすべてのモードと同様)、場合によってはアクティブセッションが(ARPの問題により)失敗し、再起動が必要になることがあります。
しかし、ほぼすべてのベンダーが、これらの問題の一部を解決する独自の拡張機能を備えています。それは、複数の物理スイッチを1つの論理スイッチに集約するものです。Nortelのスプリットマルチリンクトランキング(SMLT)プロトコルは、複数のイーサネットリンクをスタック内の複数のスイッチに分割できるため、単一障害点を防止し、さらに、単一のアクセススタックから複数の集約スイッチ間ですべてのスイッチの負荷分散を可能にします。これらのデバイスは、インタースイッチトランク(IST)を介して状態を同期するため、接続する(アクセス)デバイスからは単一のデバイス(スイッチブロック)のように見え、パケットの重複を防ぎます。SMLTは、エンドデバイスに対して透過的に動作しながら、すべての速度のトランクで1秒未満のフェイルオーバーと1秒未満のリカバリによる強化された耐障害性を提供します。
マルチシャーシリンクアグリゲーショングループは、ベンダーに依存しない方法で同様の機能を提供します。接続されたデバイスからは、接続は通常のリンクアグリゲーションされたトランクとして認識されます。関係する複数のソース間の調整は、ベンダー固有の方法で処理されます。
ほとんどの実装では、集約に使用されるすべてのポートは、すべて銅線ポート(10/100/1000BASE-T)、すべてマルチモード光ファイバーポート、またはすべてシングルモード光ファイバーポートなど、同じ物理タイプで構成されています。ただし、IEEE規格で要求されているのは、各リンクが全二重であり、すべてのリンクの速度が同一(10、100、1,000、または10,000 Mbit/s)であることだけです。
多くのスイッチはPHYに依存しないため、スイッチには銅線、SX、LX、LX10、またはその他のGBIC / SFPモジュラートランシーバーが混在している可能性があります。同じPHYを維持するのが一般的なアプローチですが、1つのリンクに1000BASE-SXファイバーを、2番目のリンクに1000BASE-LX(より長く、多様なパス)を集約することも可能です。一方のパスの伝搬時間が長くなる可能性がありますが、ほとんどの実装では(MACアドレス、IPアドレス、またはIP/トランスポート層ポートの組み合わせのハッシュをインデックスとして使用して)同じ物理リンク上で単一のトラフィックフローを維持するため、問題のある順不同配信は発生しません。
集約タイプの不一致とは、リンクの両端で集約タイプが一致していない状態を指します。一部のスイッチは802.1AX規格を実装していませんが、リンク集約の静的設定をサポートしています。そのため、同様に静的に設定されたスイッチ間ではリンク集約が機能する可能性がありますが、静的に設定されたスイッチとLACP用に設定されたデバイス間ではリンク集約が失敗します。
イーサネットインターフェイスでは、チャネルボンディングにはイーサネットスイッチとホストコンピュータのオペレーティングシステムの両方の支援が必要であり、RAID 0アレイでディスク全体にI/Oがストライピングされるのと同じ方法で、ネットワークインターフェイス全体にフレームの配信をストライピングする必要があります。このため、チャネルボンディングに関する議論では、 RAIN( Redundant Array of Inexpensive Nodes)または独立したネットワークインターフェイスの冗長アレイにも言及されることがあります。[ 26 ]
ダイヤルアップ接続やその他のISP接続(DSLを含む)に使用されるポイントツーポイントプロトコル(PPP)には、マルチリンクPPPと呼ばれる標準的なリンクアグリゲーション方式があります。同じISPへの複数のPPPリンクを結合して、より広い帯域幅のリンクを作成できます。
アナログモデムでは、POTS回線上の複数のダイヤルアップリンクを束ねることができます。このような束ねられた接続のスループットは、単にリンク上の発信ネットワーク接続の負荷分散を行うルーティング方式のスループットよりも、束ねられたリンクの合計帯域幅に近い値になる可能性があります。
同様に、複数のDSL回線を束ねることで、より高い帯域幅を実現できます。英国では、例えば2 Mbit/sの帯域幅しか利用できない地域で、 ADSL回線を束ねることで、アップロード帯域幅を512 kbit/s、ダウンロード帯域幅を4 Mbit/ sにすることが可能です。
ケーブルテレビシステムにおけるデータ伝送に関するDOCSIS 3.0および3.1の仕様では、複数のチャネル(すなわち、同軸ケーブル内の無線周波数帯域)を結合することができます。DOCSIS 3.0では、最大32のダウンストリームチャネルと8つのアップストリームチャネルを結合できます。[ 27 ]これらは通常6MHzまたは8MHz幅です。DOCSIS 3.1では、サブキャリアレベルでの集約やより大きな仮想チャネルを含む、より複雑な構成が定義されています。[ 28 ]
DOCSISはPPPも伝送できる。
ブロードバンドボンディングは、 OSI参照モデルの第4層以上で複数のチャネルを集約するチャネルボンディングの一種です。ボンディングされるチャネルは、 T-1回線やDSL回線などの有線リンクです。さらに、複数のセルラーリンクをボンディングして、集約された無線ボンディングリンクを作成することも可能です。
他のボンディング手法はOSIの下位層に存在するため、実装には通信会社との連携が必要です。ブロードバンドボンディングは上位層で実装されるため、このような連携なしで実行できます。実装には、トラフィックをより高い帯域幅を持つサーバーにカプセル化する何らかのマルチパスプロトコル(マルチパスTCPなど)が含まれます。[ 29 ]
ブロードバンドチャネルボンディングの商用実装例は以下のとおりです。
WANリンクを組み合わせるより一般的な方法としては、接続(セッション)ごとの負荷分散やフェイルオーバーが挙げられます。既存のダウンロードマネージャやその他のプログラムは、スロットリングや過度に悲観的な輻輳制御動作を回避するために既に複数の接続を使用しているため、異なるWANリンク間で接続を分散させるだけで、それらの帯域幅を十分に活用できます。
IEEE 802.11 (Wi-Fi)では、チャネルボンディングはSuper Gテクノロジー( 108 Mbit/sとも呼ばれる)で使用されます。これは、チャネルあたり54 Mbit/sのデータ信号伝送速度を持つ標準IEEE 802.11gの2つのチャネルを結合するものです。
IEEE 802.11nでは、チャネル幅40MHzのモードが規定されています。これはチャネルボンディングではなく、従来の20MHzチャネル幅の 2倍の単一チャネルであり、隣接する2つの20MHz帯域を使用します。これにより、単一の20MHzチャネルからPHYデータレートを直接2倍にすることができます。
IEEE 802.11be(Wi-Fi 7)は、2つの異なる周波数帯を結合するマルチリンク動作(MLO)を可能にします。
ネットワークボンディング(ポートトランキングとも呼ばれる)は、複数のネットワークインターフェイスを単一の論理ボンディングインターフェイスに集約し、単一のIPアドレスに対応するものです。
リンクアグリゲーションをIEEE 802.1に移行する提案 •これは802.3サブレイヤーですが、IEEE Std 802.1xの上位に位置づける必要があります
取得。802.1と802.3の間で、リンクアグリゲーションの今後の開発は802.1規格として行う方が適切であるという結論に至った。
チャネルボンディング(冗長アレイ独立ネットワークインターフェイス(RAIN)とも呼ばれる)は、ホストコンピュータ上の2つ以上のネットワークインターフェイスを組み合わせて冗長性やスループットの向上を図る構成です。