【テクニカル・上級編】 LACPDU(Link Aggregation Control Protocol Data Unit)のフレーム構造 – インフラ・物理&L2/L3ネットワーク基礎実践ガイド

LACPDUの深淵:なぜLACPは単なる「リンクの束ね」ではないのか

ネットワークエンジニアとして現場を渡り歩いていると、LACP(IEEE 802.3ad/802.1AX)を「単に帯域を増やすための設定」と捉えている若手にしばしば遭遇する。だが、それはあまりにも勿体ない。LACPDU(Link Aggregation Control Protocol Data Unit)がパケットレベルでどのように対向装置とネゴシエーションを行い、どのように論理的な結合を維持しているか。その裏側にある「同期」の重みを知れば、トラブルシューティングの景色は一変するはずだ。

1. LACPDUの正体:マルチキャストの海を泳ぐ制御信号

LACPDUは、イーサネットフレームの深淵、データリンク層の静寂の中で呼吸している。このフレームが送信される宛先MACアドレスは、誰にとっても馴染み深い 01:80:c2:00:00:02 だ。

これは「Slow Protocols」と呼ばれるIEEE 802.3の予約済みマルチキャストアドレスであり、スイッチのASIC(またはCPU)は、このフレームを受信すると即座に通常のL2フォワーディングパスから引き抜き、LACP処理エンジン(制御プレーン)へと受け渡す。

  • EtherType: 0x8809(Slow Protocols)
  • Subtype: 0x01(LACP)

フレームの中身を見ると、Actor(送信側)とPartner(受信側)のシステムID、ポート優先度、キー、そして「状態」を示すビットフィールドが並んでいる。特筆すべきは Actor_State の中の Collecting と Distributing ビットだ。これらが揃って初めて、ユーザーのトラフィックがその物理リンクを流れることを許される。このハンドシェイクの遅延こそが、LACPの「安全性」の源泉である。

2. パケットレベルのパフォーマンスとセキュリティ

アーキテクトとして意識すべきは、LACPDUが送信される周期である。デフォルトの Fast モード(1秒ごと)と Slow モード(30秒ごと)の選択は、単なる好みの問題ではない。

大規模なデータセンター環境において、物理リンクの断線を検知するまでの 30秒 は致命的だ。特にTCPのRTTが極めて短い環境や、RDMA(RoCE v2等)を利用している場合、LACPのリンクダウン判定が遅れることは、バッファ溢れやTCP再送の嵐を招く。

現場でのチューニング指針

高速な切り替えを求めるなら、必ず lacp-rate fast を検討すべきだ。ただし、これには注意が必要だ。CPU負荷が増大するだけでなく、極端にスパイクの激しいネットワークでは、LACPDUがキューの深淵でドロップされ、リンクが不意にシャットダウンされる可能性がある。

# Cisco Nexus (NX-OS) でのLACP高速モード設定例
interface port-channel 10
  # リンクダウン検知を高速化し、収束時間を短縮する
  lacp rate fast
  # 注意: 制御プレーンが不安定な環境ではフラッピングの原因になり得る

3. トラブルシューティングの極意:LACPは「疑う」ことから始まる

現場で「なぜか通信が片系に偏る」「時折パケットロスが発生する」といった相談を受けたとき、私はまず LACPDU のカウンターを確認する。

特に注目すべきは、Partner の情報が正しく更新されているか、そして Marker Request が正しく応答されているかだ。もし対向がLACPに対応していない、あるいは設定ミスで Active/Passive の組み合わせが不適切であれば、リンクはいつまで経っても「同期」されない。

Linuxカーネルレベルでこの挙動を追うなら、ethtool や sysfs を駆使する。

# LinuxにおけるLACP状態の確認(sysfs経由)
# どのリンクがActive/Distributingかを確認する
cat /sys/class/net/bond0/bonding/slaves | xargs -I {} cat /sys/class/net/{}/speed
# 内部状態のデバッグ
cat /proc/net/bonding/bond0

4. セキュリティとネットワーク設計への提言

最後に、LACPDUの「認証」について触れておこう。標準の802.3adにはフレームに対する暗号化や認証機能は存在しない。これは、LACPDUが物理的に接続された隣接デバイス間のみでやり取りされるという前提に立っているからだ。

もしあなたのネットワークが、物理アクセスが制限されていない共用スペースや、マルチテナントのコロケーションにあるなら、「不正なLACPDUの注入」による「リンクジャック」のリスクを考慮すべきだ。LACP PDU を悪意を持って注入すれば、特定の物理ポートを強制的にアグリゲーションから切り離したり、あるいは予期せぬリンクを形成させてトラフィックをミラーリングさせたりすることが可能になる。

これに対する防御策は明確だ。
1. BPDU Guard / LACP Guard: ポートに対して、想定外の制御フレームをブロックする設定を適用する。
2. 物理セキュリティの担保: 物理的なパッチパネルへのアクセス制御こそが、L2レベルの最終防衛ラインである。

結び

LACPDUは、単なる制御信号の束ではない。それは、物理的な「電気の通り道」に対し、「我々は同じ論理セグメントとして呼吸を合わせよう」と約束を交わし続ける、ネットワークの鼓動そのものだ。

この鼓動の解像度を高めること。それが、インフラアーキテクトとして、揺るぎない可用性とパフォーマンスを担保するための第一歩となる。次回のメンテナンスウィンドウでは、ぜひ tcpdump -vv -i eth0 ether proto 0x8809 を実行し、その脈動を直接覗いてみてほしい。そこには、教科書には決して書かれていない、ネットワークのリアルな挙動が息づいているはずだ。

コメント

タイトルとURLをコピーしました