Cisco スイッチで Inconsistent port type が出る原因と対処

  • URLをコピーしました!
目次

はじめに

設定変更を行っていないにもかかわらず、Cisco スイッチの特定ポートが突然通信不能になり、ログに以下のメッセージが出力されることがあります。

%SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk GigabitEthernet0/1 VLAN100.
%SPANTREE-7-BLOCK_PORT_TYPE: Blocking GigabitEthernet0/1 on VLAN100. Inconsistent port type.

このエラーは、STP(スパニングツリープロトコル)の整合性チェック機能が「ポートの設定が対向機器と一致していない」ことを検知し、安全のためポートを自動遮断したことを示すログ です。Cisco の PVST+/RPVST+ では、このような Layer 2 の設定不一致がループ障害に発展しないよう、Type Inconsistency Guard と呼ばれる保護機能が標準で動作しています。

本記事は Cisco IOS XE 17.x(Catalyst 9000 系)以降を前提 に、Inconsistent port type エラーの原因・確認手順・対処方法を整理します。

参考: Cisco – Troubleshoot Spanning Tree PVID- and Type-Inconsistencies
“Type inconsistency—A PVST+ BPDU is received on a non-802.1Q trunk.”
(Type 不整合: PVST+ BPDU が非 802.1Q トランクポートで受信された)
https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24063-pvid-inconsistency-24063.html

この記事でわかること
  • Inconsistent port type エラーの発生メカニズムと意味
  • アクセスポートでタグ付き BPDU が検知される 2 つの原因パターン
  • 不整合ポートを特定する Cisco 公式の確認コマンド
  • 推奨される恒久対処と、最終手段としての BPDU フィルタの使い分け
  • STP 不整合 4 種類(Type/PVID/Root/Loop)の見分け方

エラーの正体: 「Type Inconsistency」

このエラーが発生する際、Cisco スイッチ内部では 「ポートの種類が対向と食い違っている」ことを検知する安全装置 が働いています。

エラーログの読み解き方

表示される 2 行のログは、それぞれ「原因」と「結果」を示しています。

原因のログ

%SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk ...
ログの構成要素意味
Received 802.1Q BPDUタグ付き(802.1Q)の STP 制御フレーム(BPDU)を受信した
on non trunkしかしこのポートはトランクポートとして設定されていない(=アクセスポート)

結果のログ

%SPANTREE-7-BLOCK_PORT_TYPE: Blocking ... Inconsistent port type.
ログの構成要素意味
Inconsistent port typeポートの種類(Access か Trunk か)が対向と一致していない
Blocking安全のため該当ポートを遮断する

スイッチは「自身はアクセスポートとして動作しているが、対向からはトランクポート用のタグ付き BPDU が届いている」という設計上の不一致を検知し、ポートを自動的にブロックしています。

なぜブロックされるのか

STP は、ネットワーク全体の論理トポロジを構築してループを防ぐプロトコルです。両端のポート種別が一致していない場合、本来分離されているべき VLAN が意図せず接続されたり、STP の計算結果が不正確になりループ障害を引き起こす可能性 があります。

そのため、Cisco の PVST+ には危険な接続を検知すると即座にポートをブロックする Type Inconsistency Guard 機能が標準で動作しています。このエラーは、スイッチが設定不一致を早期に検知してネットワークを保護した結果 であり、誤動作ではありません。

自動回復の仕組み

不整合 BPDU の受信が止まると、スイッチは自動的にブロックを解除し、以下のログを出力します。

%SPANTREE-2-UNBLOCK_CONSIST_PORT: Unblocking GigabitEthernet0/1 on VLAN0001. Port consistency restored.

対向機器の設定を修正して不整合 BPDU が止まれば、こちら側のポートはコマンド操作なしで自動的に通信可能な状態に戻ります。設定変更後は数秒〜十数秒の収束時間を待つことが推奨されます。

考えられる 2 つの原因

「アクセスポートにタグ付き BPDU が到達している」という現象は、主に以下の 2 つのパターンで発生します。

