こんにちは!ネットワークの世界へようこそ。インフラ・ネットワークスペシャリストの私です。
日々のインフラ運用や設計において、「もっと通信速度を速くしたい!」「万が一ケーブルが切れても通信が途切れないようにしたい!」という欲求に直面したことはありませんか?そんなときに救世主となるのが、今回テーマにするリンクアグリゲーション(IEEE 802.3ad / LACP)です。
教科書を開くと「IEEE 802.3ad」や「LACPデュアルスタックハッシュアルゴリズム」といった難解な用語のオンパレードで、思わずそっと本を閉じたくなるかもしれません。でも、一歩ずつ身近な例えから紐解いていけば、決して怖くありませんよ。さあ、パケットたちが駆け巡るワクワクする世界へ一緒に出発しましょう!
—
1. リンクアグリゲーションってなに?(郵便配達のたとえ)
ネットワークの基本として、スイッチとスイッチの間を1本のLANケーブルでつなぐのが一般的ですよね。でも、大勢の社員が一斉に動画を見たり、巨大なファイルをサーバーにアップロードしたりすると、その1本のケーブルはたちまち満員電車状態になってしまいます。
ここで「じゃあ、ケーブルを3本に増やして、束ねて太い1本の道にすればいいじゃない!」と考えたのが、リンクアグリゲーションの始まりです。
これを身近な「郵便配達」に例えてみましょう。
- 単一のケーブル(従来):
A町からB町へ手紙を送る道路が、細い一本道しかありません。トラック1台が故障したら、郵便配達は完全にストップしてしまいます。
- リンクアグリゲーション(LACP):
A町からB町へ向かう3車線の高速道路を新しく作りました!3台のトラックが同時に走れるので、荷物は3倍のスピードで届けられます。しかも、もし1台のトラックがパンクしても、残りの2車線で配達を続けられます。
ネットワークの世界では、この「複数本の物理的なLANケーブルを、スイッチ同士で話し合って1本の太い論理的な道に見せかける技術」をリンクアグリゲーション、そしてその話し合い(お見合いのようなもの)を自動で行ってくれるプロトコルをLACP(Link Aggregation Control Protocol)と呼びます。
—
2. LACPの裏側:スイッチ同士の「以心伝心」
LACPが素晴らしいのは、人間が手動で「このポートとこのポートを束ねてね」と細かく設定しなくても、スイッチ同士が専用の挨拶メッセージ(LACPDUと呼ばれるパケット)を定期的に交わし、「おっ、そっちも4本のケーブルがあるね!じゃあ心を合わせて1本のチームとして動こうか!」と自動で認識し合える点です。
もし、どちらか1本のケーブルが抜けたり、断線したりしても、LACPは瞬時にそれを察知し、「おい、2番目の車線が通れなくなったから、残りの車線だけに荷物を振り分けるぞ!」とチームの陣形を組み替えます。このおかげで、ネットワークの信頼性が劇的に向上するわけです。
—
3. ロードバランシングの仕組み:ハッシュ計算の秘密
ここで、鋭い初学者の方ならこう疑問に思うはずです。
「3車線の道路ができたとして、すべての車がなぜか同じ1車線に集中しちゃったら、結局渋滞するんじゃないの?」
その通り!ここで登場するのが、今回のもう一つの主役「ロードバランシング(負荷分散)とハッシュ計算」です。
スイッチは、束ねられた複数のケーブル(車線)へ、どのように通信(パケット)を振り分けているのでしょうか? ここで使われるのが「ハッシュアルゴリズム」という魔法の計算式です。
ハッシュ計算を「合コンの席決め」に例えてみる
ハッシュ計算を難しく考える必要はありません。いわば「データの持っている特徴(IPアドレスやMACアドレス)を、謎の計算式に放り込んで、出てきた数字の余りに従って車線を割り振るルール」です。
例えば、次のようなデータを見たとします。
- 送信元MACアドレス
- 宛先MACアドレス
- 送信元IPアドレス (
192.168.1.10) - 宛先IPアドレス (
192.168.2.20) - ポート番号
スイッチは、これらの数字をパッと見て、独自の計算機(ハッシュ関数)にポイッと入れます。すると、計算結果として「よし、この通信は『車線A』に行かせよう!」「次の通信は『車線C』だ!」と綺麗に振り分けられます。
> ⚠️ ここで注意したい現場のリアル(ハッシュの罠)
>
> よくあるトラブルとして、「リンクを4本束げたのに、なぜか1本のケーブルばかりにトラフィックが偏って、他のケーブルが暇そうにしている」という現象があります。
> これは、通信の「組み合わせ」が少なすぎる場合に起きます。例えば、社内からたった1台の超高速サーバー(IPアドレスが1つだけ)が大量の通信をしている場合、ハッシュ計算の元ネタ(IPアドレス等)が常に同じなので、計算結果も常に同じになり、特定の1車線しか使われないという事態が起きるのです。
>
> そのため、現場のインフラエンジニアは、ハッシュの計算に「IPアドレスだけでなく、ポート番号も含める(Src/Dst IP + Port)」といった設定変更を行い、なるべく偏りが出ないように工夫しています。
—
4. 現場で役立つ!CiscoスイッチでのLACP設定サンプル
それでは、実際にシスコシステムズ(Cisco)のCatalystやNexusなどのスイッチで、LACPを設定する際の実務的なコマンドを見てみましょう。
今回は、スイッチのポート GigabitEthernet 0/1 と GigabitEthernet 0/2 の2本を束ねて、1つの論理ポート(Channel-group 1)を作る設定例です。
! -----------------------------------------------------------------
! 1. まず、束ねたい物理インターフェース(車線)の設定を行います
! -----------------------------------------------------------------
interface Range GigabitEthernet 0/1 - 2
description *** LACP Uplink to Core Switch ***
! レイヤー2のアクセス、またはトランクポートとして動作させます
switchport mode trunk
switchport trunk native vlan 10
! LACPを有効にし、能動的にリンクアグリゲーションを組ませます(activeモード)
channel-group 1 mode active
! 物理ポートを有効化
no shutdown
! -----------------------------------------------------------------
! 2. 自動で作られた論理インターフェース(ポートチャネル)の設定を行います
! -----------------------------------------------------------------
interface Port-channel 1
description *** Logical Aggregated Bundle Interface ***
switchport mode trunk
switchport trunk native vlan 10
設定のポイント
channel-group 1 mode activeというコマンドが、LACPの主役です。activeに設定することで、対向のスイッチに対しても「ねえ、LACPで束ねようよ!」と積極的に働きかけます(対向側はactiveまたはpassiveである必要があります)。- 物理ポートに設定を入れたあとに、自動で生成される
interface Port-channel 1に対してVLANなどの共通設定を流し込むのがお作法です。
—
まとめ:ネットワークの「チームプレー」を楽しもう
今回は、リンクアグリゲーションの基本概念からLACPの自動化、そしてロードバランシングのハッシュ計算の裏側まで、一歩ずつ紐解いていきましたがいかがでしたでしょうか?
- リンクアグリゲーションは、複数のケーブルを束ねて「太い1本の道」を作る技術。
- LACPは、スイッチ同士が自動で手を取り合ってチームを組むための共通言語。
- ロードバランシング(ハッシュ計算)は、通信の特徴を読み取って、それぞれの車線に賢く交通整理する仕組み。
インフラの世界は、こうした身近な仕組みの延長線上に成り立っています。「なぜこの通信はこのポートを通っているんだろう?」とパケットの気持ちになって考えてみると、ネットワークのトラブルシューティングがぐっと楽しく、そして得意になりますよ。
それでは、また次回の深淵なネットワークの世界でお会いしましょう!
コメント