こんにちは!ネットワークの深淵へようこそ。技術メディアの主筆ライター、そしてネットワークの裏側を愛してやまないインフラアーキテクトのJです。
日々の生活を支えるインターネット。その裏側では、膨大な数の「スイッチ」と呼ばれるネットワーク機器が、休むことなくパケット(データの荷物)を運んでいます。
もし、このスイッチが突然壊れてしまったらどうなるでしょうか?当然、オフィス全体の通信が止まってしまいますよね。そんな事態を防ぐために、ネットワークの世界では機器を「2台置いて冗長化(予備を用意すること)」するのが鉄則です。
しかし、普通に2台のスイッチを並べて繋ぐだけでは、データの通り道がぐるぐるとループしてしまい、ネットワークが破綻する原因になってしまいます。これを解決するために、これまでは「スパニングツリー(STP)」というちょっと複雑な仕組みを使って、片方の道をわざと通行止めにしていました。
「でも、せっかく2台あるのに、片方を眠らせておくなんて勿体ないと思いませんか?」
そこで登場したのが、今回ご紹介する「スタック技術(Cisco StackWiseやVSSなど)」です!
今回は、この魔法のような技術の仕組みを、難しい数式や英語の仕様書を使わずに、身近な例え話を交えながら一歩ずつ丁寧に紐解いていきましょう。
—
1. スタック技術ってなに?「2人で1つの合体超人」
スタック技術を一言で言うと、「物理的には2台(複数台)あるスイッチを、頭脳も体も完全に合体させて、外からは『1台のでっかいスイッチ』に見せる技術」です。
Cisco社のスイッチでは、主に中小型スイッチで使われる StackWise(スタックワイズ) や、大型のコアスイッチで使われていた VSS(Virtual Switching System:バーチャルシャーシスイッチ) といった技術がこれに該当します。
これを私たちの日常生活で例えてみましょう。
ある大人気テーマパークのインフォメーションカウンターに、2人のスタッフ(AさんとBさん)が並んで立っているとします。
- 普通の冗長化(STPなど): 普段はAさんだけが接客し、Bさんは後ろで居眠りしています(あるいは書類整理だけをしています)。Aさんが倒れたら、Bさんがハッと起きて接客を引き継ぎますが、引き継ぎに数十秒かかり、その間はお客さんの列が止まってしまいます。
- スタック技術: AさんとBさんの脳みそが「テレパシー」で完全に同期しています。お客さんがAさんに「アトラクションの場所」を聞いている最中に、Aさんが突然倒れても、隣のBさんが「ーーそれは右に曲がったところですよ」と、1文字の途切れもなく会話を引き継ぐことができます。
このように、外から見ると「完全に1つの窓口」として機能しつつ、中身は2人で支え合っている状態。これがスタック技術の正体です。
—
2. 内部はどうなっている?「司令塔」と「実行部隊」
ネットワーク機器の中には、大きく分けて2つの役割があります。
1. コントロールプレーン(頭脳・司令塔): 「どのルートでデータを運ぶか」「誰と誰が繋がっているか」を考え、地図を描く部分。
2. データプレーン(手足・実行部隊): 頭脳が作った地図に従って、入ってきたパケットをものすごいスピードで右から左へ受け渡す部分。
スタック技術を使って2台のスイッチを専用のケーブルで繋ぐと、この2つの役割が以下のように変化します。
頭脳(コントロールプレーン)は「1つ」に統合される
2台のうち、どちらか1台が「アクティブ(主たる頭脳)」になり、もう1台が「スタンバイ(控えの頭脳)」になります。
アクティブスイッチが全ての状況をリアルタイムで判断し、その情報を一瞬でスタンバイにコピー(同期)します。これにより、2台のスイッチがまるで1つの頭脳を共有しているかのように動くのです。
手足(データプレーン)は「2台分」フル稼働!
頭脳は1つになりますが、データを運ぶ手足は2台分が同時に動きます。
つまり、1台だけのときと比べて、データを処理できる道の広さ(帯域)が単純に2倍になります。眠っているだけの無駄なスイッチはどこにも存在しない、とてもエコでパワフルな仕組みなのです。
—
3. なぜスタックにすると嬉しいのか? 3つの大きなメリット
スイッチをスタック化すると、インフラエンジニアにとって夢のようなメリットが手に入ります。
メリット①:設定・管理が半分になって超ラクラク!
通常、2台のスイッチがあれば、それぞれにIPアドレスを設定し、それぞれにログインして設定変更を行う必要があります。
しかしスタック化されたスイッチは、ログインする先が1つだけになります。show ip interface brief とコマンドを打てば、1台目のポート(GigabitEthernet1/0/1)と2台目のポート(GigabitEthernet2/0/1)が、あたかも同じスイッチのポートであるかのようにずらりと並んで表示されます。
メリット②:切り替え時間が「ほぼゼロ」
メインのスイッチ(アクティブ)に万が一のことがあっても、隣のスタンバイが「俺が引き継ぐ!」と一瞬(ミリ秒単位)で頭脳の役割を交代します。
接続しているパソコンやサーバーから見れば、通信が途切れたことすら気づかないほどの超高速フェイルオーバーが実現します。
メリット③:2本の線を1本に束ねる「MEC(マルチシャーシ・イーサチャネル)」
通常、1台のサーバーから2台の異なるスイッチにLANケーブルを繋ぐと、ループが発生してしまいます。
しかし、スイッチ側がスタックによって「1台」になっているため、サーバーからは「1台のスイッチに対して2本のケーブルを繋いでいる」ように見えます。
これらを1本に束ねる技術(リンクアグリゲーション)を使うことで、片方の線が切れても通信が維持され、普段は2倍の太さの道路として通信を行うことができるのです。この仕組みを MEC (Multi-Chassis EtherChannel) と呼びます。
—
4. 実際にコマンドを見てみよう!Ciscoスイッチでの設定と確認
では、実務でよく使われるCisco Catalystスイッチを例に、スタックの状況を確認するコマンドや、MEC(EtherChannel)の設定例を見ていきましょう。
まずは、今動いているスイッチたちがどのようなスタック状態になっているかを確認する魔法のコマンドです。
スタック状態の確認コマンド
Switch# show switch
H/W Current
Role Mac Address Priority Version State
----------------------------------------------------------
*1 Active 0019.076c.1a00 15 V02 Ready
2 Standby 0019.076c.1b80 1 V02 Ready
*1(Active): 左端のアスタリスク*がついている「1番」のスイッチが、現在スタック全体の「頭脳(Active)」として動いていることを示しています。Priority(優先度): ここでは「15」と設定されています。この値が大きいスイッチほど、起動時に優先して「頭脳(Active)」に選ばれます。State(状態): 両方ともReadyになっていますね。無事に2台が合体し、いつでも稼働できる状態です。
実務で使える!優先度(Priority)の変更設定
もし「1番のスイッチを絶対にメインの頭脳にしたい!」という場合は、以下のコマンドで優先度を最大値(15)に変更しておきます。
# 特権モードから設定モードに入ります
Switch# configure terminal
# 1番のスイッチの優先度(Priority)を最大値の15に変更します
Switch(config)# switch 1 priority 15
# 設定を保存します
Switch(config)# end
Switch# write memory
*※この設定をしておくことで、再起動が走った際にも意図した通りの役割分担(1番がActive、2番がStandby)になります。*
2台のスイッチにまたがる「MEC」の設定例
次に、1番のスイッチのポートと、2番のスイッチのポートを束ねて、1つの太い「論理的なポート(Port-Channel)」を作る設定です。これにより、片方のスイッチが丸ごと物理的に壊れても、もう片方のスイッチで通信が継続します。
Switch# configure terminal
# 1台目のスイッチの 1番ポート(GigabitEthernet 1/0/1)の設定
Switch(config)# interface GigabitEthernet 1/0/1
Switch(config-if)# description Link_to_Core_Server_Link1
Switch(config-if)# channel-group 10 mode active
Switch(config-if)# exit
# 2台目のスイッチの 1番ポート(GigabitEthernet 2/0/1)の設定
Switch(config)# interface GigabitEthernet 2/0/1
Switch(config-if)# description Link_to_Core_Server_Link2
Switch(config-if)# channel-group 10 mode active
Switch(config-if)# exit
# 束ねられた仮想インターフェース(Port-Channel 10)の設定
Switch(config)# interface port-channel 10
Switch(config-if)# description Combined_Trunk_Link
Switch(config-if)# switchport mode trunk
Switch(config-if)# end
Switch# write memory
このように、別々の物理筐体にある 1/0/1 と 2/0/1 を、同じ channel-group 10 というグループに所属させることができるのが、スタック技術の最大の強みなのです!
—
5. 現場の知見:ちょっと怖い「スプリットブレイン(脳分裂)」に気をつけよう
ここまで素晴らしいことばかりのスタック技術ですが、実は1つだけ、現場のインフラエンジニアが最も恐れるトラブルがあります。それが「スプリットブレイン(脳分裂)」です。
2台を繋いでいるスタック専用ケーブルが、経年劣化や物理的な衝撃で同時に断線してしまったと想像してみてください。
お互いのテレパシー(通信)が途絶えた瞬間、2台のスイッチはこう考えます。
- 1番のスイッチ:「あれ?2番からの応答がないぞ。まあ俺がActiveだからこのままいこう」
- 2番のスイッチ:「あれ?Activeの1番が消えたぞ!よし、俺が代わりに新しいActive(頭脳)にならなきゃ!」
なんと、同じIPアドレスやMACアドレスを持った頭脳が、ネットワーク上に2つ同時に誕生してしまうのです!
人間で言えば、1つの体に2つの異なる意思が存在し、それぞれが勝手に手足を動かそうとするパニック状態。当然、ネットワークは大混乱に陥り、通信は完全にブラックアウトしてしまいます。
どうやって防ぐの?
この脳分裂を防ぐために、現代のスタック技術には「Stack-Active Detection」や「Keepalive(生きてる?確認)」用の別ルートを設ける仕組みが備わっています。
スタック専用の太いケーブルとは別に、一般的なLANケーブルを使って「おーい、生きてる?」と生存確認し合う裏ルート(IP Keepaliveなど)を作っておくのです。もしスタックケーブルが切れても、裏ルートで「あ、お前まだ生きてるな?じゃあ俺は大人しくスタンバイ(あるいは機能を一時停止)しておくよ」と判断でき、最悪の共倒れ(脳分裂)を防ぐことができます。
—
まとめ:ネットワークの未来を支える合体魔法
いかがでしたでしょうか?
一見すると難しそうな「スタック技術(Cisco StackWise / VSS)」も、その本質は「2人で支え合い、1つの大きな完璧な仕事を成し遂げる」という、とても人間味あふれる美しいアーキテクチャです。
- 物理的には複数でも、論理的には1台。
- 管理がシンプルになり、ネットワークの無駄なルートも消える。
- 万が一の故障でも、一瞬で脳みそが切り替わるから止まらない。
これらの仕組みを理解しておくと、実務で設計図(ネットワーク構成図)を見たときに、「ああ、この2台はスタックになっているから、ここにはループが発生しないんだな!」と、パズルが解けるようにスッキリと理解できるようになりますよ。
インフラの世界は、こうした「目立たないけれど、絶対にサービスを止めないための知恵」で満ち溢れています。
少しずつ、そのパズルを一緒に解き明かしていきましょう。一歩ずつ進めば、あなたも立派なインフラエンジニアです!
また次回のディープなプロトコルの世界でお会いしましょう。お疲れ様でした!
コメント