コントロール プレーン ポリシングについて
コントロール プレーン ポリシング(CoPP)はコントロールプレーンを保護し、ネットワークの安定性、到達可能性、およびパケット配信を保証します。
この機能により、コントロール プロセッサに到達可能な各プロトコルに対して、パラメータの仕様でポリサーを使用したレート制限が可能になります。ポリシングは、ルータまたはレイヤ 3 スイッチの IP アドレスのいずれかを宛先とするすべてのトラフィックに適用されます。ネットワーク デバイスへの一般的な攻撃ベクトルは、過剰なトラフィックがデバイス インターフェイスに転送されるサービス妨害(DoS)攻撃です。
Cisco Application Centric Infrastructure(ACI)リーフおよびスパインスイッチ NX-OS は、DoS 攻撃がパフォーマンスに影響しないようにするために CoPP を提供します。このような攻撃は誤って、または悪意を持って実行される場合があり、通常は Cisco ACI リーフおよびスパインスイッチ CPU または CPU 自体のスーパーバイザモジュールに宛てられた大量のトラフィックが含まれます。
Cisco ACI リーフおよびスパインスイッチ スイッチのスーパーバイザモジュールは、管理対象のトラフィックを次の 2 つの機能コンポーネント(プレーン)に分類します。
-
データプレーン:すべてのデータトラフィックを処理します。NX-OS デバイスの基本的な機能は、インターフェイス間でパケットを転送することです。スイッチ自身に向けられたものでないパケットは、中継パケットと呼ばれます。データ プレーンで処理されるのはこれらのパケットです。
-
コントロールプレーン:ルーティングプロトコルのすべての制御トラフィックを処理します。ボーダー ゲートウェイ プロトコル(BGP)や Open Shortest Path First(OSPF)プロトコルなどのルーティング プロトコルは、デバイス間で制御パケットを送信します。これらのパケットはルータのアドレスを宛先とし、コントロール プレーン パケットと呼ばれます。
Cisco ACI リーフスイッチおよびスパインスイッチのスーパーバイザモジュールにはコントロールプレーンがあり、ネットワークの操作に重要です。スーパーバイザ モジュールの動作が途絶したり、スーパーバイザ モジュールが攻撃されたりすると、重大なネットワークの停止につながります。たとえば、スーパーバイザに過剰なトラフィックが加わると、スーパーバイザモジュールが過負荷になり、Cisco ACI ファブリック全体のパフォーマンスが低下する可能性があります。別の例としては、Cisco ACI リーフスイッチおよびスパインスイッチのスーパーバイザモジュールに対する DoS 攻撃は、コントロールプレーンに対して非常に高速に IP トラフィックストリームを生成することがあります。これにより、コントロールプレーンでは、これらのパケットを処理するために大量の時間を費やしてしまい、本来のトラフィックを処理できなくなります。
次に、DoS 攻撃の例を示します。
-
インターネット制御メッセージ プロトコル(ICMP)エコー要求
-
IP フラグメント
-
TCP SYN フラッディング
これらの攻撃によりデバイスのパフォーマンスが影響を受け、次のようなマイナスの結果をもたらします。
-
サービス品質の低下(音声、ビデオ、または重要なアプリケーション トラフィックの低下など)
-
ルート プロセッサまたはスイッチ プロセッサの高い CPU 使用率
-
ルーティング プロトコルのアップデートまたはキープアライブの消失によるルート フラップ
-
メモリやバッファなどのプロセッサ リソースの枯渇
-
着信パケットの無差別のドロップ
(注) |
Cisco ACI リーフスイッチとスパインスイッチは、デフォルトで、デフォルト設定の CoPP によって保護されます。この機能では、顧客のニーズに基づいてノードのグループにパラメータを調整できます。 |
コントロール プレーン保護
コントロールプレーンを保護するため、Cisco ACI リーフスイッチおよびスパインスイッチで実行されている Cisco NX-OS はコントロールプレーンのさまざまなパケットを異なるクラスに分離します。クラスの識別が終わると、Cisco NX-OS デバイスはパケットをポリシングします。これにより、スーパーバイザ モジュールに過剰な負担がかからないようになります。
コントロール プレーンのパケット タイプ:
コントロール プレーンには、次のような異なるタイプのパケットが到達します。
-
受信パケット:ルーターの宛先アドレスを持つパケット。宛先アドレスには、レイヤ 2 アドレス(ルータ MAC アドレスなど)やレイヤ 3 アドレス(ルータ インターフェイスの IP アドレスなど)があります。これらのパケットには、ルータ アップデートとキープアライブ メッセージも含まれます。ルータが使用するマルチキャスト アドレス宛てに送信されるマルチキャスト パケットも、このカテゴリに入ります。
-
例外パケット:スーパーバイザモジュールによる特殊な処理を必要とするパケット。たとえば、宛先アドレスが Forwarding Information Base(FIB; 転送情報ベース)に存在せず、結果としてミスとなった場合は、スーパーバイザ モジュールが送信側に到達不能パケットを返します。他には、IP オプションがセットされたパケットもあります。
-
リダイレクトパケット:スーパーバイザモジュールにリダイレクトされるパケット。ダイナミック ホスト コンフィギュレーション プロトコル(DHCP)スヌーピングやダイナミック アドレス解決プロトコル(ARP)インスペクションなどの機能は、パケットをスーパーバイザ モジュールにリダイレクトします。
-
収集パケット:宛先 IP アドレスのレイヤ 2 MAC アドレスが FIB に存在していない場合は、スーパーバイザモジュールがパケットを受信し、ARP 要求をそのホストに送信します。
これらのさまざまなパケットは、コントロールプレーンへの悪意ある攻撃に利用され、Cisco ACI ファブリックに過剰な負荷をかける可能性があります。CoPP は、これらのパケットを異なるクラスに分類し、これらのパケットを Cisco ACI リーフスイッチおよびスパインスイッチのスーパーバイザが受信する速度を個別に制御するメカニズムを提供します。
CoPP の分類:
効果的に保護するために、Cisco ACI リーフスイッチおよびスパインスイッチ NX-OS は、スーパーバイザモジュールに到達するパケットを分類して、パケットタイプに基づいた異なるレート制御ポリシーを適用できるようにします。たとえば、Hello メッセージなどのプロトコルパケットには厳格度を緩和し、IP オプションがセットされているためにスーパーバイザモジュールに送信されるパケットには厳格度を強化することが考えられます。
利用可能なプロトコル:
プロトコル |
説明 |
---|---|
グリーニング |
このプロトコルでは、ブリッジドメインがプロキシモードの場合、リーフスイッチが受信した不明なユニキャストトラフィックはハードウェアプロキシ(スパインスイッチ)に送信されます。スパインスイッチは、パケットの eth-type を特別な eth-type (0xfff2) に変更します。これらのパケットがファブリックポートを介してリーフスイッチに到達すると、パケットはグリーニングの下に分類されます。パケットはリーフスイッチの CPU に送信され、リーフスイッチの CPU は接続された外部デバイスに対して ARP 要求を生成します。 |
ToR グリーニング |
ToR グリーニングは、エンドポイントが移動するか、リンクフラップのためにクリアされたときにアクティブになり、送信元リーフスイッチのリモート IP アドレスのエンドポイントエントリは更新されません。パケットは、接続先リーフスイッチの TEP アドレスを使用して送信元リーフスイッチから出力されます。接続先リーフスイッチでは、ローカル IP アドレスエントリが欠落しているため、パケットはリーフスイッチ CPU に送信され、それらの IP アドレスに対する ARP 要求が生成されます。これらのパケットは、ToR グリーニングに分類されます。 |
レート制御メカニズム:
パケットの分類が終わると、Cisco ACI リーフおよびスパインスイッチ NX-OS デバイスにはスーパーバイザモジュールに到達するパケットのレートを制御するメカニズムがあります。
ポリシングには、次のパラメータを設定できます。
-
認定情報レート(CIR):1 秒あたりのパケット数(PPS)で指定される、必要な帯域幅。
-
認定バースト(BC):パケット数で指定され、特定の時間枠内に CIR を超えるが、スケジューリングに影響を与えないトラフィックバーストのサイズ。
デフォルトのポリシング ポリシー:
Cisco ACI リーフスイッチおよびスパインスイッチが最初に起動するとき、異なるプロトコル用に事前定義された CoPP パラメータは、シスコで行ったテストに基づいています。
CoPP の注意事項と制約事項
CoPP に関する注意事項と制約事項は次のとおりです。
-
最初にデフォルト CoPP ポリシーを使用し、後で、データセンターおよびアプリケーションの要件に基づいて CoPP ポリシーを変更することをお勧めします。
-
CoPP のカスタマイズは継続的なプロセスです。CoPP を設定するときには、特定の環境で使用されるプロトコルや機能に加えて、サーバ環境に必要なスーパーバイザ機能を考慮する必要があります。これらのプロトコルや機能が変更されたら、CoPP を変更する必要があります。
-
CoPP を継続的にモニタすることを推奨します。ドロップが発生した場合は、CoPP がトラフィックを誤ってドロップしたのか、または誤動作や攻撃に応答してドロップしたのかを判定してください。いずれの場合も、状況を分析し、CoPP ポリシーを変更する必要を評価します。
-
CoPP ポリシーによって、ルーティング プロトコルなどのクリティカルなトラフィック、またはデバイスへのインタラクティブなアクセスがフィルタリングされないように注意してください。このトラフィックをフィルタリングすると、Cisco ACI リーフ/スパインへのリモート アクセスが禁止され、コンソール接続が必要となる場合があります。
-
CoPP プレフィルタ エントリを誤って設定しないでください。CoPP プレフィルタ エントリは、マルチポッド設定、リモート リーフ スイッチ、および Cisco ACI マルチサイト展開への接続に影響を与える可能性があります。
-
APIC UI を使用して、CoPP パラメータを調整することができます。
-
プロトコルごとの各インターフェイスはリーフ スイッチでのみサポートされています。
-
プロトコルごとの各インターフェイスで FEX ポートはサポートされていません。
-
プロトコルごとの各インターフェイスでサポートされているプロトコルは、ARP、ICMP、CDP、LLDP、LACP、BGP、STP、BFD、および OSPF です。
-
プロトコルごとの各インターフェイスの最大の TCAM エントリは 256 です。しきい値を超過すると、障害が発生します。
APIC GUI を使用した CoPP の設定
手順
ステップ 1 |
メニュー バーで、 をクリックします。 |
ステップ 2 |
[ナビゲーション] ペインで、 を展開して、[リーフ レベルで適用される CoPP のプロファイルの作成] ダイアログ ボックスを右クリックし、[リーフ レベルで適用される CoPP のプロファイルの作成] ダイアログ ボックスの次のアクションを実行します。 |
ステップ 3 |
[ナビゲーション] ペインで、 を展開し、[アクセス スイッチ ポリシー グループの作成] ダイアログ ボックスを右クリックして、[アクセス スイッチ ポリシー グループの作成] ダイアログ ボックスの次のアクションを実行します。
|
ステップ 4 |
[ナビゲーション] ペインで、 を展開して、[リーフ プロファイルの作成] ダイアログ ボックスを右クリックして、[リーフ プロファイルの作成] ダイアログ ボックスの次のアクションを実行します。
|
Cisco NX-OS CLI を使用した CoPP の設定
手順
ステップ 1 |
CoPP リーフ プロファイルを設定します。 例:
|
ステップ 2 |
CoPP スパイン プロファイルを設定します。 例:
|
REST API を使用した CoPP の設定
手順
ステップ 1 |
CoPP リーフ プロファイルを設定します。 例:
|
ステップ 2 |
CoPP スパイン プロファイルを設定します。 例:
|
GUI を使用した CoPP 統計情報の表示
CoPP の調整を適切に行うには、指定のモードの指定のプロトコルでドロップ/許可されたパケット数を知る必要があります。次の手順を使用して、GUI で情報を表示できます。
手順
メニュー バーで、 の順にクリックして、クラスのリストから選択し、統計情報の表示形式を設定します。CoPP によって許可またはドロップされたパケット数に関する統計情報を収集することができます。 |
APIC GUI を使用したプロトコル CoPP ポリシーごとの各インターフェイスの設定
手順
ステップ 1 |
メニュー バーで、 をクリックします。 |
ステップ 2 |
[ナビゲーション] ペインで、 を展開して、[プロトコル CoPP ポリシーごとの各インターフェイスの作成] ダイアログ ボックスを右クリックして、[プロトコル CoPP ポリシーごとの各インターフェイスの作成] ダイアログ ボックスの次のアクションを実行します。
|
ステップ 3 |
[ナビゲーション] ペインで、 を展開して、[リーフ アクセス ポート ポリシー グループの作成] ダイアログ ボックスを右クリックして、[リーフ アクセス ポート ポリシー グループの作成] ダイアログ ボックスの次のアクションを実行します。
|
ステップ 4 |
[ナビゲーション] ペインで、 を展開して、[リーフ インターフェイス プロファイルの作成] ダイアログ ボックスを右クリックして、[リーフ インターフェイス プロファイルの作成] ダイアログ ボックスの次のアクションを実行します。
|
NX-OS スタイル CLI を使用するプロトコル CoPP ポリシーごとのインターフェイスごとの設定
手順
ステップ 1 |
CoPP クラス マップおよびポリシー マップを定義します。 例:
|
ステップ 2 |
リーフのインターフェイスに設定を適用します。 例:
|
REST API を使用するプロトコルごとのインターフェイスあたりの CoPP の設定
手順
プロトコルごとにインターフェイスあたりの CoPP を設定します。 例:
|