ネットワークやインターネットに関する 「コンピューター入門」 の他の記事を読んだことがあれば、典型的なネットワークが次のもので構成されていることをご存知でしょう。
- ノード (コンピュータ)
- 接続媒体 (有線または無線)
- ルーターやハブなどの特殊なネットワーク機器。
インターネットの場合、これらすべての要素が連携して、コンピュータから地球の裏側にある別のコンピュータに情報を送信できるようになります。
スイッチは、処理を高速化するため、多くのネットワークのもう 1 つの基本的な部分です。スイッチを使用すると、ネットワークのさまざまなノード(ネットワーク接続ポイント、通常はコンピュータ) がスムーズかつ効率的な方法で相互に直接通信できるようになります。
スイッチやネットワークにはさまざまな種類があります。企業の内部ネットワーク内の各ノードに個別の接続を提供するスイッチは、 LAN スイッチと呼ばれます。基本的に、LAN スイッチは、特定の瞬間に相互に通信する 2 つのデバイスのみを含む一連のインスタント ネットワークを作成します。この記事では、LAN スイッチを使用したイーサネットネットワークに焦点を当てます。 LAN スイッチとは何か、トランスペアレント ブリッジングがどのように機能するか、VLAN、トランキング、スパニング ツリーについても学習します。
ネットワークの基本
ネットワークの基本的な部分の一部を次に示します。
- ネットワーク– ネットワークは、コンピュータ間で情報を交換できるように接続されたコンピュータのグループです。
- ノード– ノードとは、ネットワークに接続されているあらゆるものです。ノードは通常コンピュータですが、プリンタやCD-ROMタワーなどの場合もあります。
- セグメント– セグメントは、スイッチ、ブリッジ、ルーターによってネットワークの他の部分から分離されているネットワークの一部です。
- バックボーン– バックボーンは、すべてのセグメントが接続するネットワークの主要なケーブル配線です。通常、バックボーンは個々のセグメントよりも多くの情報を運ぶことができます。たとえば、各セグメントの転送速度が 10 Mbps (メガビット/秒) である一方で、バックボーンは 100 Mbps で動作する場合があります。
- トポロジ– トポロジは、各ノードがネットワークに物理的に接続される方法です (これについては次のセクションで詳しく説明します)。
- ローカル エリア ネットワーク (LAN) – LAN は、物理的に同じ一般的な場所 (通常は建物内またはキャンパス内) にあるコンピュータのネットワークです。コンピュータが遠く離れている場合 (町の向こう側または別の都市にある場合など)、通常はワイド エリア ネットワーク(WAN) が使用されます。
- ネットワーク インターフェイス カード (NIC) – すべてのコンピューター (およびその他のほとんどのデバイス) は、NIC を介してネットワークに接続されます。ほとんどのデスクトップ コンピュータでは、これはコンピュータのマザーボードのスロットに差し込まれるイーサネットカード (通常は 10 または 100 Mbps) です。
- メディア アクセス コントロール (MAC) アドレス– これは、ネットワーク上のデバイス (コンピュータの NIC など) の物理アドレスです。 MAC アドレスは 2 つの等しい部分で構成され、長さは 6バイトです。最初の 3 バイトは、NIC を製造した会社を識別します。 2 番目の 3 バイトは NIC 自体のシリアル番号です。
- ユニキャスト– ユニキャストは、あるノードから別のノードに特にアドレス指定された送信です。
- マルチキャスト– マルチキャストでは、ノードは特別なグループ アドレスにアドレス指定されたパケットを送信します。このグループに関心のあるデバイスは、そのグループにアドレス指定されたパケットを受信するように登録します。例としては、他のすべての Cisco ルータに更新を送信するルータが考えられます。
- ブロードキャスト– ブロードキャストでは、ノードはネットワーク上の他のすべてのノードに送信することを目的としたパケットを送信します。
次のページでは、最も一般的なネットワーク トポロジのいくつかについて説明します。
ネットワークトポロジ
現在使用されている最も一般的なトポロジには次のようなものがあります。
- バス– 各ノードは、 クリスマスイルミネーションと同様に、同じバックボーンに沿ってデイジーチェーン接続(次々に接続) されます。ノードから送信された情報は、宛先ノードに到達するまでバックボーンに沿って移動します。バス ネットワークの各端は、ノードによってネットワーク全体に送信された信号がケーブルの端に到達したときに跳ね返らないように、抵抗器で終端する必要があります。
- リング– バス ネットワークと同様に、リングにはノードがデイジーチェーン接続されています。違いは、ネットワークの終端が最初のノードに戻り、完全な回路を作成することです。リング ネットワークでは、各ノードが順番にトークンを使用して情報を送受信します。トークンは、任意のデータとともに、最初のノードから 2 番目のノードに送信され、そこでアドレス指定されたデータが抽出され、送信したいデータが追加されます。次に、2 番目のノードはトークンとデータを 3 番目のノードに渡し、再び最初のノードに戻るまで同様に繰り返します。トークンを持つノードのみがデータの送信を許可されます。他のすべてのノードは、トークンが届くまで待つ必要があります。
- スター– スター ネットワークでは、各ノードがハブと呼ばれる中央デバイスに接続されます。ハブは任意のノードからの信号を受け取り、それをネットワーク内の他のすべてのノードに渡します。ハブは、データのフィルタリングやルーティングを一切実行しません。これは、すべての異なるノードを結合する単なるジャンクションです。
- スター バス– おそらく現在使用されている最も一般的なネットワーク トポロジであるスター バスは、スター トポロジとバス トポロジの要素を組み合わせて、多用途のネットワーク環境を作成します。特定のエリアのノードはハブに接続され (スターを作成)、ハブはネットワーク バックボーン (バス ネットワークなど) に沿って相互に接続されます。以下の例に示すように、スターはスターの中にネストされることがよくあります。
問題: 交通
現在見られる最も基本的なタイプのネットワークでは、ノードはハブを使用して単純に接続されています。ネットワークが成長するにつれて、この構成には潜在的な問題がいくつか発生します。
- スケーラビリティ– ハブ ネットワークでは、共有帯域幅が限られているため、パフォーマンスを犠牲にすることなく大幅な増加に対応することが困難になります。今日のアプリケーションは、これまで以上に多くの帯域幅を必要としています。多くの場合、成長に対応するためにネットワーク全体を定期的に再設計する必要があります。
- 遅延– これは、パケットが宛先に到達するまでにかかる時間です。ハブベースのネットワーク内の各ノードは、衝突を避けるために送信の機会を待つ必要があるため、ノードを追加すると遅延が大幅に増加する可能性があります。または、誰かがネットワーク経由で大きなファイルを送信している場合、他のすべてのノードは独自のパケットを送信する機会を待たなければなりません。おそらく、仕事中にこれを見たことがあると思います。サーバーまたはインターネットにアクセスしようとすると、突然すべての速度が異常に遅くなります。
- ネットワーク障害– 一般的なネットワークでは、不適切な速度設定 (10 Mbps ハブで 100 Mbps) や過剰なブロードキャストにより、ハブ上の 1 つのデバイスがハブに接続されている他のデバイスに問題を引き起こす可能性があります。ブロードキャスト レベルを制限するようにスイッチを設定できます。
- 衝突– イーサネットは、 CSMA/CD (衝突検出機能付きキャリアセンス多重アクセス) と呼ばれるプロセスを使用して、ネットワーク全体で通信します。 CSMA/CD では、ネットワークにトラフィックがなくなるまで、ノードはパケットを送信しません。 2 つのノードが同時にパケットを送信すると、衝突が発生し、パケットが失われます。その後、両方のノードがランダムな時間待機して、パケットを再送信します。 2 つ以上のノードからのパケットが相互に干渉する可能性があるネットワークの部分は、同じコリジョン ドメインの一部であるとみなされます。同じセグメント上に多数のノードがあるネットワークでは、多くの場合、多くの衝突が発生するため、衝突ドメインが大きくなります。
ハブは、パケットをあるノードから別のノードに移動するために必要な距離をスケールアップして短縮する簡単な方法を提供しますが、実際のネットワークを個別のセグメントに分割するわけではありません。そこでスイッチが登場します。次のセクションでは、スイッチがネットワーク トラフィックの方向付けをどのように支援するかについて説明します。
解決策: スイッチの追加
ハブとは、全員が停止しなければならない四差路の交差点と考えてください。複数の車が同時に交差点に到着した場合、順番が進むまで待たなければなりません。
ここで、10 本、さらには 100 本の道路が 1 点で交差するとどうなるかを想像してください。待ち時間が長くなり、衝突の可能性が大幅に増加します。しかし、これらの道路のいずれかから、出口ランプを使って選択した道路に行くことができたら、素晴らしいと思いませんか?これはまさにスイッチがネットワーク トラフィックに対して行うことです。スイッチはクローバーの葉の交差点のようなものです。各車は、停止して他の交通が通過するのを待つことなく、出口ランプを使用して目的地に到達できます。
ハブとスイッチの重要な違いは、ハブに接続されているすべてのノードが帯域幅を共有するのに対し、スイッチ ポートに接続されているデバイスはそれ自体が全帯域幅を独占していることです。たとえば、10 Mbps ネットワーク上のハブを使用して 10 個のノードが通信している場合、ハブ上の他のノードも同様に通信したい場合、各ノードは 10 Mbps の一部しか取得できません。しかし、スイッチを使用すると、各ノードが最大 10 Mbps で通信できる可能性があります。道路のたとえを考えてみましょう。すべての交通が共通の交差点に来る場合、各車はその交差点を他のすべての車と共有する必要があります。しかし、クローバーの葉があれば、すべての交通はある道路から次の道路まで全速力で進み続けることができます。
完全にスイッチ化されたネットワーク
フル スイッチ ネットワークでは、スイッチがイーサネット ネットワークのすべてのハブを各ノードの専用セグメントに置き換えます。これらのセグメントはスイッチに接続され、スイッチは複数の専用セグメント (場合によっては数百) をサポートします。各セグメント上の唯一のデバイスはスイッチとノードであるため、スイッチは別のノードに到達する前にすべての送信を取得します。次に、スイッチは適切なセグメント上でフレームを転送します。どのセグメントにもノードが 1 つしか含まれていないため、フレームは目的の受信者にのみ到達します。これにより、スイッチド ネットワーク上で多くの会話を同時に行うことができます。
スイッチングにより、ネットワークは全二重イーサネットを維持できるようになります。切り替え前のイーサネットは半二重でした。つまり、データは一度に一方向にしか送信できませんでした。完全にスイッチ化されたネットワークでは、各ノードは他のノードと直接通信するのではなく、スイッチとのみ通信します。情報はノードからスイッチへ、およびスイッチからノードへ同時に送信できます。
完全にスイッチド ネットワークでは、ツイスト ペア ケーブルまたは光ファイバー ケーブルが使用され、どちらもデータの送受信に別個の導体を使用します。このタイプの環境では、イーサネット ノードは媒体にアクセスできる唯一のデバイスであるため、衝突検出プロセスを無視して自由に送信できます。言い換えれば、各方向に流れる交通はそれ自体に車線を持っています。これにより、スイッチがノードに送信するのと同じように、ノードもスイッチに送信できるようになり、衝突のない環境になります。 2 つのノードが情報を交換している場合、両方向に送信すると、ネットワークの見かけの速度が効果的に 2 倍になります。ネットワークの速度が 10 Mbps の場合、各ノードは 10 Mbps で同時に送信できます。
混合ネットワーク
すべてのハブをスイッチに置き換えるにはコストがかかるため、ほとんどのネットワークは完全にスイッチングされていません。
代わりに、スイッチとハブの組み合わせを使用して、効率的かつコスト効率の高いネットワークを作成します。たとえば、企業には各部門のコンピュータを接続するハブがあり、その後、すべての部門レベルのハブを接続するスイッチがあるとします。
ルーターとスイッチ
スイッチには、ノード間の通信方法を根本的に変える可能性があることがわかります。しかし、ルーターと何が違うのか疑問に思われるかもしれません。通常、スイッチは MAC アドレスを使用してOSI 参照モデルのレイヤー 2 (データまたはデータリンク) で動作しますが、ルーターはレイヤー 3 アドレス (使用されているものに応じて IP、IPX、または Appletalk) を使用してレイヤー 3 (ネットワーク) で動作します。スイッチがパケットの転送方法を決定するために使用するアルゴリズムは、ルーターがパケットを転送するために使用するアルゴリズムとは異なります。
スイッチとルーターのアルゴリズムの違いの 1 つは、ブロードキャストの処理方法です。どのネットワークでも、ブロードキャスト パケットの概念はネットワークの運用性にとって不可欠です。デバイスが情報を送信する必要があるが、誰に送信すればよいかわからない場合は、ブロードキャストを送信します。たとえば、新しいコンピュータまたはその他のデバイスがネットワークに接続されるたびに、ブロードキャスト パケットを送信してその存在を知らせます。他のノード (ドメイン サーバーなど) は、そのコンピュータをブラウザ リスト(アドレス ディレクトリのようなもの) に追加し、その時点からそのコンピュータと直接通信できます。ブロードキャストは、デバイスがネットワークの残りの部分にアナウンスを行う必要がある場合、または情報の受信者が誰であるべきか不明な場合に使用されます。
ハブまたはスイッチは、受信したブロードキャスト パケットをブロードキャスト ドメイン内の他のすべてのセグメントに渡しますが、ルーターはそうではありません。もう一度四差路の交差点について考えてみましょう。すべての交通は、行き先を問わず交差点を通過しました。ここで、この交差点が国境にあると想像してください。交差点を通過するには、国境警備隊に目的地の具体的な住所を提供する必要があります。目的地が決まっていない場合は警備員が通行させてくれません。ルーターはこのように動作します。別のデバイスの特定のアドレスがないと、データ パケットは通過できません。これは、ネットワークを互いに分離しておくことには適していますが、同じネットワークの異なる部分間で通信する場合にはあまり適していません。ここでスイッチが登場します。
パケット交換
LAN スイッチはパケット交換に依存します。スイッチは、現在のパケットを送信するのに十分な長さの 2 つのセグメント間の接続を確立します。受信パケット (イーサネットフレームの一部) は一時メモリ領域 (バッファ) に保存されます。フレームのヘッダーに含まれる MAC アドレスが読み取られ、スイッチのルックアップ テーブルに保持されているアドレスのリストと比較されます。イーサネット ベースの LAN では、イーサネット フレームには、フレームのペイロードとして通常のパケットが含まれており、パケットの送信元と宛先の MAC アドレス情報を含む特別なヘッダーが付いています。
パケットベースのスイッチは、トラフィックのルーティングに次の 3 つの方法のいずれかを使用します。
- カットスルー
- ストアアンドフォワード
- フラグメントフリー
カットスルースイッチは、パケットがスイッチによって検出されるとすぐに MAC アドレスを読み取ります。アドレス情報を構成する 6 バイトを保存した後、パケットの残りの部分がスイッチに到着しているときでも、すぐに宛先ノードへのパケットの送信を開始します。
ストア アンド フォワードを使用するスイッチは、パケット全体をバッファに保存し、送信前にCRCエラーやその他の問題がないかチェックします。パケットにエラーがある場合、パケットは破棄されます。それ以外の場合、スイッチは MAC アドレスを検索し、パケットを宛先ノードに送信します。多くのスイッチは 2 つの方法を組み合わせており、特定のエラー レベルに達するまではカットスルーを使用し、その後ストア アンド フォワードに切り替えます。エラー訂正が提供されないため、厳密にカットスルーされるスイッチはほとんどありません。
あまり一般的ではない方法は、フラグメントフリーです。パケットを送信する前に最初の 64 バイトを保存する点を除けば、カットスルーと同様に機能します。その理由は、ほとんどのエラーとすべての衝突がパケットの最初の 64 バイトで発生するためです。
スイッチ構成
LAN スイッチの物理設計はさまざまです。現在、次の 3 つの一般的な構成が使用されています。
- 共有メモリ– このタイプのスイッチは、すべての受信パケットをすべてのスイッチポート(入力/出力接続) によって共有される共通メモリ バッファに保存し、宛先ノードの正しいポートを介して送信します。
- マトリックス– このタイプのスイッチには、入力ポートと出力ポートが互いに交差する内部グリッドがあります。入力ポートでパケットが検出されると、MAC アドレスがルックアップ テーブルと比較され、適切な出力ポートが見つかります。次に、スイッチは、これら 2 つのポートが交差するグリッド上で接続を確立します。
- バス アーキテクチャ– グリッドの代わりに、内部伝送パス (共通バス) がTDMA を使用してすべてのポートで共有されます。この構成に基づくスイッチには、各ポートに専用のメモリ バッファと、内部バス アクセスを制御するASICがあります。
透過的なブリッジング
ほとんどのイーサネット LAN スイッチは、トランスペアレント ブリッジングと呼ばれる非常に優れたシステムを使用してアドレス ルックアップ テーブルを作成します。透過的ブリッジングは、ネットワーク管理者が何もすることなく、スイッチがネットワーク上のノードの位置について知る必要があるすべてを学習できるようにするテクノロジーです。透過的ブリッジングには 5 つの部分があります。
- 学ぶ
- 洪水
- フィルタリング
- 転送
- エージング
仕組みは次のとおりです。
次のセクションでは、透過的なブリッジングがどのように機能するかを段階的に説明します。
透過的なブリッジング: プロセス
ここでは、透過的なブリッジングについて段階的に説明します。
- スイッチがネットワークに追加され、さまざまなセグメントがスイッチのポートに接続されます。
- 最初のセグメント (セグメント A) 上のコンピューター (ノード A) は、別のセグメント (セグメント C) 上のコンピューター (ノード B) にデータを送信します。
- スイッチはノード A から最初のデータ パケットを取得します。スイッチは MAC アドレスを読み取り、それをセグメント A のルックアップ テーブルに保存します。これで、スイッチは、パケットがノード A 宛てに送信されるたびに、ノード A の場所を認識できるようになります。このプロセスは学習と呼ばれます。
- スイッチはノード B がどこにあるのかわからないため、到着したセグメント (セグメント A) を除くすべてのセグメントにパケットを送信します。スイッチが特定のノードを見つけるためにすべてのセグメントにパケットを送信することを、フラッディングと呼びます。
- ノード B はパケットを取得し、確認応答としてパケットをノード A に送り返します。
- ノード B からのパケットがスイッチに到着します。これで、スイッチはノード B の MAC アドレスをセグメント C のルックアップ テーブルに追加できるようになります。スイッチはノード A のアドレスをすでに知っているため、パケットをノード A に直接送信します。ノード A はノード B とは異なるセグメント上にあるため、スイッチは 2 つのセグメントを接続してパケットを送信する必要があります。これは転送として知られています。
- ノード A からノード B への次のパケットがスイッチに到着します。スイッチはノード B のアドレスも持つようになったので、パケットをノード B に直接転送します。
- ノード C はノード A のスイッチに情報を送信します。スイッチはノード C の MAC アドレスを調べ、それをセグメント A のルックアップ テーブルに追加します。スイッチはノード A のアドレスをすでに持っており、両方のノードが同じ上にあると判断します。したがって、データがノード C からノード A に移動するためにセグメント A を別のセグメントに接続する必要はありません。したがって、スイッチは同じセグメント上のノード間を移動するパケットを無視します。これがフィルタリングです。
- スイッチがルックアップ テーブルにノードを追加すると、学習とフラッディングが継続します。ほとんどのスイッチには、ルックアップ テーブルを維持するための十分なメモリが搭載されています。ただし、このメモリの使用を最適化するために、スイッチが古いアドレスの検索に時間を無駄にしないように、古い情報は削除されます。これを行うために、スイッチはエージングと呼ばれる手法を使用します。基本的に、エントリがノードのルックアップ テーブルに追加されると、タイムスタンプが与えられます。ノードからパケットを受信するたびに、タイムスタンプが更新されます。スイッチには、ノードからのアクティビティがない状態で一定時間が経過するとエントリを消去するユーザー設定可能なタイマーが備わっています。これにより、貴重なメモリ リソースが他のエントリのために解放されます。ご覧のとおり、トランスペアレント ブリッジングは、スイッチが機能するために必要なすべての情報を追加および管理できる、本質的にメンテナンス不要の優れた方法です。
この例では、2 つのノードがセグメント A を共有し、スイッチはノード B とノード D に独立したセグメントを作成します。理想的な LAN スイッチ ネットワークでは、すべてのノードが独自のセグメントを持つことになります。これにより、衝突の可能性がなくなり、フィルタリングの必要性もなくなります。
冗長性
以前にバスおよびリング ネットワークについて説明したとき、問題の 1 つは単一障害点の可能性でした。スターまたはスターバス ネットワークでは、ネットワークの全体または一部がダウンする可能性が最も高いポイントはスイッチまたはハブです。以下の例を見てください。
この例では、スイッチ A または C のいずれかに障害が発生した場合、その特定のスイッチに接続されているノードは影響を受けますが、他の 2 つのスイッチのノードは引き続き通信できます。ただし、スイッチ B に障害が発生すると、ネットワーク全体がダウンします。スイッチ A と C を接続するネットワークに別のセグメントを追加するとどうなるでしょうか?
この場合、いずれかのスイッチに障害が発生しても、ネットワークは継続します。これにより冗長性が提供され、単一障害点が効果的に排除されます。
しかし今、新たな問題が生じています。
ブロードキャストストーム
前のセクションでは、スイッチがノードの位置を学習する方法を説明しました。すべてのスイッチがループ内に接続されているため、ノードからのパケットが 2 つの異なるセグメントからスイッチに到達する可能性が十分にあります。たとえば、ノード B がスイッチ A に接続されており、セグメント B 上のノード A と通信する必要があるとします。スイッチ A はノード A が誰であるかを知らないため、パケットをフラッディングします。
パケットはセグメント A またはセグメント C を経由して他の 2 つのスイッチ (B および C) に送信されます。スイッチ B はセグメント A 用に保持しているルックアップ テーブルにノード B を追加し、スイッチ C はセグメント C のルックアップ テーブルにノード B を追加します。どちらのスイッチもノード A のアドレスをまだ学習していない場合、ノード B を探してセグメント B をフラッディングします。 A. 各スイッチは、ノード A が誰であるかをまだ知らないため、他のスイッチによって送信されたパケットを受け取り、すぐに再度フラッディングして送り返します。スイッチ A は各セグメントからパケットを受信し、他のセグメントにフラッディングして送り返します。これにより、パケットが各スイッチによってブロードキャスト、受信、再ブロードキャストされるときにブロードキャスト ストームが発生し、深刻なネットワーク輻輳が発生する可能性があります。
ここでスパニングツリーの話になります…
スパニングツリー
ブロードキャスト ストームやループによるその他の望ましくない副作用を防ぐために、Digital Equipment Corporation はスパニング ツリー プロトコル(STP) を作成しました。このプロトコルは (IEEE) によって802.1d仕様として標準化されました。基本的に、スパニング ツリーはスパニング ツリー アルゴリズム(STA) を使用します。STA は、スイッチがノードと通信するための複数の方法を持っていることを感知し、どの方法が最適であるかを判断し、他のパスをブロックします。優れているのは、プライマリ パスが使用できない場合に備えて、他のパスを追跡していることです。
STP の仕組みは次のとおりです。
各スイッチには、スイッチ自体に 1 つとスイッチの各ポートに 1 つずつ、ID のグループが割り当てられます。ブリッジ ID (BID) と呼ばれるスイッチの識別子は 8 バイトの長さで、スイッチの MAC アドレス (6 バイト) の 1 つとともにブリッジ優先順位 (2 バイト) が含まれています。各ポート IDは 16 ビット長で、6 ビットの優先順位設定と 10 ビットのポート番号の 2 つの部分で構成されます。
各ポートにはパスコスト値が与えられます。通常、コストは 802.1d の一部として確立されたガイドラインに基づいています。元の仕様によれば、コストは 1,000 Mbps (1 ギガビット/秒) をポートに接続されているセグメントの帯域幅で割ったものになります。したがって、10 Mbps 接続のコストは (1,000/10) 100 になります。
ギガビット範囲を超えて増加するネットワークの速度を補うために、標準コストがわずかに変更されました。新しいコスト値は次のとおりです。
帯域幅 4 Mbps = 250 STP コスト値
帯域幅 10 Mbps = 100 STP コスト値
帯域幅 16 Mbps = 62 STP コスト値
帯域幅 45 Mbps = 39 STP コスト値
帯域幅 100 Mbps = 19 STP コスト値
帯域幅 155 Mbps = 14 STP コスト値
帯域幅 622 Mbps = 6 STP コスト値
帯域幅 1 Gbps = 4 STP コスト値
帯域幅 10 Gbps = 2 STP コスト値
また、パス コストは、標準コスト値の 1 つではなく、ネットワーク管理者によって割り当てられる任意の値になる可能性があることにも注意してください。各スイッチは検出プロセスを開始して、各セグメントに使用するネットワーク パスを選択します。この情報は、ブリッジ プロトコル データ ユニット(BPDU) と呼ばれる特別なネットワーク フレームを介してすべてのスイッチ間で共有されます。 BPDU の部分は次のとおりです。
- ルート BID – これは現在のルート ブリッジの BID です。
- ルート ブリッジへのパス コスト– ルート ブリッジまでの距離が決まります。たとえば、ルート ブリッジに到達するまでにデータが 3 つの 100 Mbps セグメントを通過する必要がある場合、コストは (19 + 19 + 0) 38 になります。ルート ブリッジに接続されたセグメントのパス コストは通常 0 です。
- 送信者 BID – これは、BPDU を送信するスイッチの BID です。
- ポート ID – これは、BPDU の送信元であるスイッチ上の実際のポートです。
- すべてのスイッチは常に BPDU を相互に送信し、さまざまなセグメント間の最適なパスを決定しようとします。スイッチが、同じセグメントに対してブロードキャストしている BPDU よりも優れた BPDU を (別のスイッチから) 受信すると、そのセグメントへの BPDU のブロードキャストを停止します。代わりに、参照用と、ルート ブリッジから遠く離れたセグメントなどの下位セグメントにブロードキャストするために、他のスイッチの BPDU を保存します。
- ルート ブリッジは、スイッチ間の BPDU プロセスの結果に基づいて選択されます。最初は、すべてのスイッチが自分自身をルート ブリッジであると認識します。スイッチがネットワーク上で最初に電源を投入すると、スイッチは自身の BID をルート BID として持つ BPDU を送信します。他のスイッチは BPDU を受信すると、BID をルート BID としてすでに保存されているものと比較します。新しいルート BID の値が低い場合は、保存されているルート BID が置き換えられます。ただし、保存されたルート BID の方が低い場合は、この BID をルート BID として BPDU が新しいスイッチに送信されます。新しいスイッチは BPDU を受信すると、自分がルート ブリッジではないことを認識し、テーブル内のルート BID を受信したばかりのルート BID に置き換えます。その結果、BID が最も低いスイッチが他のスイッチによってルート ブリッジとして選択されます。
- ルート ブリッジの位置に基づいて、他のスイッチは、ルート ブリッジへのパス コストが最も低いポートを決定します。これらのポートはルート ポートと呼ばれ、各スイッチ (現在のルート ブリッジを除く) には 1 つ必要です。
- スイッチは、誰にポートを指定するかを決定します。指定ポートは、特定のセグメント上でパケットを送受信するために使用される接続です。セグメントごとに指定ポートを 1 つだけ指定することで、ループの問題はすべて解決されます。指定ポートは、セグメントのルート ブリッジへの最低パス コストに基づいて選択されます。ルート ブリッジのパス コストは「0」であるため、セグメントに接続されているルート ブリッジ上のポートはすべて指定ポートになります。他のスイッチについては、特定のセグメントのパス コストが比較されます。 1 つのポートのパス コストが低いと判断された場合、そのポートがそのセグメントの指定ポートになります。 2 つ以上のポートのパス コストが同じ場合、BID が最も低いスイッチが選択されます。
- ネットワーク セグメントの指定ポートが選択されると、そのセグメントに接続する他のポートは非指定ポートになります。ネットワーク トラフィックがそのパスを通過するのをブロックし、指定されたポート経由でのみそのセグメントにアクセスできるようにします。
各スイッチには、継続的に更新される BPDU のテーブルがあります。これで、ネットワークは単一のスパニング ツリーとして構成され、ルート ブリッジがトランクとして、他のすべてのスイッチがブランチとして構成されます。各スイッチは、ルート ポートを介してルート ブリッジと通信し、指定されたポートを介して各セグメントと通信することで、ループのないネットワークを維持します。ルート ブリッジに障害が発生した場合、またはネットワークに問題が発生した場合、STP を使用すると、他のスイッチがルート ブリッジとして機能する別のスイッチでネットワークを即座に再構成できます。この驚くべきプロセスにより、企業はフォールトトレラントでありながら保守が非常に簡単な複雑なネットワークを構築できるようになります。