30 Minutes NetWorking
No.SW09

30Minutes NetWorking

BCMSN

第9回STP(1) 概要

■ スイッチの動作

スーパーインター博士

今回からは新しい話だ。
まず、スイッチの基本動作について復習といこう。

ハイパーネット助手

3分間第18回の内容ですか?

スーパーインター博士

まぁ、そうなるな。念のための復習だ。
ネット君相手ならば必須事項だからな。

ハイパーネット助手

うぅぅ。

スーパーインター博士

スイッチ、つまりトランスペアレントブリッジの動作なわけだが、まず、転送の際にフレームに手を加えないことが1つ。

ハイパーネット助手

だから、トランスペアレント(透過)なんですよね。

スーパーインター博士

まぁ、そうだな。
そして、受信の際、送信元MACアドレスを学習し、受信ポートに対応づけることを行う。

ハイパーネット助手

3分間第17回で話してましたね。
その学習により、宛先があるポートにのみ転送が可能になるんですよね。

スーパーインター博士

そういうことだ。このMACアドレスとポートの対応表のことを、CAMテーブルという。

ハイパーネット助手

きゃむ。

スーパーインター博士

そして、ブロードキャスト宛先がCAMにないユニキャストは受信ポート以外のすべてのポートから送信される。これをフラッディングという。

ハイパーネット助手

でしたよね。
ブリッジの欠点でしたっけ。

スーパーインター博士

と、まぁこんな感じなわけだ。
思い出したかね?

ハイパーネット助手

思い出すも何も、ちゃんと理解してますって。

■ 冗長リンク

スーパーインター博士

さて。普通にスイッチを使うならば、先ほどの基本動作を理解していればなんら問題はない。

ハイパーネット助手

普通にスイッチを使うならば?
普通じゃない状況だとまずいんですか?

スーパーインター博士

普通に、という言い方はちょっと変だな。別に変な形で使うわけではなくて、以下のような冗長リンクが存在する場合、問題が発生するのだよ。

冗長リンクがあるネットワーク

[FigureSW09-01:冗長リンクがあるネットワーク]

ハイパーネット助手

冗長リンク?
つまり、どちらかのスイッチがダメになった場合でも大丈夫な形ってことですか?

スーパーインター博士

そういうことだな。スイッチの故障でネットワークが停止しないために、このような冗長構成をとることはよくある。
だが、トランスペアレントブリッジの場合、これが問題になる。

[FigureSW09-02:ブリッジングループ]

ハイパーネット助手

はわ〜。

スーパーインター博士

CAMテーブルが完成していない、正常でない状態で起こるループだな。

ハイパーネット助手

でも、これって、使用していればそのうちCAMテーブルにホストBが登録されて、正常に戻るんじゃないんですか?

スーパーインター博士

確かにそういう場合もある。
だが、ブロードキャストの場合は完全にループすることになる。

[FigureSW09-03:ブロードキャストによるループ]

ハイパーネット助手

あう〜。フラッディング…。

スーパーインター博士

そういうことだ。トランスペアレントブリッジの基本動作上、どうしてもこのループは発生してしまう。
このようなループが発生すると、最終的には通信不能にまで陥ってしまうことが多い。ブロードキャストストームと呼ばれる所以だな。

ハイパーネット助手

じゃあ、例えば、普段はSW2のポート1のケーブルをはずしておいて。
で、SW1のダウン時のみSW2のポート1をつなぐようにすればいいんじゃないですか?

スーパーインター博士

それは確かにそうだが。
障害時に、人間が切り替えるのは「冗長構成」とは言わんぞ。

ハイパーネット助手

うぅ〜ん。

スーパーインター博士

だが、ネット君のアイデアがヒントになるわけだ。
つまり、通常時はループが起きないように特定のポートが転送を中止しておけばいいわけだ。

ハイパーネット助手

ふむふむ。

スーパーインター博士

そして、障害検出時は、そのいままで転送を中止していたポートが動き出せばいい。
これを実現するのが、STPだ。

ハイパーネット助手

すぱにんぐつりー?

■ STP

スーパーインター博士

そう、そのスパニングツリーだ。
聞き覚えがあるな?

ハイパーネット助手

スーパーインター博士

うむ、予想通り

ハイパーネット助手

うぅぅ。

スーパーインター博士

OSPFのSPFツリーを作成するためのアルゴリズムとしても使用されているのが、スパニングツリーだ。
「ループのない木構造」のことだな。

ハイパーネット助手

木構造って、あれですか? DNSのドメイン名前空間とかでも使われている、データ構造の?

スーパーインター博士

そうだ。
その木構造のうち、ループのないものをスパニングツリーと呼ぶのだよ。

木構造・スパニングツリー

[FigureSW09-04:木構造・スパニングツリー]

スーパーインター博士

普通、左のような「子は複数の親を持てる」場合は「グラフ」というのだが、グラフも木構造の一種だからな。
木構造の中で、「子は1つの親しか持たない」木は、ループが存在しないのでスパニングツリーというわけだ。

ハイパーネット助手

