HOME > コンテンツリスト > ラボ・シナリオ for CCNA > [ < 前へ 次へ > ]

DTPを理解する

多くの場合、スイッチとスイッチはトランクリンクで接続し、スイッチとPCはアクセスリンクで接続します。トランクリンクで接続されたスイッチポートはトランクポート、アクセスリンクで接続されたスイッチポートはアクセスポートと呼ばれます。



Catalyst スイッチは、接続する相手ポートの設定に応じて、自動的にポートをトランクポートにしたり、アクセスポートにしたりする Cisco 独自の DTP (Dynamic Trunk Protocol) の機能を持っています。

ネットワーク構成図

    PC-A と SW-B の電源はまだ入れないでください。
  1. SW-A に SW-A というホスト名を付け、sh int f0/2 switchport コマンドを実行しなさい。
  2. < SW-A >
    Switch# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    Switch(config)# host SW-A
    SW-A(config)# ^Z
    SW-A#
    
    < SW-A >
    SW-A# sh int f0/2 switchport
    Name: Fa0/2
    Switchport: Enabled
    Administrative Mode: dynamic auto             ← 設定モード
    Operational Mode: down                        ← 動作モード
    Administrative Trunking Encapsulation: dot1q  ← トランキングカプセル化方式
    Negotiation of Trunking: On                   ← DTP ネゴシエーション有効/無効
    Access Mode VLAN: 1 (default)                 ← 所属している VLAN
    Trunking Native Mode VLAN: 1 (default)        ← ネイティブ VLAN
    Administrative Native VLAN tagging: enabled
    Voice VLAN: none
    Administrative private-vlan host-association: none
    Administrative private-vlan mapping: none
    Administrative private-vlan trunk native VLAN: none
    Administrative private-vlan trunk Native VLAN tagging: enabled
    Administrative private-vlan trunk encapsulation: dot1q
    Administrative private-vlan trunk normal VLANs: none
    Administrative private-vlan trunk associations: none
    Administrative private-vlan trunk mappings: none
    Operational private-vlan: none
    Trunking VLANs Enabled: ALL
    Pruning VLANs Enabled: 2-1001
    Capture Mode Disabled
    Capture VLANs Allowed: ALL
    
    Protected: false
    Unknown unicast blocked: disabled
    Unknown multicast blocked: disabled
    Appliance trust: none
    SW-A#
    
    sh int f0/2 switchport コマンドでは、スイッチポートの設定モードや動作モード、トランキングカプセル化方式などを表示します。

    ■ Administrative Mode: dynamic auto
    Administrative Mode は管理者が設定したモードで、次の4つのモードで構成することができます。
    設定モードDTPの送信動作モード
    accessしない対向ポートの設定モードによらず、ポートはアクセスポートになります。
    trunkする対向ポートの設定モードによらず、ポートはトランクポートになります。
    dynamic desirableする対向ポートの設定モードが trunk、desirable、auto ならばポートはトランクポートになり、access ならばアクセスポートになります。
    dynamic autoしない対向ポートの設定モードが trunk または desirable ならばポートはトランクポートになり、それ以外ならアクセスポートになります。
    デフォルトの動作モードは機種ごとに異なり、Catalyst 2960 は dynamic auto ですが、Catalyst 2940/Catalyst 2950 は dynamic desirable です。

    ■ Operational Mode: down
    Operational Mode は、実際の動作モードです。設定モード (Administrative Mode) と対向ポートの設定により動作モードは決まります。
    動作モード説明
    static accessアクセスポートとして動作しています
    Trunkトランクポートとして動作しています
    Downスイッチポートがダウンしています

    対抗スイッチポートの組み合わせによる動作モード
     accesstrunkdynamic desirabledynamic auto
    accessstatic access非推奨static accessstatic access
    trunk非推奨TrunkTrunkTrunk
    dynamic desirablestatic accessTrunkTrunkTrunk
    dynamic autostatic accessTrunkTrunkstatic access
    非推奨になっている access と trunk の組み合わせは、ネイティブ VLAN が一致している場合にその VLAN のみが通信可能というイレギュラーなもので、基本的に設定してはいけない組み合わせです。

    ■ Administrative Trunking Encapsulation: dot1q
    Administrative Trunking Encapsulation はトランキングカプセル化方式ですが、Catalyst 2940/2950/2960 は dot1q しかサポートしていないので、dot1q 固定です。dot1q は IEEE802.1q のことです。ISL をサポートしている Catalyst スイッチで、トランキングカプセル化方式に ISL を使用している場合は isl と表示されます。

    ■ Negotiation of Trunking: On
    DTP ネゴシエーションの有効/無効の状態です。デフォルトは有効。
    対向ポートが DTP をサポートしていない場合やネゴシエーションさせたくない場合に、switchport nonegotiate コマンドで無効にします。ただし、dynamic desirable と dynamic auto の設定では DTP は無効にできませんので、スイッチポートの設定モードを予め access または trunk に設定しておく必要があります。

    ■ Access Mode VLAN: 1 (default)
    Access Mode VLAN はこのスイッチポートが所属している VLAN とその VLAN 名です。デフォルトは VLAN1 。

    ■ Trunking Native Mode VLAN: 1 (default)
    Trunking Native Mode VLAN はこのスイッチポートのネイティブ VLAN です。デフォルトは VLAN1 。
    ネイティブ VLAN はスイッチポート毎に設定可能ですが、対向ポートのネイティブ VLAN と合わせておく必要があります。
  3. PC-A の電源を入れなさい。

  4. SW-Aで、再度 sh int f0/2 switchport | include Mode コマンドを実行しなさい。
  5. < SW-A >
    SW-A# sh int f0/2 sw | include Mode:
    Administrative Mode: dynamic auto
    Operational Mode: static access
    SW-A#
    
    SW-A の F0/2 に接続している PC-A の電源が入りイーサネットポートがリンクアップしたので、Operational Mode が down から static access に変わりました。SW-Aの F0/2 の Administrative Mode は (Catalyst 2960 の) デフォルトの dynamic auto ですが、PC-A は DTP をサポートしていない (DTP を送信しない) ため、SW-A の F0/2 は DTP の受信ができず、Operational Mode は static access (アクセスポート) になります。

    trunkdynamic desirableaccessdynamic auto
    DTP 送信するDTP 送信しない
    dynamic autoTrunkTrunkstatic accessstatic access
  6. SW-Aで、sh int f0/8 switchport コマンドを実行しなさい。
  7. < SW-A >
    SW-A# sh int f0/8 switchport
    Name: Fa0/8
    Switchport: Enabled
    Administrative Mode: dynamic auto
    Operational Mode: down
    Administrative Trunking Encapsulation: dot1q
    Negotiation of Trunking: On
    Access Mode VLAN: 1 (default)
    Trunking Native Mode VLAN: 1 (default)
    Administrative Native VLAN tagging: enabled
    Voice VLAN: none
    Administrative private-vlan host-association: none
    Administrative private-vlan mapping: none
    Administrative private-vlan trunk native VLAN: none
    Administrative private-vlan trunk Native VLAN tagging: enabled
    Administrative private-vlan trunk encapsulation: dot1q
    Administrative private-vlan trunk normal VLANs: none
    Administrative private-vlan trunk associations: none
    Administrative private-vlan trunk mappings: none
    Operational private-vlan: none
    Trunking VLANs Enabled: ALL
    Pruning VLANs Enabled: 2-1001
    Capture Mode Disabled
    Capture VLANs Allowed: ALL
    
    Protected: false
    Unknown unicast blocked: disabled
    Unknown multicast blocked: disabled
    Appliance trust: none
    SW-A#
    
    SW-A の F0/8 と接続している SW-B の電源がまだ入っていないため、Operational Mode は down です。
  8. SW-B の電源を入れなさい。

  9. SW-Aで、再度 sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  10. < SW-A >
    SW-A# sh int f0/8 sw | include Mode:
    Administrative Mode: dynamic auto
    Operational Mode: static access
    SW-A#
    
    PC-A との接続ポート F0/2 と同じく Operational Mode は static access です。
  11. SW-B に SW-B というホスト名を付け、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  12. < SW-B >
    Switch# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    Switch(config)# host SW-B
    SW-B(config)# ^Z
    SW-B#
    
    < SW-B >
    SW-B# sh int f0/8 sw | include Mode:
    Administrative Mode: dynamic auto
    Operational Mode: static access
    SW-B#
    
    SW-A の F0/8 と SW-B の F0/8 の Administrative Mode は両方とも dynamic auto です。この場合、Operational Mode は static access になります。

    trunkdynamic desirableaccessdynamic auto
    DTP 送信するDTP 送信しない
    dynamic autoTrunkTrunkstatic accessstatic access

    このように dynamic auto がデフォルトの Catalyst 2960 スイッチ同士を接続すると、その接続はアクセスリンクになります。Catalyst 2940/2950 では dynamic desirable がデフォルトだったため、Catalyst 2950 スイッチ同士を接続すると、その接続はトランクリンクになりました。
  13. SW-B の F0/8 をトランクポートに設定しなさい。
  14. < SW-B >
    SW-B# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    SW-B(config)# int f0/8
    SW-B(config-if)# switchport mode trunk
    SW-B(config-if)#
    
  15. SW-B で、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  16. < SW-B >
    SW-B(config-if)# do sh int f0/8 sw | include Mode:
    Administrative Mode: trunk
    Operational Mode: trunk
    SW-B(config-if)#
    
    設定モードが trunk で、動作モードも trunk です。
  17. SW-Aで、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  18. < SW-A >
    SW-A# sh int f0/8 sw | include Mode:
    Administrative Mode: dynamic auto
    Operational Mode: trunk
    SW-A#
    
    SW-B の F0/8 をトランクポートに設定したので、SW-A の F0/8 の Operational Mode も trunk になりました。

    trunkdynamic desirableaccessdynamic auto
    DTP 送信するDTP 送信しない
    dynamic autoTrunkTrunkstatic accessstatic access
  19. SW-B の F0/8 を dynamic desirable に設定しなさい。
  20. < SW-B >
    SW-B(config-if)# switchport mode dynamic desirable
    SW-B(config-if)#
    
  21. SW-B で、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  22. < SW-B >
    SW-B(config-if)# do sh int f0/8 sw | include Mode:
    Administrative Mode: dynamic desirable
    Operational Mode: trunk
    SW-B(config-if)#
    
    設定モードが dynamic desirable で、動作モードは trunk です。
  23. SW-Aで、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  24. < SW-A >
    SW-A# sh int f0/8 sw | include Mode:
    Administrative Mode: dynamic auto
    Operational Mode: trunk
    SW-A#
    
    SW-B の F0/8 を dynamic desirable に設定したので、SW-A の F0/8 の Operational Mode が trunk になりました。

    trunkdynamic desirableaccessdynamic auto
    DTP 送信するDTP 送信しない
    dynamic autoTrunkTrunkstatic accessstatic access
  25. SW-B の F0/8 をアクセスポートに設定しなさい。
  26. < SW-B >
    SW-B(config-if)# switchport mode access
    SW-B(config-if)#
    
  27. SW-B で、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  28. < SW-B >
    SW-B(config-if)# do sh int f0/8 sw | include Mode:
    Administrative Mode: static access
    Operational Mode: static access
    SW-B(config-if)#
    
    設定モードが static access で、動作モードも static access です。
  29. SW-Aで、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  30. < SW-A >
    SW-A# sh int f0/8 sw | include Mode:
    Administrative Mode: dynamic auto
    Operational Mode: static access
    SW-A#
    
    SW-B の F0/8 をアクセスポートに設定したので、SW-B の F0/8 から DTP が送信されず、dynamic auto に設定されている SW-A の F0/8 は DTP の受信がないため、Operational Mode を static access にして動作します。
    これが DTP による動作です。

    trunkdynamic desirableaccessdynamic auto
    DTP 送信するDTP 送信しない
    dynamic autoTrunkTrunkstatic accessstatic access

  31. SW-B の F0/8 で switchport nonegotiate コマンドを実行しなさい。
  32. < SW-B >
    SW-B(config-if)# switchport nonegotiate
    SW-B(config-if)#
    
    switchport nonegotiate は、そのポートからの DTP ネゴシエーションフレームの送信を停止するためのコマンドで、明示的にアクセスポートかトランクポートに設定されたインターフェイスでしか実行できません。明示的にとは、そのポートで switchport mode access か switchport mode trunk コマンドが実行されているという意味です。 SW-B の F0/8 は現在アクセスポートに設定されています。
  33. SW-B で、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  34. < SW-B >
    SW-B(config-if)# do sh int f0/8 sw | include Mode:
    Administrative Mode: static access
    Operational Mode: static access
    SW-B(config-if)#
    
    設定モードが static access で、動作モードも static access です。
  35. SW-Aで、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  36. < SW-A >
    SW-A# sh int f0/8 sw | include Mode:
    Administrative Mode: dynamic auto
    Operational Mode: static access
    SW-A#
    
    SW-B の F0/8 から DTP が送信されず、dynamic auto に設定されている SW-A の F0/8 は DTP の受信がないため、Operational Mode を static access にして動作します。ただし、switchport mode access コマンドでアクセスポートに設定済みの SW-B の F0/8 からはもともと DTP は送信されませんので、SW-B の F0/8 で switchport nonegotiate コマンドを実行する意味はありません。
  37. SW-B の F0/8 をトランクポートに設定しなさい。
  38. < SW-B >
    SW-B(config-if)# switchport mode trunk
    SW-B(config-if)#
    
    SW-B の F0/8 は switchport nonegotiate が設定されたままです。そのため switchport mode trunk でトランクポートに設定しても、そのポートからは DTP ネゴシエーションフレームは送信されません。
  39. SW-B で、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  40. < SW-B >
    SW-B(config-if)# do sh int f0/8 sw | include Mode:
    Administrative Mode: trunk
    Operational Mode: trunk
    SW-B(config-if)#
    
    設定モードが trunk で、動作モードも trunk です。
  41. SW-Aで、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  42. < SW-A >
    SW-A# sh int f0/8 sw | include Mode:
    Administrative Mode: dynamic auto
    Operational Mode: static access
    SW-A#
    
    対抗ポート (SW-B の F0/8) から DTP が送られてこないため、SW-A は F0/8 の Operational Mode を static access にして動作します。このため、直接接続している SW-B の F0/8 と SW-A の F0/8 で、Operational Mode の不一致が発生します。
  43. SW-A の F0/8 をトランクポートに設定し、switchport nonegotiate コマンドを実行しなさい。
  44. < SW-A >
    SW-A# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    SW-A(config)# int f0/8
    SW-A(config-if)# switchport mode trunk
    SW-A(config-if)# switchport nonegotiate
    SW-A(config-if)# ^Z
    SW-A#
    
  45. SW-B で、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  46. < SW-B >
    SW-B(config-if)# do sh int f0/8 sw | include Mode:
    Administrative Mode: trunk
    Operational Mode: trunk
    SW-B(config-if)#
    
    設定モードが trunk で、動作モードも trunk です。
  47. SW-Aで、sh int f0/8 switchport | include Mode コマンドを実行しなさい。
  48. < SW-A >
    SW-A# sh int f0/8 sw | include Mode:
    Administrative Mode: trunk
    Operational Mode: trunk
    SW-A#
    
    このように Catalyst スイッチ同士に接続に switchport nonegotiate コマンドを使う場合は、直接接続している両方のポートでスイッチポートの設定モードを合わせておく必要があります。