802.1Qトンネリングの機能
サービス プロバイダーは、802.1Qトンネリングを使用することにより、複数のVLAN(仮想LAN)を持つ顧客に1つのVLANで対応し、顧客のVLAN IDを維持して、各顧客VLANのトラフィックを分離することができます。
802.1Qトンネリングをサポートするように設定されたポートをトンネル ポートといいます。トンネリングを設定する場合は、トンネリング用に使用するVLANにトンネル ポートを割り当てます。顧客のトラフィックの分離を維持するためには、顧客ごとに個別のVLANが1つ必要ですが、その1つのVLANで各顧客のすべてのVALNに対応できます。
802.1Qトンネリングでは、タグ付けされたトラフィックが顧客のデバイスの802.1Qトランク ポートから送信され、トンネル ポートを通じてスイッチに着信します。顧客のデバイス上の802.1Qトランク ポートとトンネル ポートの間のリンクを非対称リンクといいます。一方の端は802.1Qトランク ポートとして設定され、他方の端はトンネル ポートとして設定されているからです。
トンネル ポートは、802.1Qトランク ポートからタグ付きの顧客トラフィックを受信した場合、そのフレーム ヘッダーから802.1Qタグを取り除くことはありません。トンネル ポートは、802.1Qタグを付けたまま、1バイトのEthertypeフィールド(0x8100)と1バイトのlengthフィールドを追加したうえで、そのトンネル ポートに割り当てられたVLANに顧客のトラフィックを渡します。このように、受信した802.1Qタグが付いた状態のEthertype 0x8100トラフィックをトンネル トラフィックといいます。
トンネル トラフィックを伝送するVLANは、802.1Qトンネルです。VLANのトンネル ポートはそのトンネルの入口および出口です。
トンネル ポートは同じネットワーク デバイス上になくてもかまいません。トンネルは、出口のトンネル ポートに到達する前に、他のネットワーク リンクや他のネットワーク デバイスを横切ることができます。また、1つのトンネルには、そのトンネルを通じた通信を必要とする顧客デバイスに対応できるだけの数のトンネル ポートをいくつでも設定できます。
出口のトンネル ポートは、1バイトのEthertypeフィールド(0x8100)と1バイトのlengthフィールドを取り除き、802.1Qタグは付けたまま、顧客デバイス上の802.1Qトランク ポートにトラフィックを送ります。顧客デバイス上の802.1Qトランク ポートは802.1Qタグを取り除いてから、該当する顧客VLANにトラフィックを送ります。
必ずしもすべてのスイッチが標準の1バイトEthertypeフィールド(0x8100)をサポートしているわけではありません。ご使用のスイッチが1バイトEthertypeフィールドをサポートしていない場合は、GBIC(ギガビット インターフェイス コンバータ)または10ギガビット ポートにスイッチを接続して、指定されたEthertypeのIP管理トラフィックからタグのないIPトラフィックを分離できます。タグのないIPトラフィックは自動的にネイティブVLANに割り当てられ、指定されたEthertypeのトラフィックは指定されたVLANに切り替えられます。
802.1Qトンネリングの設定に関する注意事項
ここでは、ネットワークに802.1Qトンネリングを設定する際の注意事項について説明します。
• トンネルに入る方向とトンネルから出る方向が非対称なリンクを使用します。
• トンネル ポートは必ず、非対称リンクを構築するように設定します。
• 各トンネルに対して専用のVLANを1つ設定します。
• トンネリング用のVLANにはトンネル ポートだけを割り当てます。
• トランクには、トンネルVLANの伝送のための特別な設定は必要ありません。
• トンネル ポートのないデバイス間のトンネル トラフィックの伝送には、ISLトランクを使用することを推奨します。802.1QネイティブVLAN機能のため、802.1Qトランクを使用する場合は、トンネリングの設定に十分注意する必要があります。設定を誤ると、トンネル トラフィックが非トンネル ポートに転送される可能性があります。
• トンネル トラフィックは802.1Qタグをスイッチ内で維持するので、レイヤ2フレームのヘッダー長には、以下の制約があります。
–レイヤ2フレーム内のレイヤ3パケットは、識別不可能です。
–トンネル トラフィックでは、レイヤ3以上のパラメータ(例:レイヤ3送信元および宛先アドレス)は識別不可能です。
–トンネル トラフィックはルーティング不可能です。
–スイッチは、レイヤ2パラメータ(VLANおよび送信元/宛先MACアドレス)によってのみ、トンネル トラフィックをフィルタリングできます。
–スイッチはトンネル トラフィックに対し、MACレイヤQuality of Service(QoS;サービス品質)だけ提供します。
–QoSは、802.1Qの2バイトのTag Control Informationフィールド内の受信Class of Service(CoS;サービス クラス)値を検出できません。
• 非対称リンクでは、リンク上にトランク ポートが1つだけしかないので、Dynamic Trunking Protocol(DTP)はサポートされません。非対称リンクに802.1Qトランク ポートを設定するには、 nonegotiate dot1q トランキング キーワードを使用します。
• 非対称リンク内の802.1Qトランク ポートのネイティブVLANでは、トラフィックが伝送されないようにしてください。ネイティブVLANのトラフィックにはタグがないので、正しくトンネリングすることができません。または、グローバル コマンド set dot1q-all-tagged enable を使用して、ネイティブVLANの出力トラフィックに802.1Qタグを付けられます。
(注) グローバルset dot1q-all-tagged enableコマンドの詳細については、「イーサネットVLANトランクの設定」を参照してください。
• 非対称リンクでは、トンネル ポートのVLANが802.1QトランクのネイティブVLANと一致しない場合、Cisco Discovery Protocol(CDP)によってネイティブVLANの不一致が報告されます。802.1Qトンネル機能では、VLANが一致している必要はありません。設定において一致しないVLANを使用する場合には、このメッセージを無視してください。
• ジャンボ フレームについては、802.1Qタグを付けたジャンボ フレームの長さが最大フレーム サイズを超えないかぎり、トンネリングが可能です。
(注) Maximum Transmission Unit(MTU;最大伝送ユニット)の正確なサイズを設定するために、802.1トンネル トラフィックを搬送するすべてのポートでジャンボ フレームをイネーブルにする必要があります。
• 次のものをサポートするように設定したポートには、802.1Qトンネリング機能を設定できません。
–プライベートVLAN
–VoIP(Cisco IP Phone 7960)
• 次のレイヤ2プロトコルは、非対称リンクで接続された装置間で動作します。
–CDP
–UniDirectional Link Detection(UDLD;単一方向リンク検出)
–Port Aggregation Protocol(PAgP)
• VLAN Trunking Protocol(VTP; VLANトランキング プロトコル)は、次の装置間では動作しません。
–非対称リンクによって接続された装置
–トンネルを介して通信する装置
(注) EtherChannelを非対称リンクとして設定するには、EtherChannel内のすべてのポートに同じトンネリング設定を使用する必要があります。レイヤ2フレーム内のレイヤ3パケットは識別不可能なので、MACアドレスに基づくフレーム配布を使用するようにEtherChannelを設定してください。
• Generic Attribute Registration Protocol(GARP)VLAN Registration Protocol(GVRP)は、トンネルを介して通信する装置間で動作しますが、非対称リンクで接続された装置間では動作しません。
• 相互接続型ネットワークでは、ISPの2つの異なるエッジ スイッチへの冗長パスを使用できません。相互接続型ネットワークでは、ISPの同一エッジ スイッチへの冗長パスを使用できますが、カスタマー ネットワークでPer VLAN Spanning Tree Plus(PVST+)を使用する必要があり、Multi-Instance Spanning Tree Protocol(MISTP)用に設定することはできません。ISPインフラストラクチャでは、PVST+またはMISTP-PVST+のどちらかを使用する必要があります。
スイッチ上での802.1Qトンネリングの設定
ここでは、802.1Qトンネルリングの設定手順について説明します。
• 「802.1Qトンネル ポートの設定」
• 「802.1Qトンネル ポートの解除」
• 「802.1Qトンネリングのグローバル サポートのディセーブル化」
(注) グローバルset dot1q-all-tagged enableコマンドの詳細については、「イーサネットVLANトランクの設定」を参照してください。
802.1Qトンネル ポートの設定
注意 VLANでトンネリングを設定するときは、設定しているのが該当するトンネル ポートだけであり、トンネルごとに1つのVLANを使用しているか確認してください。VLANへのトンネル ポートの割り当てを誤ると、トラフィック転送で問題が生じる可能性があります。
ポートに802.1Qトンネリングを設定するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
ポートにトンネリングを設定します。 |
set port dot1qtunnel { all | mod/port access | disable } |
ステップ 2 |
設定を確認します。 |
show port dot1qtunnel [ mod[/port] ] |
ポート4/1にトンネリングを設定し、設定を確認する例を示します。
Console> (enable) set port dot1qtunnel 4/1 access
Dot1q tunnel feature set to access mode on port 4/1.
Port 4/1 trunk mode set to off.
Console> (enable) show port dot1qtunnel 4/1
802.1Qトンネル ポートの解除
ポートから802.1Qトンネリング サポートを解除するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
ポートからトンネリングを解除します。 |
set port dot1qtunnel { mod/port} disable |
ステップ 2 |
設定を確認します。 |
show port dot1qtunnel [ mod[/port] ] |
ポート4/1のトンネリングを解除し、設定を確認する例を示します。
Console> (enable) set port dot1qtunnel 4/1 disable
Dot1q tunnel feature disabled on port 4/1.
Console> (enable) show port dot1qtunnel 4/1
802.1Qトンネリングのグローバル サポートのディセーブル化
ポートからこの機能を削除するには、 set port dot1qtunnel all disable コマンドを使用するだけです。802.1Qトンネリングを解除する場合、 set dot1q-all-tagged disable コマンドを入力する必要はありません。
スイッチでの802.1Qトンネリングのグローバル サポートをディセーブルにするには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
スイッチでトンネリングのグローバル サポートをディセーブルにします。 |
set port dot1qtunnel all disable |
ステップ 2 |
設定を確認します。 |
show port dot1qtunnel |
スイッチのトンネリング サポートをディセーブルにし、設定を確認する例を示します。
Console> (enable) set port dot1qtunnel all disable
Dot1q tunnel feature disabled on all applicable ports.
Console> (enable) show port dot1qtunnel
レイヤ2プロトコル トンネリングの機能
レイヤ2プロトコル トンネリングを使用すると、ネットワークを通じてProtocol Data Unit(PDU;プロトコル データ ユニット)(CDP、STP、およびVTP)のトンネリングが可能になります。以下の説明に使用する用語の定義をいくつか説明します。
• エッジ スイッチ ― 顧客のスイッチに接続され、サービス プロバイダーのネットワークの境界に配備されているスイッチ(を参照)
• レイヤ2プロトコル トンネル ポート ― トンネリング対象の特定のプロトコルのカプセル化やカプセル化解除が可能なエッジ スイッチ上のポート。トンネル ポートはCLIコマンドで設定されます。
• トンネリングされたPDU ― CDP、STP、またはVTPのPDU
802.1Qトンネリングの現在の実装では、スパニングツリーBPDUは、同じエッジ スイッチに属している特別な802.1Qトンネリング ポートだけにフラッディングされます。この実装は、エッジ スイッチと各サイトの顧客側スイッチの間のループを防ぎます。BPDUは、サービス プロバイダーのネットワーク内のポートのうち、他のサービス プロバイダーのスイッチに接続されているポートにはフラッディングされません。このようなBPDUの処理によって、顧客のネットワーク用に異なるスパニングツリー ドメイン(異なるスパニングツリー ルート)が形成されます。たとえば、スイッチ1(を参照)上のVLANのSTPは、スイッチ4および5に基づいたコンバージェンス パラメータを考慮することなく、スイッチ1、2、および3上にスパニングツリー トポロジーを構築します。顧客に単一のスパニングツリー ドメインを提供できるようにするため、制御プロトコルPDU(CDP、STP、およびVTP)用にBPDUをトンネリングする一般スキームが作成されます。このプロセスをレイヤ2プロトコル トンネリングといいます。
図 7-1 レイヤ2プロトコル トンネリング ネットワークの設定
レイヤ2プロトコル トンネリングは、入口エッジ スイッチでPDUをカプセル化し、それをハードウェアでマルチキャストするソフトウェアによって、PDUトンネリングを実現するスケーラブルな機能です。サービス プロバイダー ネットワーク内のすべてのスイッチは、これらのカプセル化フレームをデータ パケットとして処理し、反対側に転送します。出口のエッジ スイッチは、これらの特殊なカプセル化フレームを待ち受け、カプセル化を解除し、トンネルの外側へ転送します。
カプセル化では、PDUの宛先MACアドレスが書き換えられます。入口のエッジ スイッチは、トンネル ポート上で受信されたPDUの宛先MACアドレスをシスコ独自のマルチキャスト アドレス(01-00-0c-cd-cd-d0)に書き換えます。PDUはそのトンネル ポートのネイティブVLANにフラッディングされます。あるポート上でレイヤ2プロトコル トンネリングをイネーブルにした場合、イネーブルに設定されたプロトコルのPDUは送出されません。あるポート上でレイヤ2プロトコル トンネリングをディセーブルにした場合、ディセーブルに設定されたプロトコルは、レイヤ2プロトコル トンネリングがそのポート上でディセーブルに設定される前と同じように動作します。
レイヤ2プロトコル トンネリングの設定に関する注意事項
ここでは、ネットワークにプロトコル トンネリングを設定する際の注意事項について説明します。
• プロトコル トンネリングは、前述した802.1Qトンネリング機能とは独立して動作します。
• パフォーマンス上の理由から、Supervisor Engine 1が搭載されているシステムにレイヤ2プロトコル トンネリングを設定することは推奨できません。
• レイヤ2プロトコル トンネリングをイネーブルにできるのは、アクセス ポート、トランク ポート、または802.1Qトンネリング ポートだけです。
• レイヤ2プロトコル トンネリングをプライベートVLANと一緒に使用することはできません。
• レイヤ2プロトコル トンネリングをダイナミックVLANと一緒に使用することはできません。
• MSTが稼働し、EtherChannelを使用するISPネットワークに接続されている場合は、 set spantree mst link-type mod/port shared コマンドを使用して、すべてのチャネリング ポートでリンク タイプを shared に設定しなければなりません。これにより、チャネルの設定誤りによってEtherChannelがerrdisableステートになるのを防ぐことができます。
レイヤ2プロトコル トンネリング サポートの設定
ここでは、プロトコル トンネリングの設定について説明します。
• 「レイヤ2プロトコルの指定」
• 「レイヤ2プロトコル トンネリング ポートに対する廃棄およびシャットダウン スレッシュホールドの指定」
• 「レイヤ2プロトコル トンネリング ポートに対するCoSの指定」
• 「レイヤ2プロトコル トンネリング統計のクリア」
レイヤ2プロトコルの指定
ポートまたはポート範囲にレイヤ2プロトコルを指定するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
ポートにレイヤ2プロトコルを指定します。 |
set port l2protocol-tunnel mod/port { cdp | stp | vtp } { enable | disable } |
ステップ 2 |
設定を確認します。 |
show l2protocol-tunnel statistics [ mod[/port] ] |
ポートにレイヤ2プロトコルを指定し、設定を確認する例を示します。
(注) 一度に複数のプロトコルを指定することができます。CLI(コマンドライン インターフェイス)では、各プロトコル タイプをスペースで区切ります。
Console> (enable) set port l2protocol-tunnel 3/15 cdp enable
Layer 2 protocol tunneling enabled for CDP on port 3/15.
Port 3/15 trunk mode set to off.
Console> (enable) set port l2protocol-tunnel 3/15 cdp disable
Layer 2 protocol tunneling disabled for CDP on port 3/15.
Console> (enable) set port l2protocol-tunnel 3/15 cdp stp vtp enable
Layer 2 protocol tunneling enabled for CDP STP VTP on port 3/15.
Port 3/15 trunk mode set to off.
Console> (enable) show l2protocol-tunnel statistics 3/15
Tunneling CoS is set to 5.
Port CDP Frames Encap CDP Frames De-encap
------------------------ -------------------- --------------------
Port STP Frames Encap STP Frames De-encap
------------------------ -------------------- --------------------
Port VTP Frames Encap VTP Frames De-encap
------------------------ -------------------- --------------------
トランク上のレイヤ2プロトコル トンネリングの設定
トランクでのレイヤ2プロトコル トンネリングにより、サービス プロバイダー ネットワーク内でサードパーティ製の装置とCatalyst 6500シリーズ スイッチを相互運用できます。レイヤ2 プロトコル トンネリングは、トラフィックがトランク ポートを通過する際に、STP、CDP、およびVTPなどの制御プロトコルPDUをサービス プロバイダー群に対してトランスペアレントにします。旧リリースでは、レイヤ2プロトコル トンネリングはアクセス ポートでのみ使用可能でした。
「レイヤ2プロトコル トンネリングの設定に関する注意事項」にあるガイドラインに従ってください。また、トランク ポートに802.1Qトンネリングを設定できませんが、802.1 Qトンネリングはトランク ポートを通じてトンネリングすることができます。
(注) 802.1Qトンネリングとレイヤ2プロトコル トンネリングの両方を使用した混在ネットワーク環境の場合、サードパーティ製装置と相互運用するためにパケットを二重にタグ付けする必要があります。
ポートまたはポート範囲にレイヤ2プロトコル トンネリングをイネーブルまたはディセーブルにするには、イネーブル モードで次の作業を行います。
|
|
トランク上でレイヤ2プロトコル トンネリングをイネーブルまたはディセーブルにします。 |
set l2protocol-tunnel trunk { enable | disable } |
(注) すでにアクティブなレイヤ2プロトコル トンネルが設定されている場合、レイヤ2プロトコル トンネリングを設定(イネーブルまたはディセーブル)しないでください。レイヤ2プロトコル トンネリングをトランクに設定する場合、他のレイヤ2プロトコル トンネリング作業を行う前に設定を行ってください。
トランク上でレイヤ2プロトコル トンネリングをイネーブルにする例を示します。
Console> (enable) set l2protocol-tunnel trunk enable
Layer 2 Protocol Tunnel on trunks is allowed.
トランク上でレイヤ2プロトコル トンネリングをディセーブルにする例を示します。
Console> (enable) set l2protocol-tunnel trunk disable
Warning!! Clear any layer 2 protocol tunnel configuration on trunks
before using this command.
Layer 2 Protocol Tunnel on trunks is not allowed.
レイヤ2プロトコル トンネリング ポートに対する廃棄およびシャットダウン スレッシュホールドの指定
シャットダウン スレッシュホールドによって、接続されている顧客のスイッチからのトラフィックがエッジ スイッチの処理能力を超えるのを防ぐためのレート制限のタイプが決まります。レイヤ2プロトコル トンネリング ポートと802.1Qトンネリングを一緒に使用する場合は、常にシャットダウン スレッシュホールドを設定することを推奨します。レイヤ2プロトコル トンネリング ポートを使用して、802.1Qトンネリングは使用しない場合は、シャットダウン スレッシュホールドを指定する必要はありません。
シャットダウン スレッシュホールドの推奨最大値は1000です。この値は、1つのエッジ スイッチが入口および出口のトンネリングを実行しながら1秒間に(廃棄せずに)処理できるPDUの数に基づいています。エッジ スイッチでは、顧客のスイッチに接続できるレイヤ2プロトコル トンネリング ポートの数および各レイヤ2プロトコル トンネリング ポートの顧客VLAN数も、このシャットダウン スレッシュホールド値によって決まります。推奨最大値を1000に決める際には、サービス プロバイダーのネットワークからの入口トンネリングも考慮されました。
レイヤ2プロトコル トンネリング ポート(リンク)の数、およびエッジ スイッチが処理できる各レイヤ2プロトコル トンネリング ポートの顧客VLAN数(各リンクのVLAN)を決定するには、レイヤ2プロトコル トンネリング ポートの数にVLAN数を掛けます。その結果は1000以下でなければなりません。次のような設定が許容されます。
• レイヤ2プロトコル トンネリング ポート 1個×1000 VLAN
• レイヤ2プロトコル トンネリング ポート 2個×500 VLAN
• レイヤ2プロトコル トンネリング ポート 5個×200 VLAN
• レイヤ2プロトコル トンネリング ポート 10個×100 VLAN
• レイヤ2プロトコル トンネリング ポート 20個×50 VLAN
• レイヤ2プロトコル トンネリング ポート 100個×10 VLAN
(注) シャットダウン スレッシュホールドの数値に到達すると、ポートまたはポート範囲はerrdisableステートになり、errdisableタイムアウト時間の経過後に回復します。シャットダウン スレッシュホールドの値は廃棄スレッシュホールド値より大きくなければなりません。廃棄スレッシュホールド値に到達した後、そのポートまたはポート範囲はPDUの廃棄を開始します。
廃棄スレッシュホールドとシャットダウン スレッシュホールドのデフォルト値は、それぞれ0と0です。この場合、制限は設定されません。
廃棄とシャットダウンのスレッシュホールドを指定するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
ポートに廃棄およびシャットダウンのスレッシュホールドを指定します。 |
set port l2protocol-tunnel mod/port { drop-threshold drop-threshold } { shutdown-threshold shutdown-threshold } |
ステップ 2 |
設定を確認します。 |
show port l2protocol-tunnel [ mod[/port] ] |
ポートの廃棄スレッシュホールドを1000に、シャットダウン スレッシュホールドを1000に指定する例を示します。
Console> (enable) set port l2protocol-tunnel 3/15 drop-threshold 1000 shutdown-threshold 1000
Drop Threshold=1000, Shutdown Threshold=1000 set on port 3/15.
Console> (enable) show port l2protocol-tunnel 3/15
Port Tunnel Protocol(s) Drop Threshold Shutdown Threshold
------------------------ ------------------ -------------- ------------------
3/15 CDP, STP, VTP 1000 1000
レイヤ2プロトコル トンネリング ポートに対するCoSの指定
入口のレイヤ2プロトコル トンネリング ポートすべてに対してグローバルにCoS値を指定することもできます。CoS値はすべての入口トンネリング ポートに適用されるので、スイッチによって送出されたカプセル化PDUのCoS値はすべて同じになります。有効な値は、0~7で、デフォルトのCoS値は5です。
すべての入口レイヤ2プロトコル トンネリング ポートにグローバルにCoS値を指定するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
CoS値をグローバルに指定します。 |
set l2protocol-tunnel cos cos-value |
ステップ 2 |
設定を確認します。 |
show l2protocol-tunnel statistics [ mod[/port] ] |
CoS値を6に設定する例を示します。
Console> (enable) set l2protocol-tunnel cos 6
Console> (enable) show l2protocol-tunnel statistics 4/1
Tunneling CoS is set to 6.
Port CDP Frames Encap CDP Frames De-encap
----- -------------------- --------------------
console>(enable)
Console>(enable) clear l2protocol-tunnel cos
Default Cos set to 5.
Console>(enable)
レイヤ2プロトコル トンネリング統計のクリア
1つのポートまたは全トンネリング ポートに対するレイヤ2プロトコル トンネリング統計をクリアするには、イネーブル モードで次の作業を行います。
|
|
レイヤ2トンネル ポートの統計をクリアします。 |
clear l2protocol-tunnel statistics [ mod/port] |
ポート7/1に関するレイヤ2トンネル ポート統計をクリアする例を示します。
Console> (enable) clear l2protocol-tunnel statistics 7/1
Layer 2 Protocol Tunnel statistics cleared on ports: 7/1.