原因 1: 対向スイッチとの設定不一致(Access vs Trunk)

最も多いのが、対向スイッチとの設定不一致です。

拠点設定
自拠点(エラー発生側)switchport mode access(アクセスポート)
対向拠点switchport mode trunk(トランクポート)

Cisco の PVST+/RPVST+ では、トランクポートは VLAN ごとにタグが付いた BPDU を送信 します。対向側がトランクとして送信するタグ付き BPDU を、アクセスポート側が受信した瞬間に Type Inconsistency が検知されます。

対向スイッチの設定をテンプレートからコピーした際に、switchport mode trunk が消し忘れられているケースなどが典型的な発生パターンです。

原因 2: 中継機器(ハブ・スイッチ・IP 電話機)による BPDU 透過

対向が PC やルーターのエッジポートだと判断できる場合、間に介在する機器を疑います。

アンマネージドスイッチ/簡易スイッチによる透過

一部のアンマネージドスイッチや簡易スイッチは、受信したタグ付きフレーム(BPDU を含む)を理解せずそのまま転送する 動作をします。経路の先にトランク設定の機器が存在すると、中継機器越しにタグ付き BPDU が到達することになります。MikroTik など他社製スイッチを中継した環境でも、同様の事象が報告されています。

IP 電話機による Voice VLAN BPDU の漏れ

PC ポートと電話ポートを持つ IP 電話機が、Voice VLAN の設定不備によりタグ付き BPDU を PC ポート側に転送してしまうケースもあります。

いずれの場合も、「タグなし通信のみが届くはずの場所にタグ付き BPDU が紛れ込んでいる」 ことが共通の原因です。

まず確認すべきコマンド

エラーログを確認したら、まず以下のコマンドで状況を把握することが推奨されます。

不整合ポートの一覧確認

Cisco IOS/IOS XE には、STP の整合性チェックでブロック中のポートをすべて一覧表示する コマンドが用意されています。

Switch# show spanning-tree inconsistentports

出力例

Name                 Interface                Inconsistency
-------------------- ------------------------ ------------------
VLAN0100             GigabitEthernet0/1       Type Inconsistent

Number of inconsistent ports (segments) in the system : 1

Inconsistency 列の値で、不整合の種類(Type InconsistentPVID InconsistentRoot InconsistentLoop Inconsistent)が判別できます。トラブルシューティング時に最初に実行すべきコマンド として位置付けられます。

参考: Cisco – Troubleshoot Spanning Tree PVID- and Type-Inconsistencies
“To see the list of inconsistent ports, recent Cisco IOS-based STP implementation supports the show spanning-tree inconsistentports command.”
(不整合ポートを確認するため、最近の Cisco IOS ベースの STP 実装は show spanning-tree inconsistentports コマンドをサポートしています)
https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24063-pvid-inconsistency-24063.html

ポートのモード確認

該当ポートが現在どのモード(access/trunk/dynamic)で動作しているかを確認します。

! ポートのスイッチポート設定確認
Switch# show interfaces GigabitEthernet0/1 switchport

! トランク設定の確認
Switch# show interfaces GigabitEthernet0/1 trunk

Operational Mode の値が static accesstrunk かで現在の動作モードが判別できます。意図したモードと異なる場合は、設定の見直しが必要です。

VLAN 単位の STP 詳細確認

該当 VLAN の STP 状態を詳細に確認します。

Switch# show spanning-tree vlan 100 detail
Switch# show spanning-tree interface GigabitEthernet0/1 detail

detail オプションで、ポートロール・ポート状態・BPDU 統計などが確認できます。

STP イベントのデバッグ

リアルタイムで STP の動作を確認したい場合、デバッグコマンドが利用できます。

Switch# debug spanning-tree events

! 確認後はデバッグを停止
Switch# undebug all

本番環境で実行すると CPU 負荷が高まる可能性があるため、検証環境または計画的なメンテナンス時間帯での使用が推奨されます。

