はじめに
このドキュメントでは、Nexus シリーズ スイッチにおける仮想 PortChannel(vPC)のロール選択プロセスについて説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Nexus シリーズ スイッチの vPC
- スパニング ツリー プロトコル(STP)
使用するコンポーネント
このドキュメントの情報は、Nexus 9000 シリーズ スイッチ プラットフォームに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
仮想 PortChannel テクノロジー
仮想 PortChannel(vPC)を使用すると、シスコの異なる 2 つのスイッチ製品に物理的に接続されたリンクが、第 3 のデバイスからは単一の PortChannel のように見えます。第 3 のデバイスとは、スイッチ、サーバ、または IEEE 802.3ad PortChannel をサポートするその他の各種ネットワークデバイスです。 vPC では、2 つのスイッチにまたがるレイヤ 2 PortChannel を作成することもできます。現時点では、vPCはCisco Nexus 9000、7000、5000、および3000シリーズプラットフォームに実装されています(Cisco Nexus 2000シリーズファブリックエクステンダの有無は問いません)。
注:Cisco NX-OSソフトウェアのvPCとCisco Catalyst Virtual Switching System(VSS)のテクノロジーは似ています。Cisco EtherChannel テクノロジーでは、マルチシャーシ EtherChannel(MCEC)という用語はどちらのテクノロジーも表しています。
vPC ロール
両方のvPCスイッチがダウンストリームデバイスへの単一のスイッチとして表示されますが、2台のvPCスイッチでvPCのロール(vPCプライマリとvPCセカンダリ)が明確に定義されています。
vPC ロールは非プリエンプティブです。つまり、デバイスは vPC プライマリとして設定できますが、vPC セカンダリピアデバイスとして動作します。このような状態は次のシナリオで発生する可能性があります。
- 元のプライマリデバイスに障害が発生すると、セカンダリ vPC デバイスが新しいプライマリデバイスになります。
- システムが回復すると、以前のプライマリデバイスがセカンダリデバイスになり、以前のセカンダリデバイスがプライマリデバイスになります。
vPCロールは、2台のvPCピアデバイスのうち、ブリッジプロトコルデータユニット(BPDU)を処理するデバイスと、アドレス解決プロトコル(ARP)要求に応答するデバイスを定義します。vPCロールは、vPCピアリンクのダウン状況に応じてvPCプライマリとvPCセカンダリで実行される一連のアクションも定義します。
vPC ロールプライオリティ
vPCドメインモードコマンドでrole priorityを使用して、vPC選択プロセスに影響を与えることもできます。 値の範囲は1 ~ 65636で、デフォルト値は32667です。値が小さいほど、このスイッチがプライマリvPCになる可能性が高いことを意味します。
vPCピアデバイスのプライオリティを変更すると、ネットワーク内のインターフェイスがアップまたはダウンする可能性があります。1 台の vPC デバイスをプライマリ デバイスにするよう再度ロール プライオリティを設定する場合は、プライオリティ値が低い プライマリ vPC デバイスと値が高いセカンダリ vPC デバイスの両方でロール プライオリティを設定します。次に、両方のデバイスでvPCピアリンクをシャットダウンしてshutdownコマンドを入力し、最後に両方のデバイスでポートチャネルを再度有効にして、no shutdownコマンドを入力します。
ヒットレス vPC ロールの変更
vPCヒットレスロール変更機能は、トラフィックフローに影響を与えずにvPCピア間でvPCロールを切り替えるフレームワークを提供します。vPC ロールの切り替えは、vPC ドメインに属しているデバイスのロールプライオリティ値に基づいて行われます。vpc role preempt コマンドを実行すると、ロールプライオリティが低い vPC ピアデバイスがプライマリ vPC デバイスとして選択されます。
詳細については、「ヒットレス vPC ロールの変更に関するユースケースシナリオ」を参照してください。
vPC ピア リンクがダウンした場合の vPC システムの動作
vPC ピアリンクがダウンし、vPC ピアキープアライブリンクがまだ稼働している場合、vPC セカンダリピアデバイスは次の動作を実行します。
- vPC メンバーポートを停止します。
- vPC VLAN に関連付けられた SVI をシャットダウンします。
vPC のこの保護動作により、すべての垂直方向の(North-South)トラフィックが vPC プライマリデバイスにリダイレクトされます。
注:vPCピアリンクがダウンすると、両方のvPCピアデバイスが相互に同期できなくなるため、設計された保護メカニズムによって、一方のピアデバイス(発生した場合はセカンダリピアデバイス)がデータパスから分離されます。
vPCプライマリスティッキービット
vPCプライマリスティッキービットは、プライマリスイッチが予期せずリロードされたときに不必要なロール変更(ネットワークの中断を引き起こす可能性がある)を回避するために導入されたプログラム済み保護メカニズムです。vPCプライマリスティッキービットは、停止したスイッチが再び有効になったとき、または隔離されたスイッチがVPCドメインに再統合されたときに、アライブスイッチがプライマリロールに固定されるようにします。
vPCプライマリスティッキービットの切り替え:
1. vPCプライマリスティッキービットの値は、次のシナリオではTRUEに設定されます。
- 現在のvPCプライマリがリブートし、vPC対応スイッチのロールがvPCセカンダリからvPC Operational Primaryに変更されます。ロールが vPC 稼働中セカンダリから vPC プライマリに変更された場合は、スティッキビットは設定されません。
- vPC対応スイッチは、リロードリストアタイマー(デフォルトでは240秒)の期限が切れると、ロールをNone establishからvPC Primaryに変更します。
2. vPCプライマリスティッキービットの値が、次のシナリオでFALSEに設定されている。
- vPC対応スイッチがリブートされる(デフォルトではスティッキービットがFALSEに設定される)。
- vPCロールの優先度が変更または再入力されます。
vPCスティッキプライマリビットは、vPC Managerソフトウェアコンポーネント構造の下でレポートされ、このNX-OS exec modeコマンドでチェックできます。
Campus_N7K2-VPC# show system internal vpcm info global | include ignore-case sticky
Sticky Primary: TRUE
Campus_N7K2-VPC#
vPC の遅延復元
vPC ピア デバイスのリロードおよび復旧後、ルーティング プロトコルに再コンバージェンスの時間が必要です。回復するvPCレッグは、アップリンクレイヤ3接続が再確立されるまで、アクセスからアグリゲーション/コアへのルーテッドトラフィックをブラックホール化する可能性があります。
vPC遅延リストア機能は、回復したvPCピアデバイス上でvPCレッグの起動を遅延させます。vPC遅延リストア機能を使用すると、レイヤ3ルーティングプロトコルが収束し、その後、vPCレッグ上のトラフィックが許可されます。その結果、リカバリフェーズ中にグレースフル復元が行われ、パケット損失はゼロになります(トラフィックは引き続き動作中の vPC ピアデバイス上で転送されます)。この機能は、vPC 復元のデフォルト タイマーが 30 秒でデフォルトでイネーブルになります。タイマーは、1 ~ 3600秒の特定のレイヤ3コンバージェンスベースラインに合わせて調整できます。
vPC 遅延復元インターフェイス VLAN
復元されたvPCピアデバイスのVLANインターフェイスの起動を遅延するには、delay restoreコマンドのinterfaces-vlanオプションを使用します。 この機能は、vPC 復元のデフォルト タイマーが 10 秒でデフォルトでイネーブルになります。
4000 SVI の拡張 SVI セットアップを使用している間の vPC の遅延復元
一度に200 SVIのバッチでVLANまたはブリッジドメインインターフェイスを起動するようにペーサを設定するために、新しいコマンドdelay restore interface-VLAN batch <1-4094>が導入されました。vPC遅延復元タイマーコマンドのdelay restore <Timeout value>は、設定されているすべてのバッチタイマーの合計よりも大きい値に設定できます。これは、トラフィックのブラックホールを回避するために、すべてのSVIが完全に起動した後にのみVPCレッグが起動するように行われます。
例:4000 Vlan、200バッチ、15秒遅延
遅延復元 > (4000/200) x 15
vPC の選択プロセス
vPC システムでは、次のパラメータと次の順序に基づいて、1 つの vPC ピアデバイスが vPC プライマリとして定義され、1 つの vPC ピアデバイスが vPC セカンダリとして定義されます。
- vPCプライマリスティッキービットを0または1に設定
- ユーザ定義の vPC ロールプライオリティ(Cisco NX-OS ソフトウェアは、プライマリデバイスの選択に最も小さい数値を使用します)。
- システムの MAC アドレス値(Cisco NX-OS ソフトウェアは、プライマリデバイスの選択に最も小さい MAC アドレスを使用します)。
このフローチャート(図 1)は、vPC プライマリスイッチの選定プロセス中に両方の vPC ピアデバイスで実行されるステップをまとめたものです。
- vPCプライマリ選択プロセス中に2台のデバイス間で最初にチェックされるパラメータは、vPCプライマリスティッキービットです。このパラメータの比較を制した vPC ピアデバイスが vPC プライマリになります。両方のピアの vPC ロールプライオリティ値やシステム MAC アドレスがどのように設定されているかは問いません。
- 両方の vPC ピアスイッチのスティッキビット値が同じ場合、選択プロセスは次のステップへと進み、ユーザ定義の vPC ロールプライオリティを比較します。
- 両方の vPC ロールプライオリティが同じ値に設定されている場合、選択プロセスはシステム MAC アドレスの比較に進みます。
画像 1
図に示すように、vPCスイッチのvPCプライマリスティッキービットが1(TRUE状態)に設定され、スティッキービットが0(FALSE状態)に設定されたピアがある場合、TRUE側が選択を勝ち取ってvPCプライマリの役割を担います。
vPC ピア 1 のスティッキビットが 1 に設定 |
vPC ピア 2 のスティッキビットが 1 に設定 |
vPC プライマリ |
FALSE(0) |
FALSE(0) |
TIE |
True(1) |
FALSE(0) |
vPC ピア 1 |
FALSE(0) |
True(1) |
vPC ピア 2 |
True(1) |
True(1) |
TIE |
vPC のリカバリシナリオ
vPCの選択プロセスを理解することが重要です。特にvPCの回復シナリオでは、これを過小評価することはできません。
図 2 は VPC の一般的な設定を示しており、Nexus-01 は VPC プライマリ、Nexus-02 は VPC セカンダリです。両方のスティッキービットがデフォルトでFALSEに再設定されます。
画像 2
次の図に示すように、Nexus-01 で停電が発生し、ネットワークから分離されました。Nexus-02 は自身を vPC プライマリに昇格させ、vPC スティッキビットを TRUE に設定しました。
これで、Nexus-02 が稼働中プライマリになり、スティッキビットの現在の設定は TRUE です。
画像 3
次の図に示すように、停電が復旧した後にNexus-01がオンラインに戻ると、Nexus-02は(TRUEスティッキービットを持つため)ロールの優先度にかかわらず運用プライマリロールを保持し、オンラインになるとNexus-01はセカンダリロールを取得します。Nexus-01だけがVPC初期化プロセスを開始しますが、Nexus-02はプライマリのままになり、通常どおりトラフィックを転送します。 したがって、ネットワークの停止は発生しません。
現在は vPC 稼働中セカンダリデバイスである Nexus-01 には、vPC 初期化プロセスに関連付けられた次の 2 つのタイマーがあります。
- 遅延復元 SVI(デフォルトでは 10 秒)
- 遅延復元(デフォルトでは 30 秒)
そのため、vPC セカンダリデバイスとしてネットワークに再び導入された後の Nexus-01 のリカバリ時間は、40 秒と予想されます。ただし、Nexus-02 がプライマリロールを引き継いでいるため、上述のようにすべてのトラフィックは Nexus-01 を通過するようになり、ネットワークの停止は発生しません。
図 4
スティッキビットの誤設定に関連するネットワーク停止例
隔離スイッチ(Nexus-02)がVPCドメインに導入されたときにスティッキービットが誤って設定されたことが原因でネットワークが停止します
ただし、両方の Nexus スイッチでスティッキビットが正しく設定されていない場合は、分離されたスイッチが VPC ドメインに戻された後にネットワーク停止が発生する可能性があります。隔離スイッチをVPCドメインに導入する前に、そのスティッキービットをFALSEに設定する必要があります(N7Kシャーシの交換手順については、「Nexus 7000シャーシの交換手順」を参照してください)。
図 5 に示すように、Nexus-01 の VPC ロールプライオリティは Nexus-02 よりも高い値に設定されており、Nexus-02 のスティッキビットは TRUE に設定されています。Nexus-01のリンクE1/1とE1/2はフォワーディングステートですが、E1/1とE1/2はシャットダウンステートです。
図 5
PKAとピアリンクが復元されると、Nexus-02は(TRUEスティッキービットがあるため)ロールの優先度にかかわらずプライマリロールを引き継ぎ、Nexus-01を強制的にセカンダリにして、VPC初期化プロセスをNexus-01で開始します。そのため、Nexus-01のリンクE1/1とE1/2はVPCによって中断され、リレー復元タイマー(デフォルトでは40秒)が切れた後にオンラインになります。 この場合、図 6 に示すように、PKA とピアリンクの復元後に 40 秒のネットワーク停止が発生します。
図 6
注:NexusをvPCドメインに再導入する場合は、アクティブなvPCデバイスでvPCロールが変更されていないことを確認する必要があります。両方のスイッチでスティッキビットが同じ値に設定されている場合に vPC ロールが変更されないようにするには、アクティブな vPC デバイスのロールプライオリティ値をより大きくして、プライマリロールを保持できるようにする必要があります。VPCロールの選択プロセスの詳細については、このドキュメントの図1を参照してください。