DTP(ダイナミック トランキング プロトコル)

 DTP (Dynamic Trunking Protocol) は、Catalyst2960、Catalyst 3560 シリーズ スイッチ上のスイッチポートをアクセスポートまたはトランクポートにするのかを動的に決定するCisco独自のプロトコルです。

 DTPによって、隣接する対向のスイッチポートの状況をネゴシエーションして、自身のスイッチポートをアクセスポートまたはトランクポートで動作させます。

 Cisco独自のプロトコルであるため、他ベンダーのスイッチでは、DTP をサポートしていません。また、CiscoスイッチのすべてがDTPをサポとしているわけではありません。

 DTPをサポートしていないスイッチでは、DTP フレームを正しく処理できないことがあるため誤設定を引き起こす可能性があります。

 これを回避するには、DTP をサポートしないスイッチと接続しているCiscoスイッチのインターフェイスで DTP をオフにする必要があります。

 DTP をサポートしないデバイスへのトランキングをイネーブルにするには、「switchport mode trunk」 および「 switchport nonegotiate」コマンドをインターフェイス コンフィギュレーションモードから実行します。これにより、インターフェイスをtrunkモードにして、DTP フレームを生成しないようにします。

DTPの動作モード

switchport mode access  インターフェイスをアクセスポートにして永続的な非トランキングモードにします。対向インターフェイスがトランク インターフェイスであるかどうかに関係なく、インターフェイスは非トランク インターフェイスになります。
switchport mode dynamic auto  インターフェイスをトランクに変換できるようにします。対向インターフェイスが trunkモード、desirable モードに設定されている場合、インターフェイスは、trunkモードになります。
デフォルトのスイッチポートのモードは、dynamic auto モードになっています。
switchport mode dynamic desirable  自身のスイッチポートを積極的に trunk モードに変換するように試みます。 対向インターフェイスが trunk、desirable、または auto モードに設定されている場合、インターフェイスは、trunk モードになります。 Catalyst2950、Catalyst3550シリーズのスイッチなど、旧型スイッチは、このモードがデフォルトになっています。
switchport mode trunk  インターフェイスを永続的な trunk モードにします。対向インターフェイスが、trunk モードでない場合でも、自身のインターフェイスは、trunk モードになります。
switchport nonegotiate  インターフェイスから、DTP フレームを生成しないようにします。このコマンドは、インターフェイスのスイッチポートのモードが access モード、または trunk モードの場合にだけ、使用できます。

DTPネゴシエーションの結果

  Dynamic Auto Dynamic Desirable Trunk Access
Dynamic Auto アクセス トランク トランク アクセス
Dynamic Desirable トランク トランク トランク アクセス
Trunk トランク トランク トランク 限定された接続
Access アクセス アクセス 限定された接続 アクセス

スイッチ スプーフィング攻撃

 スイッチポートが、デフォルトの設定の場合、Dynamic Autoモード、あるいは、Dynamic Desirableになっています。DTPが有効になっている場合、スイッチ スプーフィング攻撃を受けるリスクがあります。

 ネットワーク攻撃者は、スイッチポートのデフォルト設定では、DTPでリンクをトランクにするかどうかをネゴシエーションするということを利用して攻撃の糸口にします。

 trunk モードとなっているポートではすべての VLAN にアクセスできます。攻撃者は 802.1Q および DTP メッセージをエミュレートして、リンクをトランクにすることで、すべての VLAN へのアクセスを取得できます。

 トランクリンクが必要な場合の一般的なベストプラクティスは、インターフェイスを手動で、trunkモードにして、DTPを nonegotiate と指定して無効に設定することです。

以下のコマンドを実行します。

switch(config)#switchport mode trunk
switch(config)#switchport nonegotiate

チャンネルの紹介