はじめに
「何も設定変更していないのに、急に特定のポートが通信できなくなった……」
慌てて 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.「RECV_1Q_NON_TRUNK……? トランクじゃないのに受け取った?」
このエラーは、STP(スパニングツリープロトコル)の整合性チェック機能が働き、安全のためにポートを自動的に遮断(ブロック)したことを示しています。
本記事では、アクセスポートでこの「謎のブロック」が発生する原因と、「設定を正す恒久対処」から「どうしても通信させたい時の回避策」まで、2つのアプローチで解説します。
- エラー
RECV_1Q_NON_TRUNKの正体と発生メカニズム - なぜアクセスポートで「タグ付きフレーム」が検知されるのか?
- 推奨される解決策と、最終手段(BPDUフィルタ)の使い方
エラーの正体:「アクセスポートなのにタグが来たぞ?」
このエラーが発生したとき、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(スパニングツリープロトコル)において、この不整合は致命的です。
STP は、ネットワーク全体の地図を作ってループ(円環)を防ぐプロトコルです。 もし、片方が「Access(特定のVLAN)」、もう片方が「Trunk(全 VLAN)」という状態で繋がってしまうと、本来混ざってはいけない VLAN 同士が繋がってしまったり、STP の計算が狂って大規模なループ障害を引き起こすリスクがあります。
そのため、Cisco の STP(PVST+)には、こうした危険な接続を検知すると即座にポートをブロックして被害を防ぐ機能(Type Inconsistency Guard)が備わっています。 このエラーは、スイッチがネットワークを守ってくれた証拠なのです。

不整合という理由だけで止めているわけじゃなくて、「このままだとループしてネットワーク全体が死ぬから、食い止めたぞ」というファインプレーになります。
考えられる2つの原因
「アクセスポートなのにタグ付き BPDU が来た」という現象は、主に以下の2つのパターンのどちらかで発生します。
原因① 単純な設定ミス(Access vs Trunk)
最も多いのが、対向スイッチとの設定不一致です。
- 自拠点(エラーが出ている側):
switchport mode access(アクセスポート) - 対向拠点(相手側):
switchport mode trunk(トランクポート)
Cisco 独自の STP(PVST+)では、トランクポートは VLAN ごとにタグが付いた BPDU を送信します。 一方、アクセスポートは「タグなし」のフレームしか期待していません。 そのため、対向スイッチが「トランクだと思って」送ってきたタグ付きの挨拶状(BPDU)を受け取った瞬間、「えっ、タグが付いてる!? 設定と違う!」と判断してポートを閉じてしまうのです。


原因② 間にいるハブやスイッチの仕様
「対向は間違いなく PC(またはルータ)のエッジポートだよ?」という場合に疑われるのがこのケースです。 間に 「アンマネージドスイッチ(安価なハブ)」 や 「IP 電話機(VoIP Phone)」 が挟まっていませんか?
- 透過してしまうハブ
-
一部のスイッチングハブは、受信したタグ付きフレーム(BPDU含む)を理解せず、そのまま素通り(透過)させてしまうものがあります。その奥にトランク設定の機器がいると、ハブ越しにタグ付き BPDU が届いてしまいます。
- IP 電話機
-
PC 用ポートと電話用ポートを持つ IP 電話機などが、Voice VLAN の設定ミスなどでタグ付き BPDU を漏らしているケースもあります。
いずれにせよ、「ここにはタグなししか来ないはず」という場所に「タグ付き」が紛れ込んできたことが原因です。
対処法① 設定を正しく合わせる(推奨)
エラーを解消するための最も確実で安全な方法は、対向機器との設定の不整合を解消することです。 「アクセスポート」と「トランクポート」が繋がっている状態は、設計として正しくありません。どちらかに合わせましょう。
対向スイッチの設定を確認・修正する
多くの場合、原因は「対向スイッチの設定漏れ」です。 例えば、対向スイッチのポート設定を他のポートからコピーした際に、switchport mode trunk のまま残ってしまっているケースなどが考えられます。
対向スイッチにログインできる場合は、設定を確認し、アクセスポートに修正してください。
(対向スイッチでの設定変更例)
Switch_B(config)# interface GigabitEthernet0/1
Switch_B(config-if)# switchport mode access <-- TrunkをやめてAccessにする
Switch_B(config-if)# switchport access vlan 100対向側をアクセスポートに変更すれば、タグ付き BPDU は送信されなくなり、こちら側のポートのブロックも自動的に解除されます。
逆に、こちら側を Trunk にする場合
もし、その接続が本当にトランク(複数の VLAN を通す必要がある接続)であるならば、エラーが出ている自拠点のポート設定を Trunk に変更してください。
(自拠点での設定変更例)
Switch_A(config)# interface GigabitEthernet0/1
Switch_A(config-if)# switchport trunk encapsulation dot1q
Switch_A(config-if)# switchport mode trunk <-- こちらもTrunkに合わせる


要は、「Access なのか Trunk なのか、両端で設定をしっかり合わせる」。これがネットワークの鉄則です。
対処法② BPDUフィルタで無視する(最終手段)
「対向スイッチの設定ミスなのは分かった。でも、相手は通信キャリアの機器や、他社管理のスイッチで、設定変更を頼めない!」
そんな八方塞がりな状況でのみ許される「回避策」が、BPDU フィルタの使用です。
どうしても対向の設定を変えられない場合
このエラーは「タグ付き BPDU を受信してしまうこと」がトリガーです。 ならば、「受信した BPDU を見なかったことにする(フィルタリングする)」ことで、強制的にポートのブロックを回避できます。
これはあくまで「臭いものに蓋をする」対処療法であり、根本解決ではありませんが、サービス継続のためにやむを得ない場合の最終手段となります。
インターフェース単位での設定コマンド
BPDU フィルタはスイッチ全体で設定することも可能ですが、影響範囲が広すぎるため非推奨です。 必ず「対象のインターフェースのみ」で有効化してください。
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# spanning-tree bpdufilter enableこのコマンドを入れると、そのポートは以下の挙動になります。
- BPDU を送信しなくなる(相手に STP の情報を送らない)。
- 受信した BPDU を無視する(相手からの STP 情報を捨てる)。
結果として、スイッチは「対向から何も来ていない」と判断し、ポートをアップ状態(Forwarding)に維持します。
【重要】BPDU フィルタのリスク
このコマンドを使用する際は、以下のリスクを絶対に理解しておく必要があります。



結果として、ブロードキャストストームが発生し、ネットワーク全体がダウンする可能性があります。 「ループ構成になっていないこと」を物理的に担保できる場合のみ、細心の注意を払って使用してください。
まとめ
本記事では、Cisco スイッチで発生する RECV_1Q_NON_TRUNK エラーについて解説しました。
- 原因
-
自拠点は「Access」、対向は「Trunk」という設定の食い違い(不整合)
- 推奨対策
-
「設定を合わせる」。対向を Access にするか、自拠点を Trunk にする。
- 最終手段
-
どうしても変更できない場合のみ、「BPDU フィルタ」で回避する。ただし、ループ検知が無効になるリスクを理解すること。
以上、最後までお読みいただきありがとうございました。








