変更要約: 初版
3.1802.1Qトランキングのトラブルシュート
802.1QタグによるVLAN多重化の仕組みと、ネイティブVLAN(無タグ)の扱い、DTPによる動的トランク(dynamic auto/dynamic desirable)と静的トランクの違い、許可VLANリストの刈り込みを学び、「トランクが上がらない」「特定VLANだけ通らない」「VLANリークが起きる」といった症状から原因を切り分ける手順を身につけます。
ENCORのインフラストラクチャ領域は配点30%の最大ドメインで、その入り口がトランキングです。実務でも「新しいVLANを作ったのに片方の拠点から見えない」「なぜかVLAN10のフレームがVLAN99に流れ込んでいる」といった障害は日常的に起こり、いずれもリンクの両端の設定を突き合わせないと原因が見えないという共通点があります。この節では、show interfaces trunk と show interfaces switchport の出力から、トランクが成立しているか/どのVLANが実際に転送されているか/ネイティブVLANが一致しているかを読み取り、症状ごとに疑う場所を決められるようにします。
3.1.1802.1Qタグとネイティブ VLAN
- 802.1Qはイーサネットフレームの送信元MACアドレスの直後に4バイトのタグを挿入し、その中の12ビットのVLAN ID(1〜4094)でフレームがどのVLANに属するかを示す。タグを付けたままフレームを運ぶリンクがトランクで、1本の物理リンクで複数VLANを多重化できる。タグを付けずに1つのVLANだけを運ぶリンクがアクセスポートである。
- ネイティブVLANはトランク上でタグを付けずに送出される唯一のVLANで、既定はVLAN 1。受信側はタグなしフレームを自分のネイティブVLANに属するものとして扱うため、両端のネイティブVLANが食い違うと、片側のVLAN Aのフレームが相手側ではVLAN Bとして扱われる=VLANリーク(VLANホッピング)が生じる。設定は
switchport trunk native vlan 99のように明示する。 - ネイティブVLAN不一致はリンクを落とさず通信が中途半端に成立したまま漏れるのが厄介だが、CDPが有効なら
%CDP-4-NATIVE_VLAN_MISMATCHのsyslogが出る。セキュリティ上はネイティブVLANを未使用のVLANに変更し、switchport trunk native vlan tagで全VLANをタグ付けする運用が推奨される。
3.1.2DTPと静的トランクの組み合わせ
- DTP(Dynamic Trunking Protocol)はCisco独自のプロトコルで、隣接ポートと交渉してトランクにするかアクセスにするかを自動決定する。モードは
switchport mode dynamic desirable(積極的にトランクを提案する)とswitchport mode dynamic auto(提案されれば受け入れるだけ)の2つ。switchport mode trunkは静的トランク、switchport mode accessは静的アクセスである。 - 成立表を暗記ではなく「誰かが積極的に提案しなければトランクにならない」という原理で覚える。
desirable+auto=トランク、desirable+desirable=トランク、auto+auto=アクセスのまま(両者とも待つだけなので提案が発生しない)。trunk+auto/desirable=トランク。trunk+accessは不整合でトランクが成立せずVLANが通らない。 - 本番設計ではDTPを使わず静的に固定するのが定石で、両端に
switchport mode trunkとswitchport nonegotiate(DTPフレーム送出を停止)を設定する。アクセスポート側ではswitchport mode accessを明示し、DTP交渉による意図しないトランク化=VLANホッピング攻撃の足がかりを塞ぐ。
3.1.3許可VLANリストと転送の実態
- トランクは既定で全VLAN(1-4094)を許可するが、
switchport trunk allowed vlan 10,20,30で絞り込める。追加は必ずswitchport trunk allowed vlan add 40を使う——addを忘れるとリストを丸ごと置換してしまい、それまで通っていたVLANが一斉に落ちるという典型的な事故になる。 show interfaces trunkは3つのリストを段階的に表示する:Vlans allowed on trunk(設定上の許可)→Vlans allowed and active in management domain(かつVLANがスイッチ上に存在し有効)→Vlans in spanning tree forwarding state and not pruned(かつSTPでフォワーディング)。特定VLANだけ通らない症状は、この3段のどこで落ちたかを見れば原因が特定できる。- つまり「許可リストに入っているのに通らない」なら、VLANがスイッチ上に作成されていない/shutdownされている(2段目で消える)か、STPでブロッキングになっている/VTPプルーニングで刈られている(3段目で消える)かのどちらかである。VLANの存在は
show vlan briefで、STPの状態はshow spanning-tree vlan 10で確認する。
「auto+autoはトランクにならない(提案者がいない)」「ネイティブVLAN不一致はリンクを落とさずVLANリークを起こす」「allowed vlan は add を忘れると全置換」「show interfaces trunk の3段リストで落ちた段=原因の切り分け」が頻出です。「トランクは上がっているのに特定VLANだけ通らない」という症状文が出たら、まずVLANの存在→許可リスト→STPの状態の順に確認する流れを思い出してください。
あなたはキャンパスのディストリビューションスイッチDSW1とアクセススイッチASW1の間の障害を調査しています。症状は「VLAN 10とVLAN 20の端末は通信できるが、新設したVLAN 30の端末だけがゲートウェイに到達できない」です。まずASW1で show interfaces trunk を実行すると、Gi1/0/1 のModeは on、Statusは trunking でトランク自体は成立しており、Vlans allowed on trunk には 10,20,30 が並んでいます。ここで「許可されているから設定は正しい」と結論づけるのが部分的にしか正しくない判断です。同じ出力の下段、Vlans allowed and active in management domain を見ると 10,20 しかなく、30が消えています。これは許可リストの問題ではなく、ASW1上にVLAN 30そのものが存在しないことを意味します。show vlan brief で確認すると案の定VLAN 30がなく、DSW1側では作成済みだったため片側だけ設定が入った状態でした。vlan 30 を作成すると2段目に30が現れ、続いて3段目のVlans in spanning tree forwarding state and not pruned にも30が入って疎通が回復します。もしここで3段目にだけ30が現れないなら、次に疑うのはSTPがそのVLANでポートをブロッキングしているかVTPプルーニングで刈られているかで、show spanning-tree vlan 30 に進みます。一方、仮に症状が「VLAN 30が通らない」ではなく「VLAN 1の端末とVLAN 99の端末が互いに見えてしまう」であれば、これは許可リストの問題ではなくネイティブVLAN不一致の疑いが濃く、show interfaces trunk の Native vlan 列を両端で突き合わせるべきです。症状の種類(全滅/特定VLANのみ/意図しない疎通)で見る場所が変わる——この対応づけがトランク障害の切り分けの核心です。
| 症状 | 第一に疑う原因 | 確認コマンド |
|---|---|---|
| トランクが上がらず全VLAN不通 | DTPモード不整合(auto+auto、trunk+access) | `show interfaces switchport`(Administrative/Operational Mode) |
| 特定VLANだけ不通 | 許可VLANリストから除外/VLAN未作成 | `show interfaces trunk`+`show vlan brief` |
| 許可済みなのに転送されない | STPブロッキング/VTPプルーニング | `show spanning-tree vlan <id>` |
| 別VLAN同士が意図せず疎通 | ネイティブVLAN不一致(VLANリーク) | `show interfaces trunk` の Native vlan/CDPログ |
| 追加設定後に全VLANが一斉停止 | `add` 忘れによる許可リスト全置換 | `show running-config interface <if>` |
ひっかけ: 「両端を switchport mode dynamic auto にしておけば安全に自動でトランクになる」は誤りです——auto は提案を受けるだけなので、両端 auto では永久にアクセスポートのままです。また「ネイティブVLANが不一致ならトランクがダウンするのですぐ気づける」も誤り=リンクは上がったままフレームが別VLANに漏れるため、show interfaces trunk の突き合わせかCDPの NATIVE_VLAN_MISMATCH ログでしか気づけません。
3.1.4この節のまとめ
- 802.1Qは4バイトタグのVLAN IDで多重化し、ネイティブVLANだけが無タグ。両端不一致はリンクを落とさずVLANリークを起こす
- DTPは「積極的な提案者がいるか」で決まる=
auto+autoはトランクにならない。本番はswitchport mode trunk+nonegotiateで静的固定 show interfaces trunkの3段リスト(許可→有効→フォワーディング)で落ちた段が原因層。allowed vlanのadd忘れは全置換事故
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. アクセススイッチASW1とディストリビューションスイッチDSW1の間でVLAN 10と20は疎通するが、新設のVLAN 30だけがゲートウェイに到達しない。ASW1の `show interfaces trunk` では Vlans allowed on trunk に `10,20,30` が表示されるが、Vlans allowed and active in management domain には `10,20` しか表示されない。原因として最も可能性が高いものはどれか。
Q2. 2台のCatalystスイッチを接続したが、両端のポートが `switchport mode dynamic auto` に設定されているためトランクが成立せずアクセスポートのままである。既存の通信を止めずにトランクを成立させる対処として最も適切なものはどれか。
Q3. トランクリンクは `trunking` 状態で安定しているが、VLAN 1のホストからVLAN 99のホストへ、ルーティングを介さずに直接フレームが届いてしまうことが判明した。CDPのsyslogには `%CDP-4-NATIVE_VLAN_MISMATCH` が記録されている。次に取るべき対応として最も適切なものはどれか。

