ITの教科書検索
入門・発展ページ読了 約9分

EtherChannel・LACPとは ― リンクアグリゲーション

EtherChannelとは、複数の物理リンクを1本の論理リンクに束ねる技術です。STPに1本を止められずに全部の線を使える理由と、フロー単位の負荷分散、LACPの自動検知を図で説明します。

目次
  1. EtherChannel・LACP・リンクアグリゲーションとは
  2. 束ねる前と後でSTPの見え方がどう変わるか
  3. 複数の物理リンクを1本の論理リンクにする仕組み
  4. 負荷分散はフロー単位のハッシュで決まる
  5. LACPとは:active・passiveと自動検知
  6. 静的EtherChannel・PAgPとLACPの違い
  7. 練習問題

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本とも同時に使えるようになります。

束ねる前:STPが2本のうち1本をブロックするSW1SW2フォワーディング中(使える)×STPがブロック(ループ防止)2本あるのに帯域は1本分だけ束ねた後:2本とも使える1本の論理リンク(EtherChannel)SW1SW2フローA(物理リンク1)フローB(物理リンク2)STPには1本の論理ポートに見え、ブロックされない
SW1とSW2を2本の線でつないだ、同じ配線を比べます。上段は束ねる前で、STPがループを防ぐために1本をブロックし、使えるのは1本分の帯域だけです。下段はEtherChannelで束ねた後で、STPから見て1本の論理リンクになり、ブロックされず2本とも使えます。フローAは物理リンク1、フローBは物理リンク2というように、どの物理リンクを通るかはハッシュ値で決まり、1つのフローは同じ物理リンクに固定されます。

複数の物理リンクを1本の論理リンクにする仕組み

束ねた複数の物理ポートは、スイッチの内部で1つの論理ポートとして扱われます。この論理ポートを、ポートチャネルと呼びます。

スイッチがフレームを中継する仕組みからは、束ねたリンクが1本のリンクに見えます。そのため、MACアドレステーブルも、物理ポートごとではなく、このポートチャネル単位で学習します。ハブ・スイッチ・ルータの違いの記事で説明したMACアドレステーブルの仕組みは変わりません。学習する単位が、物理ポートから論理ポートに変わるだけです。

IEEE 802.1AXの2008年版の概要は、束ねる本数を決まった数ではなく「N本」と書いています。実際の上限は機器が決めます。たとえばCiscoのCatalyst 9300では、同時に通信に使える物理リンクは1つのポートチャネルあたり最大8本です。

LACPを使う場合、Catalyst 9300では、さらに8本を待機用として加えられます。設定できるのは合計16本で、稼働中のリンクが切れると待機用のリンクが代わりに使われます。上限の値は、機種やソフトウェアのバージョンによって異なります。

束ねる物理リンクは、速度と、全二重・半二重の設定をそろえる必要があります。全二重・半二重の区別は、ネットワークトポロジの記事で説明しています。IEEE 802.1AXの2008年版の概要は、同じ速度で動く全二重のリンクを、束ねる対象としています。
VLANの設定もそろえます。アクセスポートなら、すべて同じVLANに所属させます。トランクポートなら、通すVLANの範囲とネイティブVLANをそろえます。条件がそろっていないポートは、ポートチャネルに参加できません。

負荷分散はフロー単位のハッシュで決まる

束ねた物理リンクに通信を割り振ることを、負荷分散と呼びます。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側結果
activeactive成立する
activepassive成立する
passivepassive成立しない(どちらも交渉を始めない)

両側を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のときだけ成立します。

方式片側のモードもう片側のモード結果
LACPactiveactive または passive成立する
LACPpassivepassive成立しない
PAgPdesirabledesirable または auto成立する
PAgPautoauto成立しない
静的onon成立する(交渉はしない)
静的と他の方式onactive・passive・desirable・auto成立しない
PAgPとLACPdesirable・autoactive・passive成立しない(相互に接続できない)

複数のベンダーの機器を組み合わせる場合は、標準規格のLACPを使います。Cisco機器だけで組む場合も、設定の食い違いを検知できる点で、LACPかPAgPが静的な方式より有利です。

WAN向けの古い規格にも、複数のデータリンクを束ねる仕組みがあります。伝送制御の記事で説明したマルチリンク手順(ISO 7478)です。対象とする回線の種類と規格が異なるため、EtherChannel・LACP(IEEE 802.1AX)とは別のものとして扱います。

練習問題(全5問)

Q1EtherChannelでSW1とSW2の間の2本の物理リンクを束ねると、STPから見てどう変わる?
Q2EtherChannelの負荷分散で、1つの通信(1フロー)の速度について正しいものは?
Q3LACPのactive/passiveモードの組み合わせとして、リンクアグリゲーションが成立しないものは?
Q4静的なEtherChannel(手動設定)と、LACPによる動的なEtherChannelの違いとして正しいものは?
Q5PAgPとLACPの関係として正しいものは?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

おすすめの本 PR

ネットワークを初めて学ぶ人向けの入門書です。

目的別の本の選び方を見る

ネットワークの記事を探す