EtherChannel・LACPとは ― リンクアグリゲーション
EtherChannelとは、
EtherChannelは、複数の物理リンクを1本の論理リンクに束ねる技術
EtherChannelとは、スイッチ間などの複数の物理リンクを束ねて、1本の論理リンクとして扱う技術です。スイッチ間を2本でつなぐだけでは、スパニングツリーが1本を止めてしまいます。束ねれば2本とも通信に使えます。
この技術の一般名をリンクアグリゲーションと呼び、EtherChannelはCiscoでの呼び方です。束ねたリンクを自動で管理する規格がLACPです。後半では、通信を各リンクへ振り分ける仕組みと、LACPの設定の違いを説明します。
束ねる前と後でSTPの見え方がどう変わるか
スパニングツリー(STP)の記事で説明したとおり、2台のスイッチを2本の線でつなぐと配線上はループになります。STPは、このループを防ぐために、2本のうち1本のポートをブロックします。
ブロックされた線は、障害時の予備として残りますが、ふだんの通信には使えません。2本の線を敷いても、使える帯域は1本分のままです。
EtherChannelで2本の物理リンクを束ねると、STPは2本を1つのポートとして扱います。ループのチェック自体は続きますが、ブロックの対象が物理リンクではなく論理リンクになります。その結果、2本とも同時に使えるようになります。
複数の物理リンクを1本の論理リンクにする仕組み
束ねた複数の物理ポートは、スイッチの内部で1つの論理ポートとして扱われます。この論理ポートを、ポートチャネルと呼びます。
スイッチがフレームを中継する仕組みからは、束ねたリンクが1本のリンクに見えます。そのため、MACアドレステーブルも、物理ポートごとではなく、このポートチャネル単位で学習します。ハブ・スイッチ・ルータの違いの記事で説明したMACアドレステーブルの仕組みは変わりません。学習する単位が、物理ポートから論理ポートに変わるだけです。
IEEE 802.1AXの2008年版の概要は、束ねる本数を決まった数ではなく「N本」と書いています。実際の上限は機器が決めます。たとえばCiscoのCatalyst 9300では、同時に通信に使える物理リンクは1つのポートチャネルあたり最大8本です。
LACPを使う場合、Catalyst 9300では、さらに8本を待機用として加えられます。設定できるのは合計16本で、稼働中のリンクが切れると待機用のリンクが代わりに使われます。上限の値は、機種やソフトウェアのバージョンによって異なります。
負荷分散はフロー単位のハッシュで決まる
束ねた物理リンクに通信を割り振ることを、負荷分散と呼びます。EtherChannelでは、送信元・宛先のMACアドレスやIPアドレスなどからハッシュ値を計算し、その値でどの物理リンクを使うかを決めます。ハッシュ値は、入力から計算で求める値で、同じ入力からは同じ値が出ます。
この割り振りは、フレーム1つずつではなく、フロー単位で決まります。ここでのフローは、ハッシュの計算に使う値が同じになる一連の通信です。たとえば送信元と宛先のIPアドレスで計算する設定なら、同じ送信元と宛先の組の通信が1つのフローになります。同じフローのフレームは、常に同じ物理リンクに固定されます。
フレームの順番が入れ替わると、相手側で正しく処理できないことがあります。フローを1本の物理リンクに固定すると、そのフロー内のフレームの順番が保たれます。1フレームごとに別の物理リンクへ振り分けないのは、この順番を守るためです。
固定の結果、1つのフローの速度は、その1本の物理リンクの速度が上限になります。束ねた物理リンクの速度の合計まで出せるのは、フローの数が十分に多く、各フローが別々の物理リンクに分散したときだけです。フローが1つしか無い通信では、束ねても速度は上がりません。
物理リンクのどれかが切れると、そのリンクを使っていたフローは残りのリンクへ自動的に振り替えられます。束ねたリンクは、帯域を増やすだけでなく、障害への備えにもなります。
LACPとは:active・passiveと自動検知
LACP(Link Aggregation Control Protocol)は、リンクアグリゲーションを動的に制御するプロトコルです。最初はIEEE 802.3adとして標準化され、現在はIEEE 802.1AXに規格の管理が移っています。
LACPを設定したポートは、LACPDUという制御フレームを相手と交換します。このやり取りによって、両端が同じ設定で束ねようとしているかを確認します。設定が食い違っているポートや、通信が切れたポートは、自動的にポートチャネルから外れます。
LACPには、active・passiveの2つのモードがあります。activeモードのポートは、自分からLACPDUを送って交渉を始めます。passiveモードのポートは、受け取ったLACPDUに応えるだけで、自分からは交渉を始めません。
| SW1側 | SW2側 | 結果 |
|---|---|---|
| active | active | 成立する |
| active | passive | 成立する |
| passive | passive | 成立しない(どちらも交渉を始めない) |
両側をpassiveにすると、どちらも交渉を始めないので、リンクアグリゲーションは成立しません。そのため、少なくとも一方をactiveにします。
静的EtherChannel・PAgPとLACPの違い
リンクアグリゲーションには、制御フレームを使わない静的な方式もあります。静的な方式は、両端の機器にあらかじめ同じ設定を手動で入れるだけで束ねます。Ciscoの機器では、このモードをonと呼びます。物理的にリンクが切れれば束から外れますが、相手の設定を確かめる仕組みはありません。
そのため、両端の設定が食い違っていても気づけません。Ciscoの設定ガイドは、設定を誤るとパケットの損失やSTPのループが起きるおそれがあると注意しています。
LACP以外にも、制御フレームで動的に束ねるプロトコルがあります。その1つがPAgPで、Ciscoが独自に作ったプロトコルです。PAgPとLACPは仕様が異なるため、相互に接続できません。PAgPにも、自分から交渉を始めるdesirableと、応えるだけのautoの2つのモードがあります。
| 方式 | 相手との | 対応機器 | 障害・設定の |
|---|---|---|---|
| 静的(onモード) | しない | どのベンダーでも可(両端の設定を人が合わせる) | 物理的なリンク断のみ。設定の食い違いは検知できない |
| PAgP | 制御フレーム(PAgPパケット)で確認 | Cisco独自。Cisco機器同士が前提 | できる |
| LACP | 制御フレーム(LACPDU)で確認 | IEEE 802.1AX準拠ならベンダーを問わない | できる |
Ciscoの機器で、両端のモードの組み合わせによって束が成立するかをまとめると、次の表になります。どの方式でも、両側が応えるだけのモードでは成立しません。onは交渉をしないので、相手もonのときだけ成立します。
| 方式 | 片側の | もう | 結果 |
|---|---|---|---|
| LACP | active | active または passive | 成立する |
| LACP | passive | passive | 成立しない |
| PAgP | desirable | desirable または auto | 成立する |
| PAgP | auto | auto | 成立しない |
| 静的 | on | on | 成立する(交渉はしない) |
| 静的と他の方式 | on | active・passive・desirable・auto | 成立しない |
| PAgPとLACP | desirable・auto | active・passive | 成立しない(相互に接続できない) |
複数のベンダーの機器を組み合わせる場合は、標準規格のLACPを使います。Cisco機器だけで組む場合も、設定の食い違いを検知できる点で、LACPかPAgPが静的な方式より有利です。
練習問題(全5問)
正解:2本の
束ねる
正解:
EtherChannelの
正解:両側を
activeモードの
正解:静的は
静的な
正解:PAgPは
PAgPは
選んでから「採点する」を押すと、解説つきで答え合わせができます。
関連記事
おすすめの本 PR
ネットワークを初めて学ぶ人向けの入門書です。
![『[改訂新版]3分間ネットワーク基礎講座』の表紙](https://m.media-amazon.com/images/P/4774143731.09.MZZZZZZZ.jpg)
