こんにちは!ネットワークの世界へようこそ。インフラアーキテクトの私です。
日頃、私たちが何気なく使っているインターネットや会社の社内ネットワーク。パソコンから放たれたデータは、まるで意志を持っているかのように一瞬で宛先へ届きますよね。でも、その裏側では、ネットワーク機器たちが「もしケーブルが切れたらどうしよう」「こっちの道がダメならあっちの道を使おう」と、常に緻密な会議を繰り広げているんです。
その会議のルールを定めているのが、今回取り上げる STP(スパニングツリープロトコル) です。そして、その会議のテンポや待ち時間を決めているのが「タイマー設定」なんですよ。
「タイマー? なんか難しそう……」と思ったそこのあなた!大丈夫です。今回は、身近な例えを交えながら、一歩ずつ優しく紐解いていきましょう!
—
ネットワークの「安全すぎる保険」と、ちょっと困ったスローペース
まずは、STPがどんな仕組みなのかを簡単に振り返りましょう。
ネットワークの世界では、トラブルで通信が止まってしまうのが一番の恐怖です。そのため、「もしメインのルートが切れても大丈夫なように、予備のルート(冗長経路)をあらかじめ繋いでおこう!」という設計をよくやります。
しかし、ここに落とし穴があります。予備のルートが常に「どうぞ通ってください!」と開いていると、データがネットワークの中を永遠にぐるぐる回り続けてしまう「ループ(放送事故)」が起きるのです。あっという間にネットワークがパンクしてしまいますよね。
そこで登場するのがSTPです。STPは、普段は予備のルートを「お休み中(ブロック状態)」にしておき、メインのルートが切れたときだけパッと起こして道を繋げる、という素晴らしい防衛システムです。
ここで問題になるのが、「メインのルートが切れたことに気づいてから、お休み中の予備ルートが起きるまでの時間」です。これが今回の主役である「タイマー設定」の世界です。
—
郵便配達で例えるSTPのタイマーたち
ネットワークの挙動をイメージするために、少し視点を変えて、とある島国の「郵便配達システム」に例えてみましょう。
この島には、村をつなぐ道路がいくつかありますが、大昔のルールで「道路が輪っか(ループ)になってはいけない」と決められています。そのため、普段は使わない通行止めの道路(予備ルート)が存在します。
この島で使われている重要なタイマーは、主に以下の3つです。
1. Hello Timer(ハロータイマー):「いま元気ですか?」と生存確認する間隔
2. Max Age(マックスエイジ):「返事がないぞ、もしかして事故か?」と見切りをつけるまでの限界時間
3. Forward Delay(フォワードディレイ):「よし、新しい道を開通させよう!」と実際に通行を許可するまでの慎重な待ち時間
それぞれのタイマーが、現場でどう動いているのか詳しく見ていきましょう!
—
1. Hello Timer(ハロータイマー):お互いの無事を確かめる合図
STPの世界では、スイッチ同士が定期的に「BPDU(ビーピーディーユー)」という名の生存確認メール(挨拶の手紙)を送り合っています。
この手紙を出す間隔が Hello Timer です。
- デフォルト値:
2秒
スイッチたちは「2秒に1回」のペースで、「やあ、こっちは異常なしだよ!」と手紙を送り合っています。お隣さんからの手紙が定期的に届いているうちは、「あぁ、ネットワークは平和だな」と安心していられるわけですね。
—
2. Max Age(マックスエイジ):連絡が途絶えたときの「見切り」の時間
もし、メインの道路で事故が起きて、お隣さんからの生存確認の手紙がパタッと止まってしまったらどうなるでしょうか?
「あれ? 手紙が来ないな……もしかして道が崩壊した?」と気づく必要がありますよね。この「手紙が来なくなってから、異常事態だと判断するまでのタイムアウト時間」が Max Age です。
- デフォルト値:
20秒
Hello Timer(2秒)の便りが、なんと10回分(20秒間)も届かないと、「これはただの遅延じゃない、間違いなく障害だ!」とスイッチが判断します。郵便配達に例えるなら、「いつも2秒おきに来るはずのバイク便が、20秒経っても来ないから、これは通行止めに違いない!」と確信する時間ですね。
—
3. Forward Delay(フォワードディレイ):慌てず騒がず、慎重すぎる準備期間
障害が発生し、「よし、予備の道路を使おう!」とスイッチが決意したとします。しかし、ここですぐ道路を開放してはいけません。ネットワーク全体に「これから道が変わりますよ」という情報が行き渡る前に慌てて通信を始めると、一時的なループが起きてパケットが暴走してしまうからです。
そこで、道路を開通させる前に「ちょっと待て、みんな落ち着け」と深呼吸するフェーズが挟まります。これが Forward Delay です。
- デフォルト値:
15秒
STPでは、安全に道を開通させるために、通常この「15秒の待ち時間」を2回(合計30秒間:リスニング状態とラーニング状態)経由します。
—
デフォルト値の合計時間と、現場が抱えるジレンマ
さて、ここで計算してみましょう。
障害が発生してから、予備のルートが実際に通信を始められるようになるまで、デフォルトではどれくらいの時間がかかるでしょうか?
- 障害発生から「手紙が来ないぞ」と気づくまで(Max Age):約20秒
- 新しい道を安全に開通させるための準備期間(Forward Delay × 2):約30秒
- 合計:約 30秒 〜 50秒
……お気づきでしょうか?
「障害が起きてからネットが復旧するまで、最大で1分近くかかる」ということです。
現代のビジネスシーン、例えばWeb会議の最中やオンラインゲームの最中に、ネットワークが50秒もフリーズしたらどうなるでしょう? ユーザーからは「システムが壊れた!」とクレームの嵐になってしまいますよね。
これが、古いSTP(IEEE 802.1D)のデフォルト値が抱える、現代における最大のジレンマなのです。
—
実務でのチューニング:どうやって速くするのか?
「じゃあ、タイマーの数値を全部短くしちゃえばいいじゃない!」と思いますよね。その通り、タイマーを短縮して収束(コンバージェンス)を速くするアプローチは、現場のエンジニアもよく行います。
しかし、タイマーを短くしすぎると、今度は「一時的な回線のチラつき(ノイズ)」を障害と勘違いしてしまい、ネットワークが頻繁にパニックを起こす「フラッピング」という別の病気を引き起こしてしまいます。
そのため、現在のモダンなネットワークインフラでは、タイマーの値をいじるだけでなく、RSTP(Rapid Spanning Tree Protocol / IEEE 802.1w)という、仕組み自体がスピーディーに進化版のプロトコルを採用するのが主流です。
とはいえ、シスコシステムズをはじめとする多くのネットワーク機器では、今でもタイマーを手動で調整するコマンドが用意されています。実際のCisco IOSスイッチでの設定例を見てみましょう。
実務での設定・チューニング例(Cisco IOS)
! グローバルコンフィギュレーションモードに入ります
configure terminal
! STPのモードを標準(PVST+など)にしている前提で、Helloタイマーを短縮します
! 例: 2秒から1秒に変更(※ネットワーク全体の設計を揃える必要があります)
spanning-tree vlan 1 hello-time 1
! Max Ageを変更します(デフォルトの20秒から少し短縮)
spanning-tree vlan 1 max-age 12
! Forward Delayを変更します(デフォルトの15秒から短縮)
spanning-tree vlan 1 forward-time 4
! 設定を保存します
end
write memory
> ⚠️ 現場のエンジニアからのワンポイントアドバイス
> 上記のようにタイマーを独自に変更する際は、「ネットワーク内のすべてのスイッチで同じ値を共有する」ことが鉄則です。一部の機器だけタイマーがズレていると、プロトコルが正常に動作せず、予期せぬループや通信断を引き起こす原因になります。「なんとなく速くしたいから」といって安易にデフォルト値をいじるのは禁物ですよ!基本的にはRSTP(Rapid Spanning Tree)への移行を検討しましょう。
—
まとめ
いかがでしたでしょうか?
今回は、STPの根幹を支える3つのタイマー(Hello Timer, Max Age, Forward Delay)について、郵便配達の例えを交えながら解説しました。
- Hello Timer は、お隣さんとの「2秒に1回の生存確認」
- Max Age は、「20秒返事がないぞ、事故だ!」と見切る時間
- Forward Delay は、「安全のために15秒×2回=30秒じっくり待つ」ための慎重な時間
これらが組み合わさることで、私たちのネットワークは安全に保たれている一方で、デフォルトでは復旧に最大50秒ほどの「待ち時間」が存在するというトレードオフがありました。
インフラの世界は、こうした「確実な安全」と「スピード(利便性)」のバランスの上に成り立っています。今回の記事が、皆さんのネットワーク学習や日々の設計業務のちょっとしたスパイスになれば嬉しいです。
それでは、また次回の深淵なるネットワークの旅でお会いしましょう!
コメント