??
……博士、すいませんがネットワークの講座を…。

スーパーインター博士

む? アルゴリズムとデータ構造を知っておくと、色々便利なのだが。
まぁいいだろう。ともかくスパニングツリーとはそういうものだ。

ハイパーネット助手

え〜っと、ループを持たない木構造ですね。

スーパーインター博士

そうだ。STPでは、あるブリッジを根[root]とみなして、スパニングツリーを構成するわけだ。

スパニングツリー前

[FigureSW09-05:スパニングツリー前]

スーパーインター博士

通常状態では転送を中止しているポートを設定することにより、スパニングツリーとなる。

スパニングツリー

[FigureSW09-06:スパニングツリー]

ハイパーネット助手

ははぁ。
で、障害時は転送を中止していたポートが転送を再開するんですね。

スーパーインター博士

そういうことだ。もう一度、スパニングツリーを再構成するわけだな。

スパニングツリー再構成

[FigureSW09-07:スパニングツリー再構成]

ハイパーネット助手

は〜。なるほど。

スーパーインター博士

つまり、ブリッジの物理接続とは別の、転送用の論理接続をスパニングツリーアルゴリズムを使って構成するわけだな。

ハイパーネット助手

転送用の論理接続…。
は〜、上手く考えてますねぇ。

■ BPDU

スーパーインター博士

さて、ルーティングプロトコルでルーティングテーブルを作成するためにアドバタイズが送られるように、STPでも送られるデータがある。BPDUと呼ばれるデータだ。

ハイパーネット助手

びーぴーでーゆー?
ルーティングプロトコルみたいに、ブリッジが持っている情報を交換するわけですね?

スーパーインター博士

そうだ。
BPDUは以下の情報を持つ。

  • ルート情報 … ルートに設定されたブリッジのID
  • パスコスト … そのリンクのルートブリッジからの距離
  • ブリッジ情報 … BPDUを送信したブリッジの情報
  • ポート情報 … BPDUを送信したポートの情報
  • タイマ … スパニングツリーを構成するための時間
ハイパーネット助手

るーとぶりっじ? BPDUを送信?

スーパーインター博士

まぁ、それは後でちゃんと説明する。
このBPDUは2秒に1回送信される。それにより各ブリッジは現在のトポロジ状態を把握するわけだな。

ハイパーネット助手

で、ループが起きないように転送を中止するポートを決めるわけですね。

スーパーインター博士

そうなんだが、そこまでいくには色々段階を踏まなければ。
段階については後述するとして、まず、STP独特の用語を覚えてもらおう。まず、ルートブリッジ

ハイパーネット助手

さっきのBPDUの情報のなかにありましたね。

スーパーインター博士

これは名前の通り、スパニングツリーの根[root]に置かれるブリッジだ。
STPはルートブリッジを中心としてループの有無を判断する。

ハイパーネット助手

さっきの図でいうと、SW1のことですね。

ルートブリッジ

[FigureSW09-08:ルートブリッジ]

スーパーインター博士

そうだ。そして、次の用語は、指定ブリッジ
これはそのセグメントからルートブリッジも到達するためのブリッジのことを指す。

指定ブリッジ

[FigureSW09-09:指定ブリッジ]

ハイパーネット助手

「でじぐねいてっど」って、OSPFにもでてきましたよね。DRとBDR。
あれって、「代表ルータ」でしたけど、今回は「指定」?

スーパーインター博士

どちらかと言えば、[designate]は「指名する」だから、「指定」の方が正しい翻訳かもな。
ともかく、指定ブリッジは、ルートブリッジまでのパスが最短のブリッジがなる。

ハイパーネット助手

なるほど。

スーパーインター博士

さて、どのようにトポロジ内でルートブリッジが決定され、STPが実行されていくかといえば。

ハイパーネット助手

といえば?

スーパーインター博士

それは長くなるので次回だな。

ハイパーネット助手

あららら。

スーパーインター博士

STPの話は当分続くぞ。では、また次回。

ハイパーネット助手

いぇっさ〜。
30分間ネットワーキングでした〜♪

トランスペアレントブリッジ
[Transparent Bridge]
CAM
[Content-Addressable Memory]
フラッディング
[Flooding]
「洪水」「氾濫」の意味。
すべてのポートにフレームが「氾濫」していくから。
STP
[Spanning-Tree Protocol]
規格名ではIEEE802.1d。
BPDU
[Bridge Protocol Data Unit]
指定ブリッジ
[Designated Bridge]
ブロードキャストストーム
[Broadcast Storm]
ハイパーネット助手ハイパーネット君の今日のポイント
  • ブリッジで冗長構成をすると、ループが発生する。
  • ループが発生すると、最終的には通信不能になる。
  • ループを防止するためにおこなうのがSTP。
    • 特定のポートからの転送をおこなわない。
    • 障害時は転送をやめていたポートが再開する
  • STPを実現するためにブリッジはBPDUを送受信する。

30 Minutes NetWorking No.SW09

管理人:aji-ssz(at)selene.is.dream.jp