TCN BPDUとは

TCN BPDUによって、トポロジの変更通知を行うことができます。レイヤ2スイッチは、MACアドレステーブルに基づいて適切なポートにイーサネットフレームを転送することが基本的な動作です。もし、トポロジが変更されると、MACアドレステーブルのMACアドレスの登録も変更しなければいけない可能性があります。TCN BPDUでトポロジ変更と検出すると、MACアドレステーブルのエントリの制限時間を短くして、エントリをリフレッシュできるようにします。

図 TCN BPDU
図 TCN BPDU

フィールド概要
プロトコルIDSTPでは、「0x0000」で固定
バージョンバージョンの値も「0x00」で固定
BPDUタイプTCN BPDUでは、BPDUタイプは「0x80」
表 TCN BPDU

TCN BPDUによるトポロジ変更の動作

スパニングツリーでは、フォワーディング状態でなくなったことをトポロジ変更としています。トポロジ変更を検出すると、TCN BPDUによってルートブリッジまで通知します。ルートブリッジは、ルートポートの先に存在しているはずです。そのため、ルートブリッジに通知するためには、TCN BPDUはルートポートから送信します。TCN BPDUを受信したスイッチは、TCN ACKフラグとTCフラグをセットしたBPDUを送信して、さらに自身のルートポートからTCN BPDUを送信します。これをルートブリッジに到達するまで続けます。

そして、TCN BPDUを受信したルートブリッジは、スパニングツリーに参加するレイヤ2スイッチにMACアドレステーブルをリフレッシュするようにTCフラグをセットしたコンフィグレーションBPDUを一定時間(最大エージタイマ+転送遅延タイマ)送信します。TCフラグをセットしたコンフィグレーションBPDUを受信すると、MACアドレステーブルのエージングタイムを転送遅延タイマまで短くして、いったん、MACアドレステーブルをクリアします。そして、新しいトポロジに基づいてMACアドレステーブルにMACアドレスを登録できるようにします。

図 コンフィグレーションBPDUのTCN ACK/TCフラグ
図 コンフィグレーションBPDUのTCN ACK/TCフラグ

TCN BPDUによるトポロジ変更の動作の例

TCN BPDUによるトポロジ変更の例として、次の図を考えます。

図 TCN BPDUによるトポロジ変更通知 その1
図 TCN BPDUによるトポロジ変更通知 その1

  1. SW7が何らかの障害でダウンします。
  2. SW5のポートがフォワーディング状態でなくなり、SW5はトポロジ変更を検出します。
  3. SW5はルートブリッジへトポロジ変更を通知するために、ルートポートからTCN BPDUを送信します。TCN ACKを受信するまで2秒ごとにTCN BPDUを送信します。
  4. SW2はTCN BPDUを受信すると、TCN ACKを返して、TCN BPDUを受信していることを通知します。TCN ACKはコンフィグレーションBPDUのTCN ACKフラグとTCフラグをセットしたものです。
  5. SW2は自身のルートポートからTCN BPDUを送信します。
  6. SW1はTCN ACKを送信します。これで、ルートブリッジであるSW1がトポロジ変更を認識することができます。
  7. SW1はコンフィグレーションBPDUにTCフラグをセットして、スパニングツリーに参加するすべてのスイッチにトポロジ変更を通知します。TCフラグをセットしたコンフィグレーションBPDUの送信は、デフォルトで35秒間(最大エージ20秒+転送遅延15秒)間行います。
  8. SW2やSW3はTCフラグをセットしたコンフィグレーションBPDUを下位のスイッチにも送信します。
  9. TCフラグをセットしたコンフィグレーションBPDUを受信すると、MACアドレステーブルのエージングタイムを転送遅延タイマまで短くして、MACアドレステーブルのエントリをいったんクリアするようにします。
図 TCN BPDUによるトポロジ変更通知 その2
図 TCN BPDUによるトポロジ変更通知 その2

レイヤ2スイッチの仕組み