【テクニカル・上級編】 IEEE 802.3ad / IEEE 802.1AX リンクアグリゲーション(LACP)の概要とフレーム構造 – インフラ・物理&L2/L3ネットワーク基礎実践ガイド

帯域の魔術師:LACPの深淵と、パケットが語る「論理リンク」の真実

ネットワークエンジニアの端くれとして、これまで数々の「リンクダウン」の悲鳴を聞いてきた。パケットロス、再送の嵐、そして原因不明の帯域枯渇。そんなカオスな現場で、我々が最後に頼るのが IEEE 802.3ad 、そして現代の標準である IEEE 802.1AX 、いわゆるリンクアグリゲーション(LACP)だ。

単に「リンクを束ねて速くする」という教科書的な理解で止まっているなら、それは宝の持ち腐れだ。今日は、パケットレベルの挙動、そしてプロトコルが隠し持つ「死線」について深く掘り下げていこう。

—

LACPのパケット:SLOW_PROTOCOLSという舞台

LACPは、01:80:c2:00:00:02 という、IEEEが定めた SLOW_PROTOCOLS マルチキャストアドレスの上で踊っている。このアドレスの肝は、ブリッジ(L2スイッチ)がこのフレームを転送せず、必ず自装置で終端させるというルールにある。

LACPDU(LACP Data Unit)の中身を覗くと、Actor(自分)と Partner(相手)のシステム優先度、MACアドレス、そして Key という概念が見えてくる。現場でトラブルが起きる原因の多くは、この Key の不一致や、LACPのタイマー設定ミスによる「フラッピングの連鎖」だ。

パケットキャプチャで見る「生存確認」

tcpdump を叩いて流れてくるLACPDUを眺めると、Fast Periodic モード(1秒間隔)と Slow Periodic モード(30秒間隔)があることが分かる。
高負荷なWebサーバーのバックボーンなら、迷わず Fast を選択すべきだ。ネットワークの故障検知時間を物理リンクの切断を待たずに、プロトコルレベルで最短で特定する。これが、TCPセッションを切断させないための、インフラ屋の矜持だ。

—

物理リンクの束ねから、トランスポートの最適化へ

リンクアグリゲーションは、単に帯域を広げるだけではない。実は、TCP/IPのパフォーマンス最適化と密接に関わっている。

フローのハッシュ化とTCPバッファの関係

LACPでは、パケットの送信元・宛先のIPやポートをハッシュ計算し、どの物理リンクを使うか決定する。ここで注意すべきは「順序逆転(Out-of-order)」だ。NICのバッファやスイッチのASIC内部での処理順序が入れ替わると、TCPは「パケットロス」と誤認し、Congestion Window を一気に縮小させる。

これを防ぐためのチューニングとして、以下の設定を検討してほしい。

# Linuxにおけるbondingのハッシュアルゴリズム設定
# xmit_hash_policyをlayer3+4にすることで、ポート番号を含めたハッシュを生成
# これにより、単一のTCPフローが特定の物理リンクに固定され、順序逆転を防ぐ
echo "layer3+4" > /sys/class/net/bond0/bonding/xmit_hash_policy

# TCP受信バッファの最適化:高帯域・長距離通信でのRTTを考慮
# 10Gbps以上のリンクを束ねるなら、以下の値をチューニングする
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"

—

現場のセキュリティ:LACPを狙う「なりすまし」への備え

意外と見落とされがちなのが、LACPのネゴシエーションを悪用した中間者攻撃だ。悪意のあるデバイスがLACPDUを偽装して送り込み、アグリゲーションの一部として自らを取り込むことで、トラフィックの盗聴を試みる。

これを防ぐための防御策として、スイッチ側での LACP Port-Security 的な挙動、あるいは Static LAG の検討が必要だ。

脆弱性を回避するためのベストプラクティス

1. LACPのActive/Passiveの分離: サーバー側を Active にするのは当然だが、スイッチポート側で LACP Timeout を Short に設定し、異常なパケットの挙動を即座に検出する。
2. ポート保護: 未使用ポートをすべて shutdown するのは基本中の基本だが、物理ポートに対して STP PortFast や BPDU Guard と同様に、LACPのネゴシエーションに参加できる機器を限定する設定を投入せよ。

—

結論:パケットに語らせる技術者であれ

リンクアグリゲーションは、単なる「配線」ではない。それは、物理層とネットワーク層の間に築かれた、信頼の契約だ。

  • RTT削減: 物理リンクが安定していれば、再送タイマーのチューニングも攻めた値に設定できる。
  • TLSハンドシェイク: 高速なリンク冗長は、TLSハンドシェイクにおけるRTTの積み重ねを安定させ、ユーザー体験を劇的に改善する。

インフラアーキテクトとして、コマンドを叩く際、「今、このパケットはどのハッシュアルゴリズムを通り、どの物理リンクの電圧に乗っているのか」を常に想像してほしい。その想像力こそが、大規模障害を防ぐ最後の砦になるのだから。

次の記事では、より深淵な IEEE 802.1Q のタグ付けと、それによる MTU サイズのオーバーヘッド問題について語ろうと思う。ネットワークは、常に微細な値の中にこそ、真実が隠されている。

コメント

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