対処法 1: 設定を正しく合わせる(推奨)

エラーを解消する最も確実で安全な方法は、対向機器との設定不一致を解消する ことです。アクセスポートとトランクポートが直接接続されている状態は、設計上適切ではありません。

対向スイッチの設定を確認・修正する

多くの場合、原因は対向スイッチの設定漏れです。対向スイッチにアクセスできる場合は、設定を確認しアクセスポートに修正します。

! 対向スイッチでの設定変更例
Switch_B(config)# interface GigabitEthernet0/1
Switch_B(config-if)# switchport mode access
Switch_B(config-if)# switchport access vlan 100

対向側がアクセスポートに変更されると、タグ付き BPDU の送信が止まり、自拠点側のポートも自動的にブロック解除されます(UNBLOCK_CONSIST_PORT ログが出力されます)。

自拠点側を Trunk に変更するケース

その接続が本来トランク(複数 VLAN を通す必要がある接続)として設計されているのであれば、自拠点側のポート設定を Trunk に変更します。

! 自拠点での設定変更例
Switch_A(config)# interface GigabitEthernet0/1
Switch_A(config-if)# switchport trunk encapsulation dot1q
Switch_A(config-if)# switchport mode trunk
Switch_A(config-if)# switchport trunk allowed vlan 100

switchport trunk allowed vlan で許可 VLAN を絞り込むことで、不要な VLAN が伝搬する事態を防ぐことが推奨されます。

設計上の基本は 「両端のポート種別を Access/Trunk のどちらかに合わせる」 ことです。

対処法 2: BPDU フィルタで回避する(最終手段)

対向機器が通信キャリアの装置や他社管理のスイッチで、設定変更を依頼できない状況では、最終手段として BPDU フィルタ を使う回避策があります。

BPDU フィルタの動作

このエラーは「タグ付き BPDU を受信すること」がトリガーとなって発生します。BPDU フィルタを有効にすると、該当ポートの BPDU 送受信が止まるため、Type Inconsistency 検知も発生しなくなります。

参考: Cisco Community – Spanning tree Blocked interface
“bpdufilter on an interface (not globally) is useful if you wish to connect a switch to another switch and the interconnecting ports are in an access mode”
(インターフェイス単位の BPDU フィルタは、スイッチ間接続をアクセスポート構成にしたい場合に有効です)
https://community.cisco.com/t5/switching/spanning-tree-blocked-interface/td-p/3939571

インターフェイス単位での設定

BPDU フィルタはグローバル設定(spanning-tree portfast bpdufilter default)でも有効化できますが、影響範囲が広すぎるためインターフェイス単位での適用が推奨されます

Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# spanning-tree bpdufilter enable

設定後の挙動

  • 該当ポートは BPDU を送信しなくなる(対向に STP 情報を送らない)
  • 受信した BPDU を破棄する(対向からの STP 情報を捨てる)
  • 結果として、スイッチは「BPDU を一切受信していない」と判断し、ポートを Forwarding 状態で維持する

BPDU フィルタの動作モードと注意点

BPDU フィルタには、適用方法によって挙動が異なります。

