LACPDUの深淵:リンクアグリゲーションを支える「対話」の正体
ネットワークエンジニアとして現場に立っていると、LACP(IEEE 802.3ad/802.1AX)を「単に帯域を束ねるだけの便利な機能」と誤解している場面によく出くわす。しかし、真のインフラアーキテクトにとって、LACPは単なるロードバランシングの道具ではない。それは、物理層の不整合を検知し、論理的なトポロジーを自己修復する、極めて「知的な」制御プロトコルだ。
今日は、その心臓部である LACPDU の構造を解剖し、なぜこれがL2/L3の境界で不可欠なのかを深掘りしていこう。
—
1. LACPDUのフレーム構造:パケットレベルの解剖学
LACPDUは、イーサネットフレームの EtherType として 0x8809(Slow Protocols)を使用し、宛先MACアドレスはマルチキャストの 01:80:C2:00:00:02 に流し込まれる。このフレームは、トランクポートを通る通常のデータパケットとは異なり、スイッチのコントロールプレーン(CPU)で直接処理される「最も優先されるべき対話」である。
主要フィールドが語る「交渉」の真実
LACPDUを tcpdump でキャプチャしたことがあるだろうか。構造体の中には、以下の重要なフィールドが並ぶ。
- Actor Information: 送信側自身のステータス。
- Partner Information: 対向側から受け取った情報を保持するフィールド。ここで「互いに合意が取れているか(In-Sync)」を判断する。
- Key: リンクを集約するための論理的なグループID。これが一致しないと、物理的に繋がっていてもLACPは成立しない。
- Port Priority: どのポートをプライマリにするか(あるいはスタンバイにするか)の優先順位。
ここで重要なのは、Actor/Partner それぞれが持つ State フィールドだ。Activity(Active/Passive)、Timeout(Short/Long)、Aggregation、Sync、Collecting、Distributing といったビットフラグが、ステートマシンを駆動させる。特に Timeout は重要だ。デフォルトの Long(30秒)ではなく、ミッションクリティカルな環境では Short(1秒)に設定することで、物理リンクの断線を検知するまでの時間を劇的に短縮できる。
—
2. ステートマシンの裏側と現場のトラブル
LACPの挙動を理解する上で避けて通れないのが、Mux(Multiplexer)マシンと Receive マシンの連携だ。
現場で最も多いトラブルは「片方がActive、片方がPassive」といった設定ミスではなく、Keyの不一致によるパケットのブラックホール化だ。特に、マルチシャーシ構成(vPCやVSS/StackWise)で、対向スイッチの設定が微妙にズレている場合、LACPDUは疎通していても Sync ビットが立たず、トラフィックが転送されないという事態が発生する。
実践的なLinuxカーネルでのチューニング
Linux環境で bonding モード 802.3ad を使用する場合、/proc/net/bonding/bond0 を確認するのは基本中の基本だ。
# LACPの状態をリアルタイムで監視する
watch -n 1 'cat /proc/net/bonding/bond0 | grep -A 20 "LACP partner"'
# LACPレートをfast(1秒間隔)に変更し、障害検知を高速化する
# ※エッジスイッチ等との接続で負荷が懸念される場合は注意が必要
ip link set bond0 type bond lacp_rate fast
—
3. パフォーマンスとセキュリティの視点:LACPの先へ
LACPDUそのものは軽量だが、これを支えるCPU負荷や、大規模ネットワークでの「フラッピング」は無視できない。
TCPバッファとRTTへの影響
LACPを導入すると、パケットは論理的に分散される。ここで注意すべきは、NICの RSS(Receive Side Scaling)や Flow Control との兼ね合いだ。LACPのハッシュアルゴリズム(L3/L4ヘッダーのタプル計算)が偏ると、特定の物理リンクに負荷が集中し、結果としてTCPの受信ウィンドウが溢れ、RTTが急増する。
ネットワークスペシャリストとしては、「LACPは帯域を増やすが、レイテンシの揺らぎを保証するものではない」という事実を忘れてはならない。
セキュリティ上の懸念:MACスプーフィングとLACP
攻撃者が意図的にLACPDUを生成し、スイッチの論理リンクに割り込むという攻撃手法も理論上存在する。
- 対策:
PortFastを有効にするのは論外だが、それ以上にBPDU GuardやRoot Guardと同様に、信頼できないポートでのLACPDU受信を制限する(あるいはLACPを無効化する)ポートセキュリティの徹底が、L2防衛の要となる。
—
4. 総括:プロトコルの美学
LACPは、イーサネットの「適当に繋げば動く」という牧歌的な時代と、「厳密に制御されたハイパフォーマンスなデータセンター」を繋ぐための架け橋だ。そのフィールドの一つひとつ、ビットの立ち方一つひとつに、先人たちが築き上げた「いかにして物理的信頼性を論理的に担保するか」という知恵が詰まっている。
もしあなたが今日、スイッチのコンソールに向かうなら、show lacp neighbor の結果を単なるステータスとして眺めるのではなく、裏側で繰り広げられている「パケットの対話」を想像してほしい。その視点こそが、トラブルを未然に防ぎ、圧倒的な可用性を設計するインフラアーキテクトの矜持であるはずだ。
—
*追記:もし実務でLACPの挙動を詳細に追う必要があるなら、Wireshark で lacp フィルタをかけ、LACPDU の全フィールドがパケットごとにどう変化するか、特に Partner Information がいつ埋まるかを注視することをお勧めする。それだけで、ネットワークの挙動が劇的に鮮明に見えてくるはずだ。*
コメント