適用方法動作推奨度
インターフェイス単位(spanning-tree bpdufilter enable該当ポートの BPDU 送受信を完全停止限定的に推奨
グローバル default(PortFast ポート対象)PortFast ポートで BPDU 送信は止めるが、受信時は PortFast を解除して通常 STP 動作非推奨(影響範囲が広い)

BPDU フィルタ使用時のリスク

BPDU フィルタを有効化したポートは STP の計算に参加しなくなる ため、以下のリスクが生じます。

  • 物理的なループ配線(誤配線)が発生してもスイッチが検知できず、ブロードキャストストームに発展する可能性がある
  • 対向機器側の設定変更が起きても、ループ防止の最後の砦として機能しない

BPDU フィルタを使用する場合は、該当ポートが物理的にループを構成しないことを担保できる環境(PC 直結・ルーター直結など)に限定する ことが推奨されます。代替策として、spanning-tree bpduguard enable でループを検知した際に err-disable 化する手法もあるため、要件に応じて使い分けます。

STP 不整合の 4 種類と見分け方

Cisco IOS/IOS XE では、STP 関連の不整合状態は 4 種類に体系化 されています。本記事で扱う Type Inconsistent は、その 1 つです。エラーログだけを見て対処すると、別の不整合タイプを見逃すリスクがあるため、4 種類の特徴と見分け方を整理します。

参考: Cisco – Troubleshoot Spanning Tree PVID- and Type-Inconsistencies
“Cisco IOS software places ports into an inconsistent state so that any misconfigurations do not impact STP and result in a protocol failure, which can ultimately lead to a network outage.”
(Cisco IOS は、設定不備による STP 障害がネットワーク停止に発展することを防ぐため、ポートを不整合状態に配置します)
https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24063-pvid-inconsistency-24063.html

4 種類の不整合タイプ比較

不整合タイプ検出機能主な原因代表的なログ
Type Inconsistent(本記事の対象)PVST+ 整合性チェック(標準動作)アクセス/トランクの設定不一致RECV_1Q_NON_TRUNKBLOCK_PORT_TYPE
PVID InconsistentPVST+ 整合性チェック(標準動作)両端の Native VLAN が異なるRX_1QPVIDERRRX_BLKPORTPVIDTX_BLKPORTPVID
Root InconsistentRoot Guard(明示有効化)想定外の上位 BPDU を受信ROOTGUARD_BLOCKROOTGUARD_UNBLOCK
Loop InconsistentLoop Guard(明示有効化)非指定ポートで BPDU 受信が途絶LOOPGUARD_BLOCKLOOPGUARD_UNBLOCK

show spanning-tree inconsistentportsInconsistency 列で、いずれの状態かが判別できます。

Type Inconsistent と PVID Inconsistent の違い

両者ともに PVST+ の標準機能として有効化されており、ログメッセージも似ているため混同しやすい点に注意が必要です。

Type Inconsistent

「ポートの種別(Access か Trunk か)」が両端で食い違っている 場合に発生します。本記事の主題です。

%SPANTREE-7-RECV_1Q_NON_TRUNK: Received 802.1Q BPDU on non trunk ...
%SPANTREE-7-BLOCK_PORT_TYPE: Blocking ... Inconsistent port type.

PVID Inconsistent(参考)

両端ともトランクポート設定だが、Native VLAN(タグなしフレームを乗せる VLAN)が両端で異なる 場合に発生します。

%SPANTREE-2-RX_1QPVIDERR: Rcved pvid_inc BPDU on 1Q port 3/25 vlan 1
%SPANTREE-2-RX_BLKPORTPVID: Block 3/25 on rcving vlan 1 for inc peer vlan 10
%SPANTREE-2-TX_BLKPORTPVID: Block 3/25 on xmtting vlan 10 for inc peer vlan

例えば自拠点側の Native VLAN が 1、対向の Native VLAN が 10 という場合、両 VLAN(1 と 10)がブロックされます。両端のトランクポートで switchport trunk native vlan を一致させる ことで解消します。

Root Inconsistent と Loop Inconsistent

これらは標準では無効で、意図的に有効化した場合のみ動作 する保護機能です。

  • Root Guard: 信頼しないポートからの上位 BPDU 受信時にブロックし、Root Bridge の入れ替わりを防止する機能。アクセス層のポートに有効化することが多い
  • Loop Guard: 非指定ポートで BPDU 受信が途絶した際に、Forwarding への遷移を防ぐ機能。冗長構成の片リンク障害時の意図しないループを防止する

Root Inconsistent と Loop Inconsistent は Type/PVID と異なり、明示的に設定しない限り発生しない 点が見分けのポイントです。

よくある誤解と運用上の注意

Inconsistent port type 関連のトラブルシュートで踏みやすい誤解と、運用設計時の注意点を整理します。

PortFast + BPDU Guard との混同に注意

PortFast + BPDU Guard が有効化されたポートで BPDU を受信すると、ポートが err-disable 状態になり、ログには別のエラーが出力されます。これは Type Inconsistency とは異なる挙動のため、混同しやすい点です。

機能BPDU 受信時の挙動ログ
PVST+ 標準(Type Inconsistency Guard)ポートを Inconsistent 状態でブロック(不整合 BPDU が止まれば自動回復)RECV_1Q_NON_TRUNKBLOCK_PORT_TYPE
PortFast + BPDU Guardポートを err-disable 状態にシャットダウン(手動 or errdisable recovery で復旧)BPDUGUARD_ERR_DISABLE

err-disable 状態のポートを復旧 するには、以下のいずれかの操作が必要です。

! 手動復旧
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# shutdown
Switch(config-if)# no shutdown

! または自動復旧の有効化
Switch(config)# errdisable recovery cause bpduguard
Switch(config)# errdisable recovery interval 300

MST モードでの挙動の違い

本記事で扱う Type Inconsistency は、Cisco の PVST+/RPVST+ 固有の検出機能 です。MST(Multiple Spanning Tree)モードに切り替えている環境では、PVST+ BPDU の生成自体が変わるため、同じエラーが発生しない場合があります。

現在の動作モードは以下のコマンドで確認できます。

Switch# show spanning-tree summary | include mode

Switch is in pvst mode または Switch is in rapid-pvst mode の場合、本記事の内容が直接適用されます。mst mode の場合は、対向との MST リージョン設定(インスタンス・VLAN マッピング)の整合性を別途確認する必要があります。

IEEE 標準 STP 機器との混在

対向が Cisco 以外の汎用 STP 実装(IEEE 802.1D/802.1w) の機器である場合、PVST+ BPDU を理解しないため、Type Inconsistency が発生しないケースもあります。本エラーは Cisco スイッチ同士、または PVST+ をサポートする機器との接続で発生する現象である点を理解しておくことが推奨されます。

spanning-tree vlan disable は推奨されない

エラーログを止めるために、該当 VLAN の STP を無効化する(no spanning-tree vlan <id> など)という対処を見かけることがありますが、これは STP 自体の保護機能を完全に失う設定であり、誤配線によるループを検知できなくなる ため、本番環境での使用は推奨されません。

Inconsistent port type の正しい対処は 設定不一致を解消すること であり、STP 機能自体を停止する方向ではありません。

BPDU フィルタとループの設計責任

BPDU フィルタを使う最終手段(前述の対処法 2)を採用する場合、STP によるループ防止の責任を運用者側に移譲することになります。以下の状況以外での適用は推奨されません。

  • 該当ポートに接続される機器が単一機器(PC・ルーターなど)であり、誤って多段接続される可能性がない
  • 物理的にループを構成しないことが運用ルールで担保されている
  • 監視システムでブロードキャストストームを早期検知できる体制がある

社内ネットワークでの長期運用には不向きで、通信キャリアの装置との接続など、対向の設定変更が物理的に不可能なケースに限定 することが望ましい使い方です。

まとめ

本記事では、Cisco スイッチで発生する Inconsistent port typeRECV_1Q_NON_TRUNK エラーの原因と対処を解説しました。

  • 本エラーは PVST+ の Type Inconsistency Guard がアクセス/トランクの不一致を検知した結果
  • 主な原因は 対向との Access vs Trunk 設定不一致、または中継機器による BPDU 透過
  • 確認の起点は show spanning-tree inconsistentportsshow interfaces switchportshow interfaces trunk
  • 推奨対処は 両端の設定を Access か Trunk に揃える こと。
  • 不整合 BPDU が止まれば、UNBLOCK_CONSIST_PORT ログとともに自動的にブロック解除される。
  • BPDU フィルタは最終手段。STP 保護機能を失うリスク を理解した上で限定的に使用する。
  • STP 不整合は Type/PVID/Root/Loop の 4 種類 があり、ログとコマンド出力で見分ける。

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次