冗長性サポート

機能の概要と変更履歴

要約データ

表 1. 要約データ

該当製品または機能エリア

cnSGW-C

該当プラットフォーム

SMI

機能のデフォルト設定

有効:設定が必要です

関連資料

該当なし

マニュアルの変更履歴

表 2. マニュアルの変更履歴

改訂の詳細

リリース

最初の導入。

2021.02.0

高可用性のサポート

機能説明

cnSGW-C は Kubernetes クラスタ戦略に基づいて構築されているため、K8 クラスタ展開の高可用性の側面を継承します。cnSGW-C は、ポッドやサービスなどのコンポーネントを含む構造を使用します。

各ポッドには、次に対して高可用性を確保するために少なくとも 2 つのインスタンスがあります。

  • ポッドインスタンスの再起動または障害

  • ノードの再起動または障害によりポッドが失われました

ポッドとサービスの詳細については、このガイドの「ポッドとサービスの参考資料」の章を参照してください。

UDP プロキシの高可用性

cnSGW-C は、UDP プロキシの高可用性(HA)をサポートしています。UDP プロキシの HA モデルは、キープアライブ仮想 IP の概念に基づいています。

UDP プロキシ冗長性に関する情報については、「ポッドとサービスの参考資料」章の「UDP プロキシの高可用性」セクションを参照してください。

アーキテクチャ

このセクションでは、cnSGW-C ポッドと VM の推奨レイアウトについて説明します。

cnSGW-C ポッドおよび VM の展開レイアウト

ここでは、cnSGW-C ポッドとそのマイクロサービスの展開について説明します。

次の図は、cnSGW-C における 6 つの VM の導入モデルを示しています。

図 1. VM 導入モデル

このモデルでは、ポッドは VM ペアに展開されます。各プロトコルポッド(rest-ep、protocol-ep、gtp-ep など)に対して 2 つのレプリカを使用できます。各プロトコル VM に 1 つのインスタンスが展開されます。

同様に、サービスポッドとセッションポッドは、サービス VM とセッション VM の両方に均等に分散されます。このような分散は、VM にラベルを付け、ポッドのスケジューリング中に K8 アフィニティルールとアンチアフィニティルールを実装することによって制御されます。

このモデルにより、VM の再起動シナリオ中に、各 ポッドタイプの少なくとも 50% のレプリカがユーザーシグナリングの処理に使用可能になります。

ポッドのグレースフル再起動により、ポッドは進行中の処理を 30 秒以内に完了できます。ポッドの突然の再起動は、PDU セッションに影響を与えずに、進行中のトランザクションに影響を与えます。

機能の仕組み

ここでは、復元力と HA を実現する方法について説明します。

cnSGW-C は、ポッドの障害中または再起動中にポッド間通信を可能にします。

ポッドの正常な再起動中:

  • 進行中の処理は影響を受けません。

  • 新しいメッセージは、Kubernetes サービスを介してポッドに送信されません。

  • セッションアフィニティを持つメッセージは、引き続きポッドで受信されます。

  • 既存のコールフローは 30 秒以内に完了することが予想されます。

ポッドの再起動後:

  • ポッドのすべての Prometheus メトリックがリセットされます。

  • 内部診断が緑色の場合、ポッドのステータスは [Ready] に変わります。

  • ポッドは新しいメッセージを処理する準備ができています。

cnSGW-C VM が再起動する、または VM が使用できない場合:

  • VM 上のすべてのポッドが失われます。

  • 使用可能な他の VM 上のポッドは処理を継続するため、高可用性が実現します。

  • VIP(存在する場合)は、他の使用可能なノードに切り替えられます。

  • Kubernetes がノードをダウン状態として検出するには、ノードが到達不能になってから約 5 分間かかります。

  • その後、ノード上のポッドは、Kubernetes サービスでは検出できなくなります。

ポッドが再起動すると、VM 上のポッドが順次スケジュールされます。この操作は、ポッドの再起動に似ています。

VIP と VM の再起動中に、仮想 IP が単一の VM に関連付けられます。UDP プロキシは、UPF との通信用に N4 VIP アドレスにバインドします。UDP プロキシは、cnSGW-C との通信用に S5 VIP アドレスにバインドします。

アクティブな VIP で VM を再起動すると、VIP は他のプロトコルの VM に切り替わります。アクティブな UDP プロキシに障害が発生すると、VIP は他のプロトコルの VM に切り替わります。

サブスクライバ マイクロサービス インフラストラクチャ(SMI)が VIP のモニタリングとスイッチオーバーを処理する前に、SMI 展開で適切な VIP 構成が使用可能であることを確認してください。また、ポートが 28000 に設定されており、ホストの優先順位が同じであるかどうかを確認します。

ポッドレベルのラベル付けとレプリカの構成

ノードラベルは、SMI クラスタデプロイヤで構成されます。構成コマンドに関する詳細は、「オペレーションセンターでの cnSGW-C の展開と構成」章の「ノードラベルを持つマッピングポッド」セクションを参照してください。

設定例

次に、VM のラベル付けとレプリカの設定例を示します。

k8 label protocol-layer key smi.cisco.com/node-type value smf-proto
exit
k8 label service-layer key vm-type value smf-svc
exit
k8 label cdl-layer key smi.cisco.com/node-type value smf-cdl
exit
k8 label oam-layer key smi.cisco.com/node-type value oam
exit

endpoint pfcp
 replicas 1
 nodes    2
exit
endpoint service
 replicas 1
 nodes    2
exit
endpoint protocol
 replicas 1
 nodes    2
 vip-ip 209.165.201.28
exit
endpoint sbi
 replicas 1
 nodes    2

設定の確認

構成を確認するには、次の show コマンドを使用します。

show running-config instance instance-id instance_id endpoint 

以下は、この show コマンドの出力例です。

show running-config instance instance-id 1 endpoint 
instance instance-id 1
 endpoint nodemgr
  replicas 1
  nodes    2
 exit
 endpoint gtp
  replicas 1
  vip-ip 209.165.201.29
 exit
 endpoint pfcp
  replicas                2
  enable-cpu-optimization true
  interface n4
   heartbeat
    interval               0
    retransmission-timeout 3
    max-retransmissions    5
   exit
  exit
 exit
 endpoint service
  replicas 2
 exit
 endpoint protocol
  replicas 1
  vip-ip 209.165.201.29
  end 

このコマンド出力には、エンドポイント名、ポッドレプリカ、ノードなど、複数のエンドポイントに関連する構成が表示されます。

ラック間冗長性サポート

ラック間冗長性サポートとは、1 つのラックで障害や停止が発生した場合でも、システムまたはサービスがその機能と可用性を維持する機能を意味します。これは、同じ地理的な場所にある別のラックに操作を移動することで軽減できます。

機能説明

cnSGW-C、アクティブ-アクティブモードのラック間冗長性をサポートします。ラック間の冗長性は、リモートラックへのサービスのシームレスなフェールオーバーとフェールバックに必要なセッション、構成、およびその他のデータのレプリケーションによって実現されます。

機能の仕組み

cnSGW-C(CNF)を同じデータセンターに展開して、SMF cnSGW-C クラスタをホストするラックに対してローカライズされた、致命的な障害向けのサービスを提供できます。

各 CNF インスタンスのサービスは、MME/SGW の DNS エントリのために NRF および S11/S5 に登録されます。ローカル HA 冗長性により、インスタンスは、同じデータセンター内の K8 クラスタレベルの障害に加えて、ラックレベルの冗長性を実現したり、障害のあるコンテナがタイプ 2 < n に従う場合に、同じ K8 クラスタ内でローカルに処理したりできます。

n は値です。コンテナ障害が 50% 未満の場合は、HA で障害を処理する必要があります。コンテナ障害が 50% を超えると、ラック間スイッチオーバーがトリガーされます。

概要

アクティブ-アクティブモード

  • ラック間の展開は、隣接する NF に対して透過的です。

  • ラック間の展開には CCG 機能の 2 つのインスタンスが含まれ、各インスタンスは一連のインターフェイス IP で識別されます。

  • 各インスタンスは一連のセッションをサポートし、セッションの一貫性のために同じ IP を使用し続けます。

  • 特定の期間において、1 つの CCG インスタンスは一方のラックでのみプライマリとして動作し、もう一方のラックではスタンバイとして動作します。

  • CCG インスタンスに関連付けられている一連のインターフェイス IP は、インスタンスのプライマリラックに動的にルーティングされます。

cnSGW-C は、データがプライマリからスタンバイインスタンスに複製されるプライマリ/スタンバイ冗長性をサポートします。通常の動作では、プライマリインスタンスがサービスを提供します。プライマリインスタンスで障害が発生すると、スタンバイインスタンスがプライマリになり、動作を引き継ぎます。ラック間の冗長性を実現するために、2 つのプライマリ/スタンバイペアを設定できます。この場合は各ラックがアクティブにトラフィックを処理し、スタンバイ側がリモートラックのバックアップとして機能します。

アクティブ-アクティブのラック間冗長性展開で、同じデータセンターに 2 つのラックがあるとします(ラック 1 と ラック 2)。すべての NF がインスタンス 1 とインスタンス 2 に到達しようとしています。

図 2. アクティブ-アクティブのラック間冗長性展開

NF の場合、両方のインスタンスがアクティブになります。しかし実際には、インスタンス 1 とインスタンス 2 はラックにまたがって配置されます。

ラック 1 にはインスタンス 1 とインスタンス 2 があります。トリガー前のシナリオでは、インスタンス 1 はローカルでプライマリとして機能し、インスタンス 2 はスタンバイモードになります。

ラック 2 にもインスタンス 1 とインスタンス 2 があります。トリガー前のシナリオでは、インスタンス 2 はローカルでプライマリとして機能し、インスタンス 1 はスタンバイモードになります。

ラック 1 に障害が発生すると、トラフィックはラック 2 に移動します。ラック 2 では、インスタンス 1 とインスタンス 2 の両方がプライマリとして機能します。

ラック間冗長性トリガー

ラック間冗長性は、次のトリガーをサポートしています。

  • CLI ベースのスイッチオーバー:手動の CLI コマンドを使用して、ロールを切り替え、ラック間冗長性フェールオーバーをトリガーします。

  • BFD リンクフェールオーバー検出:接続されたラックとリーフ間の両方の BFD リンクがダウンすると、ラック間冗長性フェールオーバーがトリガーされます。

  • ローカルラックポッド障害検出: ポッドレプリカセットの障害のしきい値パーセンテージが、設定されたしきい値を上回ると、ラック間冗長性フェールオーバーがトリガーされます。

  • リモートラックポッド障害検出:リモートポッドモニタリングでしきい値パーセンテージを超える障害が検出されると、ポッドはそのインスタンスに対してセルフプライマリになります。

  • リモート ラック ロール モニタリング:リモートロールモニタリングで、ラックが Standy_error 状態であることが検出されると、そのラックはセルフプライマリになります。

  • マルチコンピューティング障害:2 つ以上のサーバーの電源がオフになると、ラック間冗長性フェールオーバーがトリガーされます。

ラック NF ロール

次に、適用可能なラック NF ロールのリストを示します。


(注)  


  • Cachepod/etcd および CDL レプリケーションは、次のセクションで説明されているすべてのロール中に発生します。

  • ラック間リンクがダウンしているか、定期的なハートビートに失敗すると、これらのラック間冗長性トリガーが一時停止します。


  • PRIMARY:このロールでは、ラックは準備完了状態で、特定のインスタンスのトラフィックをアクティブに取得しています。

  • [STANDBY]:このロールでは、ラックはスタンバイモードであり、トラフィックを取得する準備ができていますが、特定のインスタンスのトラフィックを取得しません。

  • STANDBY_ERROR:このロールでは、ラックは問題のある状態で、アクティブではなく、特定のインスタンスのトラフィックを取得する準備ができていません。


    (注)  


    インスタンスロールが STANDBY_ERROR の状態の場合、データの複製は停止します。この状態では、show georeplication-status コマンドは常に失敗します。ただし、インスタンスのロールが STANDBY に移行されると、データの複製が自動的に再開され、コマンドは結果が pass であると表示します。


  • FAILOVER_INIT:このロールでは、ラックはフェールオーバーを開始し、トラフィックを取得する状態ではありません。アプリケーションがアクティビティを完了するまでのバッファ時間は 2 秒です。

  • FAILOVER_COMPLETE:このロールでは、ラックはフェールオーバーを完了し、特定のインスタンスのフェールオーバーについてピアラックに通知しようとしています。バッファ時間は 2 秒です。

  • FAILBACK_STARTED:このロールでは、手動フェールオーバーは、特定のインスタンスのリモートラックから遅延してトリガーされます。

新規インストールの場合、ラックは次のロールでブートアップします。

  • PRIMARY:このロールでは、ラックはローカルインスタンス用です(各ラックには、ローカルインスタンスを識別するように構成されたローカルinstance-id があります)。新規インストール中は、ポッドをモニタリング用に構成しないことをお勧めします。セットアップの準備ができたら、モニタリング用にポッドを構成できます。

  • STANDBY:このロールでは、ラックは他のインスタンスの にあります。

アップグレードの場合、ラックは次のロールでブートアップします。

  • STANDBY_ERROR:このロールでは、アップグレード後にトラフィックを移動させるには手動の介入が必要なため、すべてのインスタンスがラックになります。

  • ETCD:このロールでは、ラックはインスタンスのロールを保存します。


(注)  


ローリング アップグレードまたはインサービスアップグレードはサポートされていません。


一般的な注意事項

ラック間冗長性展開を設定する前に、次の一般的なガイドラインを参照してください。

  • 両方のラックのソフトウェアバージョンが同じである必要があります。

  • 両方のラックの設定を同じにする必要があります。

  • インスタンス 1 とインスタンス 2 のループバック ポートは異なる必要があります。同じ場合、K8 IP/ ポートの競合が原因で REST-EP ポッドが起動しません。

  • 両方のラックの各インターフェイスは、同じ VLAN 上にある必要があります。たとえば、インスタンス 1 とインスタンス 2 の N4 VLAN は、同じ VLAN 上にある必要があります。異なる場合、BGP ポリシーの適用時にカーネルでルートの競合が発生します。

  • 適切なロールを割り当てるために、シスコのテクニカル担当者に問い合わせて、次の手順を実行します。

    詳細については、GR ペアのソフトウェアアップデートを参照してください。

  • フェールオーバー後、ラックが正常であることを確認してから、フェールバックを手動で実行します。自律フェールバックはサポートされていません。

    詳細については、回復手順を参照してください。

  • BGP ピアリングには、BGP スピーカーポッドで非結合インターフェイスを使用します。

  • Proto ノードごとの BGP ピアリングは、2 つの BGP ルータ/リーフのみでサポートされます。2 つの Proto ノードを考えている場合、最大 4 つの BGP ネイバーシップを設定できます。

  • サービストラフィックには結合インターフェイスを使用します。

  • Geo ポッドでは、次の 2 つの VIP を使用します。

    • ポッド間通信用の内部 VIP(ラック内)

    • ラック間 Geo ポッド通信用の外部 VIP。L2 サブネットの Proto ノードでのみ設定します。これはラック間の通信に使用されます。このノードには他のラックへの外部接続があります。

  • ラック内のすべてのノードに到達可能な Geo 内部 IP。

  • Geo 外部 IP:

  • CDL/Kafka VIP:L2 サブネット上の CDL ラベル付きノードで設定します。

  • 両方のラックで LI タップを有効にします。

  • MDF サーバーは、両方のラックから到達可能である必要があります。

インスタンス認識

cnSGW-C でのインスタンス認識構成は、ローカルラックインスタンスとリモートラックインスタンスを区別するのに役立ちます。

ラック間冗長性インスタンスの構成

この設定は、複数ラックのラック間冗長性構成を提供するために必要です。インスタンス ID を使用して、ラックごとにエンドポイントを構成する必要があります。

構成例 1

以下は、1 つのインスタンスにおけるエンドポイント VIP 構成の構成例です。

config 
  instance instance-id gr_instanceId 
    endpoint endpoint_name 
        vip-ip vip_ip_address 
  exit 
exit 

例:

config
instance instance-id 1
 endpoint sbi
  vip-ip 209.165.201.21
 exit
exit
構成例 2

次に、インスタンスのシステム ID、クラスタ ID、スライス名に関する情報を提供する構成例を示します。

config 
  instances instance instance_id 
   system-id system_id 
   cluster-id cluster_id 
   slice-name cdl_slice_name 
  exit 
exit 

例:

config
 instances instance 1
  system-id sgw
  cluster-id sgw
  slice-name 1
 exit
exit

(注)  


インスタンスの system-idcluster-id、および展開の app-namecluster-name に同じ値を使用することをお勧めします。


エンドポイントインスタンス認識の構成

ローカルラックとリモートラックごとに 2 つのインスタンスのみを構成でき、対応するエンドポイントをインスタンス化できます。

ローカルインスタンス識別子は、ラックが冗長かどうかに関係なく、ローカルラックの識別子です。

ローカルインスタンス識別子の設定

ローカルインスタンスは、 local-instance コマンドを使用して構成されます。

local-instance instance 1

エンドポイント構成は、各一意のインスタンス識別子で指定されたインスタンスの下にある必要があります。

エンドポイントの構成例

次の構成例を参照してください。


(注)  


次の例では、インスタンス識別子1」がローカルインスタンス識別子であり、その下に構成されたエンドポイントはローカルサイトに属しています。

必要に応じて、リモートラックインスタンス識別子2」をラックに属するエンドポイントに構成できます。


instance instance-id 1
 endpoint li
  replicas 1
  nodes    2
  vip-ip 209.165.201.6
  vip-ip 209.165.201.13
 exit
 endpoint gtp
  replicas 1
  nodes    2
  retransmission timeout 5 max-retry 4
  vip-ip 209.165.201.6
  vip-ip 209.165.201.4
  interface s5
   echo interval          60
   echo retransmission-timeout 5
   echo max-retransmissions 4
  exit
  interface s2b
   echo interval 60
   echo retransmission-timeout 5
   echo max-retransmissions 4
  exit
 exit
exit
instance instance-id 2
 endpoint li
  replicas 1
  nodes    2
  vip-ip 209.165.201.6
  vip-ip 209.165.201.13
 exit
exit
endpoint gtp
  replicas 1
  nodes    2
  retransmission timeout 5 max-retry 4
  vip-ip 209.165.201.6
  vip-ip 209.165.201.5
  interface s5
   echo interval 60
   echo retransmission-timeout 5
   echo max-retransmissions 4
  exit
  interface s2b
   echo interval 60
   echo retransmission-timeout 5
   echo max-retransmissions 4
  exit
 exit
exit

プロファイル cnSGW-C インスタンス認識の構成

ローカルおよびリモートインスタンスに対応する PGW FQDN のインスタンスを追加します。

次に、構成例を示します。


(注)  


次の例では、instance-id1」がローカルインスタンス ID であり、その下に構成された cnSGW-C プロファイルがローカルラックに属しています。

必要に応じて、リモートラック インスタンス ID2」をラック間に属する FQDN に構成できます。


profile sgw sgw1
locality LOC1
instances 1 fqdn cisco.com.apn.epc.mnc456.mcc123
instances 2 fqdn cisco.com.apn.epc.mnc567.mcc123

cnSGW-C エンドポイントの設定

エンドポイントの設定は、cnSGW-C にのみ必要です。

次に、設定例を示します。


(注)  


次の例では、instance-id「1」がローカルインスタンス ID で、その下に設定されたエンドポイントはローカルサイトに属しています。

必要に応じて、リモートサイト instance-id「2」を地理的サイトに属するエンドポイントに設定できます。


instance instance-id 1
 endpoint nodemgr
  replicas 1
  nodes    1
 exit
 endpoint gtp
  replicas 1
  vip-ip 209.165.201.10
  interface s5e
   vip-ip 209.165.201.29
  exit
  interface s11
   vip-ip 209.165.201.29
  exit
 exit
 endpoint pfcp
  replicas 1
  interface sxa
   heartbeat
    interval               0
    retransmission-timeout 5
    max-retransmissions    3
   exit
  exit
exit
 endpoint service
  replicas 1
 exit
 endpoint protocol
  replicas 1
  vip-ip 209.165.201.29
  interface sxa
   vip-ip 209.165.201.29
  exit
 exit
 endpoint sgw-service
  replicas 1
 exit
exit
instance instance-id 2
 endpoint nodemgr
  replicas 1
  nodes    1
 exit
 endpoint gtp
  replicas 1
  vip-ip 209.165.202.150
  interface s5e
   vip-ip 209.165.201.27
  exit
  interface s11
   vip-ip 209.165.201.27
  exit
 exit
 endpoint pfcp
  replicas 1
  interface sxa
   heartbeat
    interval               0
    retransmission-timeout 5
    max-retransmissions    3
   exit
  exit
exit
 endpoint service
  replicas 1
 exit
 endpoint protocol
  replicas 1
  vip-ip 209.165.201.27
  interface sxa
   vip-ip 209.165.201.27
  exit
 exit
 endpoint sgw-service
  replicas 1
 exit
exit

ダイナミック ルーティング

ボーダー ゲートウェイ プロトコル(BGP)では、自律システム(AS)間にループフリーのドメイン間ルーティングを作成可能です。AS は、単一の技術管理に基づくルータのまとまりです。ルータは、外部ゲートウェイプロトコルを使用して AS の外部にパケットをルーティングできます。BGP を使用したダイナミックルーティング機能を使用すると、優先順位とルートとともに、IP アドレスにサービスを提供する代替ローカルアドレスを持つ BGP ルータのネクストホップ属性を構成できます。App-Infra BGP スピーカーポッドは、BGP を使用してポッドルートをサービス VIP にアドバタイズすることにより、トラフィックのダイナミックルーティングを可能にします。

この機能は、次の機能をサポートしています。

  • BGP を使用したダイナミックルーティングによる着信トラフィックのサービス IP アドレスのアドバタイズ。

  • 発信トラフィックのルートの学習。

  • BGP ポッドフェールオーバーの処理。

  • プロトコル ポッド フェールオーバーの処理。

  • BGP スピーカーの統計と KPI。

  • BGP スピーカーをデバッグするためのログメッセージ。

  • BGP スピーカーポッドの有効化または無効化。

  • BGP を設定するための新しい CLI コマンド。

着信トラフィック

BGP はトランスポート プロトコルとして TCP(ポート 179)を使用します。2 台の BGP ルータは相互に TCP 接続を形成します。それらのルータはピアルータです。ピアルータはメッセージを交換し、接続パラメータを開いて確認します。

BGP スピーカーは、アクティブ/スタンバイモードで着信トラフィックのプロトコルポッドのルーティング情報を公開します。次の図を例として使用して、ダイナミックルーティングの機能を理解してください。pod1 と pod2 の 2 つのプロトコルポッドがあります。Pod1 はアクティブで、pod2 はスタンバイモードです。サービス IP アドレス 209.165.200.225 は、209.165.200.226 と 209.165.200.227 の両方のノードで構成されています。pod1 はホスト 209.165.200.226 で、pod2 はホスト 209.165.200.227 で実行されています。ホスト IP アドレスはポッドサービスを公開します。BGP スピーカーは、ルート 209.165.200.225、209.165.200.226 および 209.165.200.227 に公開します。また、ポッドの優先順位を決定するために、プリファレンス値 110 と 100 を公開します。

図 3. アクティブ/スタンバイ トポロジでの着信トラフィックのダイナミックルーティング

高可用性を実現するため、各クラスタにはアクティブ-スタンバイトポロジを備えた 2 つの BGP スピーカーポッドがあります。カーネルルートの変更は、プロトコルポッドが実行されているホストネットワークレベルで実行されます。

MED 値

ローカルプリファレンスは IGP ネイバーでのみ使用され、MED 属性は EGP ネイバーでのみ使用されます。BGP では、より低い MED 値が推奨されます。

表 3. MED 値

ボンディング インターフェイスがアクティブ

VIP の存在

MED 値

Local Preference

対応

対応

1210

2220

対応

非対応

1220

2210

非対応

対応

1215

2215

非対応

非対応

1225

2205

BGP スピーカーポッドのブートストラップ

次の一連の手順で、BGP スピーカーポッドをセットアップします。

  1. BGP スピーカーポッドは、ポート 179 で、トランスポートプロトコルとして TCP を使用します。これらのポッドは、Ops Center CLI で構成された AS 番号を使用します。

  2. Topology Manager を登録します。

  3. リーダーポッドを選択します。アクティブなスピーカーポッドがデフォルトの選択肢です。

  4. Ops Center CLI によって提供されるすべての BGP ピアへの接続を確立します。

  5. ETCD から既存のすべてのルートを公開します。

  6. CLI 設定を使用して、ルーティングのインポートポリシーを設定します。

  7. 両方のスピーカーポッドで gRPC ストリームサーバーを開始します。

  8. キャッシュポッドと同様に、各名前空間で 2 つの BGP スピーカーポッドを実行する必要があります。

動的ルーティングの詳細については、『UCC サービング ゲートウェイ コントロール プレーンの機能:構成および管理ガイド』の「BGP を使用したダイナミックルーティング」の章を参照してください。

BGP を使用したダイナミックルーティングの設定

ここでは、BGP を使用したダイナミックルーティングの設定方法について説明します。

AS と BGP ルータの IP アドレスの設定

BGP ルータの AS と IP アドレスを設定するには、次のコマンドを使用します。

config 
   router bgp local_as_number 
   exit 
exit 

  • router bgp local_as_number :BGP ルータの AS の ID 番号を指定します。

    ラック間冗長性展開では、2 つの自律システム(AS)を設定する必要があります。

    • リーフとスパイン用に 1 つの AS。

    • 両方のラックの第 2 AS:Rack-1 と Rack-2。

BGP サービスリスニング IP アドレスの設定

BGP サービスリスニング IP アドレスを設定するには、次のコマンドを使用します。

config 
   router bgp local_as_number 
      interface interface_name 
   exit 
exit 

  • router bgp local_as_number :BGP ルータの AS の ID 番号を指定します。

  • interface interface_name :インターフェイスの名前を指定します。

BGP ネイバーの設定

BGP ネイバーを設定するには、次のコマンドを使用します。

config 
   router bgp local_as_number 
      interface interface_name 
      neighbor neighbor_ip_address remote-as as_number 
   exit 
exit 

  • router bgp local_as_number :BGP ルータの AS の ID 番号を指定します。

  • interface interface_name :インターフェイスの名前を指定します。

  • neighbor neighbor_ip_address :ネイバー BGP ルータの IP アドレスを指定します。

  • remote-as as_number :AS の ID 番号を指定します。

ボンディング インターフェイスの設定

インターフェイスに関連するボンディング インターフェイスを設定するには、次のコマンドを使用します。

config 
   router bgp local_as_number 
      interface interface_name 
      bondingInterface interface_name 
   exit 
exit 

  • router bgp local_as_number :BGP ルータの AS の ID 番号を指定します。

  • interface interface_name :インターフェイスの名前を指定します。

  • bondingInterface interface_name :インターフェイスに関連するボンディング インターフェイスを指定します。ボンディング インターフェイスがアクティブである場合、BGP は、より低い MED 値を提供することで、インターフェイスサービスに高いプリファレンスを与えます。

デフォルトルートの学習の設定

システム上に特定のルートを設定し、すべてのルートをサポートする必要があるユーザーは、learnDefaultRoutetrue に設定する必要があります。


(注)  


この設定は任意です。


デフォルトルートの学習を設定するには、次のコマンドを使用します。

config 
   router bgp local_as_number 
      learnDefaultRoute true/false 
   exit 
exit 

  • router bgp local_as_number :BGP ルータの AS の ID 番号を指定します。

  • learnDefaultRoute true/false learnDefaultRoute パラメータを有効または無効にするオプションを指定します。true に設定すると、BGP はデフォルトルートを学習して、カーネルスペースに追加します。デフォルトは False です。

BGP ポートの設定

BGP サービスのポート番号を設定するには、次のコマンドを使用します。

config 
   router bgp local_as_number 
      loopbackPort port_number 
   exit 
exit 

  • router bgp local_as_number :BGP ルータの AS の ID 番号を指定します。

  • loopbackPort port_number :BGP サービスのポート番号を指定します。デフォルト値は 179 です。

ポリシーの追加

BGP スピーカーポッドは、ネイバーから多くのルート情報を学習しますが、発信トラフィックのサポートに使用されるルートはごく一部のルートです。これは、cnSGW-C が外部の AMF/PCF に情報を送信している場合、出力トラフィックの処理にのみ必要です。ルートは、BGP スピーカーでインポートポリシーを設定することでフィルタリングされ、学習したルートをプロトコルポッドに送信するために使用されます。

ポリシー追加用のサンプル CLI コードと、各パラメータに対応する説明を以下に示します。

$bgp policy <policy_Name> ip-prefix 209.165.200.225 subnet 16 masklength-range 21..24 as-path-set “^65100”
表 4. インポートポリシーのパラメータ
要素 説明 オプション
as-path-set AS パス値 “^65100” 対応
ip-prefix プレフィックス値 “209.165.200.225/16” 対応
masklength-range 長さの範囲 “21..24” 対応
interface 送信元 IP として設定するインターフェイス(デフォルトは VM IP) eth0 対応
gateWay 着信ルートのゲートウェイを変更します。 209.165.201.30 対応
modifySourceIp 着信ルートの送信元 IP を変更します。

デフォルト値は False です。

true 対応
isStaticRoute カーネルルートに静的 IP アドレスを追加するフラグ

デフォルト値は False です。

true 対応

BGP スピーカーの設定

この設定は、展開内の BGP スピーカーポッドの数を制御します。BGP スピーカーは、両方のラックからの着信トラフィックのサービス IP 情報をアドバタイズします。


(注)  


  • BGP ピアリングには、BGP スピーカーポッドで非結合インターフェイスを使用します。

  • Proto ノードごとの BGP ピアリングは、2 つの BGP ルータ/リーフのみでサポートされます。2 つの Proto ノードを考慮すると、最大 4 つの BGP ネイバーシップを設定できます。


instance instance-id  instance_id endpoint bgpspeaker interface { bgp | bfd } internal base-port start base_port_number 
config 
instance instance-id instance_id 
 endpoint bgpspeaker 
   replicas replica_id 
   nodes node_id 
   interface bgp 
     internal base-port start base_port_number  
   exit 
   interface bfd 
     internal base-port start base_port_number 
  exit 
exit 

  • instance instance-id instance_id :GR インスタンス ID を指定します。

  • base_port_number :論理 NF が設定されている場合にのみ、ポート範囲を指定します。この範囲は、展開によって異なります。

次に、設定例を示します。

instance instance-id 1
endpoint bgpspeaker
   replicas 1
   nodes    2
   interface bgp
     internal base-port start {24000}
   exit
   interface bfd
     internal base-port start {25000}
 exit

IPAM

ここでは、ラックレベルでの IP アドレス管理(IPAM)について説明します。

図 4. IPAM

UPF 登録時、アクティブな IPAM インスタンスが各 DNN の UPF ごとに 4 つのアドレス範囲を予約します。

  • 範囲 1:アクティブクラスタ、nodemgr-1

  • 範囲 2:アクティブクラスタ、nodemgr-2

  • 範囲 3:スタンバイクラスタ、nodemgr-1

  • 範囲 4:スタンバイクラスタ、nodemgr-2

通常の動作中、Rack-1 は GR-instance-1 で起動するサブスクライバの UPF 登録/リリース、アドレス割り当て/リリースを処理します。

Rack-2 がダウンすると、Rack-1 が GR-Instance-2 のロール変更トリガーを取得します。

  • Rack-1 の IPAM は、local-cache-pod(すでに同期済み)から GR-Instance-2 のコンテンツを復元します。

  • Rack-1 の IPAM は、GR-Instance-1 の処理に加えて、復元されたコンテンツを使用して GR-Instance-2 で起動するサブスクライバの UPF 登録/リリースおよびアドレス割り当て/リリースを処理します。

各 IPAM プールは、次のように GR インスタンスに関連付けられます。

  • プール名は、すべてのインスタンス間で一意です。

  • アドレス範囲は、VRF 内およびすべてのインスタンス間で一意です。

特定のインスタンスのアクティブとスタンバイの両方の cnSGW-C クラスタで、同じプール設定を設定する必要があります。

アドレス割り当て中に、アクティブなインスタンスは UPF 用に予約されたアドレス範囲から空き IP を割り当てます。

新しいアドレス範囲を使用できない場合は、スタンバイのアドレス範囲の所有権を現在のアクティブインスタンスに変更して、アドレス範囲の割り当てを続行します。

IPAM の構成

次のセクションでは、IPAM の構成例を示します。

cnSGW-C-1 の例

cnSGW-C-1 の構成例を次に示します。

ipam
 instance 1
  address-pool pool-1
  vrf-name ISP
   tags
   dnn dnn-1
  exit
  ipv4
    address-range 209.165.201.1 209.165.201.31
 exit
instance 2
 address-pool pool-2
  vrf-name ISP
  tags
   dnn dnn-2
  exit
  ipv4
    address-range 209.165.202.129 209.165.202.159
 exit
exit
cnSGW-C-2 の例

cnSGW-C-2 の構成例を次に示します。

ipam
 instance 1
 address-pool pool-1
  vrf-name ISP
  tags
   dnn dnn-1
  exit
  ipv4
    address-range 209.165.201.1 209.165.201.31
 exit
 instance 2
 address-pool pool-2
  vrf-name ISP
   tags
   dnn dnn-2
  exit
  ipv4
    address-range 209.165.202.129 209.165.202.159
 exit
exit

Geo レプリケーション

Geo レプリケーションはラック間通信で、ラック内の POD、VIP、または BFD のモニタリングで使用されます。地理的冗長性は、次で構成されます。

  • ラックごとに Geo ポッドの 2 つのインスタンスが実行されていること。

  • 2 つの Geo ポッドがアクティブ/スタンバイモードで機能する。

  • 各 Geo ポッドインスタンスは、異なる Proto ノードまたは VM で生成されます。

  • Proto ノードまたは VIP を持つ VM で実行されている Geo ポッドがアクティブな Geo ポッドです。

  • アクティブな Geo ポッドが再起動した場合、VIP は他の Proto ノードまたは VM に切り替えられ、他の Proto ノードまたは VM で実行されているスタンバイ Geo ポッドがアクティブになります。

  • 地理ポッドは、ホスト ネットワーキング モードを使用します(UDP プロキシと同様)。

  • Geo ポッドでは、次の 2 つの VIP を使用します。

    • 内部:ポッド間通信用の VIP(ラック内)

    • 外部:ラック間 Geo ポッド通信用の VIP

      L2 サブネット上の Proto ノードでのみ構成されます。ラック間の通信に使用されます。このノードには他のラックへの外部接続があります。

  • Logical-NF-InstanceID は、GR-Pair の両方の cnSGW-Cs で同じに設定する必要があります。

  • KeepAliveD モニタリングの場合:

    • 地理ポッドは、15000+(Logical-NF-InstanceID * 32)+ 4 としてベースポートを使用します。

      Geo ポッドのベースポートは、BGP スピーカーのポッドポートとは異なる必要があります。

      • デフォルトポート(論理 cnSGW-Cなし):15004

      • Logical-nf-instance-id が 1 に構成され、ポートが 15036 に構成された論理 cnSGW-C の場合

    • UDP プロキシポッドは、ベースポートを 28000+Logical-NF-InstanceID として使用します。

      • デフォルトポート(論理 cnSGW-Cなし):28000

      • Logical-nf-instance-id が 1 に構成され、ポートが 28001 に構成された論理 cnSGW-C の場合

    • BGP スピーカーポッドは、デフォルトのベースポートを 20000+(Logical-NF-InstanceID * 32)+4 として使用します。

      • デフォルトポート(論理 cnSGW-Cなし):20004

      • 論理的 cnSGW-C の場合、logical-nf-instance-id が 1 に構成され、ポートが 20036 に設定される


(注)  


ETCD およびキャッシュポッドデータのみがスタンバイラックに複製されます。


ETCD/CachePod レプリケーションの設定

エンドポイントは、インスタンスの下に設定する必要があります。各ラックには 2 つの地理的冗長性ポッドが必要です。また、ETCD/CachePod レプリケーショのために、内部および外部の地理的インターフェイスに VIP を設定する必要があります。

instance instance-id  instance_id endpoint geo interface { geo-internal | geo-external } vip-ip { vip_ip_address } vip-port { vip_port_number }
 
config 
instance instance-id instance_id 
 endpoint geo 
  replicas replica_id 
  nodes node_id 
  internal base-port start base_port_number 
  interface geo-internal 
   vip-ip vip_ip_address vip-port vip_port_number 
  exit 
  interface geo-external 
   vip-ip vip_ip_address vip-port vip_port_number 
  exit 
exit 
exit 

  • instance instance-id instance_id :GR インスタンス ID を指定します。1 つのインスタンス ID はローカルラック用、もう 1 つは別のラック用です。

  • vip-ip vip_ip_address :内部/外部の地理的インターフェイスの VIP IP アドレスを指定します。

  • vip-port vip_port_number :VIP ポート番号を指定します。

  • internal base-port start base_port_number :論理 NF が設定されている場合にのみ、ポート範囲を指定します。

次に、設定例を示します。

instance instance-id 1
endpoint geo
  replicas 1
  nodes 2
  internal base-port start 25000
  interface geo-internal
   vip-ip 209.165.201.8 vip-port 7001
  exit
  interface geo-external
   vip-ip 209.165.201.8 vip-port 7002
  exit
exit

Geo モニタリング

ここでは、Geo モニタリングについて説明します。

ポッドモニタリング

ラック間セットアップでポッドモニタリングおよびフェールオーバーしきい値を設定するには、次の設定例を使用します。Geo ポッドは、設定されたポッド名をモニターします。

config 
 geomonitor 
  podmonitor pods pod_name 
   retryCount value 
   retryInterval interval_value 
   retryFailOverInterval failover_interval 
   failedReplicaPercent percent_value 
  exit 
 exit 

  • pods pod_name :モニター対象のポッドの名前を指定します。たとえば、Cache-pod、rest-ep などです。

  • retryCount value :ポッドが ping に失敗した場合に、ポッドがダウンとしてマークされるまで再試行する再試行カウンタ値を指定します。1 〜 10 の範囲の整数で指定する必要があります。

  • retryInterval interval_value :ポッドが ping に成功した場合の再試行間隔をミリ秒単位で指定します。200 ~ 10000 の範囲の整数で指定する必要があります。

  • retryFailOverInterval failover_interval :ポッドが ping に失敗した場合の再試行間隔をミリ秒単位で指定します。200 ~ 10000 の範囲の整数で指定する必要があります。

  • failedReplicaPercent percent_value :ラック間冗長性フェールオーバーがトリガーされるまでの、失敗したレプリカのパーセント値を指定します。10 ~ 100 の範囲の整数で指定する必要があります。

設定例

次に、設定例を示します。

geomonitor podmonitor pods cache-pod
 retryCount 3
 retryInterval 5
 retryFailOverInterval 1
 failedReplicaPercent 40
exit

リモート クラスタ モニタリング

リモート クラスタ モニタリングは、ロール(リモートラックが STANDBY_ERROR 状態の場合はセルフプライマリになる)を自動修正して、トラフィックのトラフィックフローが中断されないようにします。ただし、このロールの自動修正は、特定のロールに対してのみ実行されます。

この機能を設定するには、次の設定例を使用します。

config 
    geomonitor 
        remoteclustermonitor 
            retryCount value 
            retryInterval interval_value 
            end 

  • retryCount value :現在のラックを PRIMARY にする前の再試行回数を指定します。1 〜 10 の範囲の整数で指定する必要があります。デフォルト値は 3 です。

  • retryInterval interval_value :リモートラックのステータスが取得されるまでの再試行間隔をミリ秒単位で指定します。200 ~ 50000 の範囲の整数で指定する必要があります。デフォルト値は 3000 です。

設定例

次に設定例を示します。

geomonitor remoteclustermonitor
retryCount 3
retryInterval 3000

トラフィック モニタリング

次のコマンドを使用して、トラフィックをモニターします。

config 
 geomonitor 
  trafficMonitor 
   thresholdCount value 
   thresholdInterval interval_value 
  exit 
 exit 

  • thresholdCount value :スタンバイインスタンスの受信コール数を指定します。0 〜 10000 の範囲の整数で指定する必要があります。デフォルト値は 0 です。UDP プロキシと REST-EP の両方をカウンタ値と見なす必要があります。

  • thresholdInterval interval_value :しきい値カウント値に達するまでの最長時間をミリ秒単位で指定します。100 〜 10000 の範囲の整数で指定する必要があります。デフォルト値は 3000 です。

設定例

次に設定例を示します。

geomonitor trafficmonitor
thresholdCount 3
thresholdInterval 3000

BFD モニタリング

Bidirectional Forwarding Detection(BFD)プロトコルは、迅速なネットワーク障害検出のために BGP とともに使用されます。クラスタ(NF)との BGP ピアリングの間に接続障害が発生するたびに、フェールオーバーがトリガーされ、トラフィック障害の影響が最小限に抑えられます。

config 
  router bgp as 
    bfd interval interval min_rx min_rx multiplier multiplier 
    loopbackPort loopbackPort loopbackBFDPort loopbackBFDPort 
  interface interface_id  (BGP on non-bonded interface <-- loopbackEth)
    bondingInterface bondingInterface  (leaf6-nic)
    bondingInterface bondingInterface  (leaf6-nic)
    neighbor neighbor_ip_address remote-as remote_as fail-over fail_over_type 
  exit 
  interface interface_id  (BGP on non-bonded interface <-- loopbackEth)
    bondingInterface bondingInterface  (leaf7-nic)
    bondingInterface bondingInterface  (leaf7-nic)
    neighbor bondingInterface remote-as remote_as fail-over fail_over_type 
  exit 
  policy-name policy_name  
   as-path-set as_path_set 
   gateWay gateWay_address 
   interface interface_id_source 
   ip-prefix ip_prefix_value 
   isStaticRoute false | true 
   mask-range mask_range 
   modifySourceIp false | true 
  exit 
exit 

  • bgp as :自律システム(AS)パスセットを指定します。

  • bfd :BFD 構成を指定します。

    • interval interval :BFD 間隔をミリ秒単位で指定します。

    • min_rx min_rx :BFD の最小 RX をミリ秒単位で指定します。

    • multiplier multiplier :BFD 間隔の乗数を指定します。

  • interface interface_id :BGP ローカルインターフェイスを指定します。

    • bondingInterface bondingInterface :リンクされたボンディング インターフェイスを指定します。

    • neighbor neighbor_ip_address :ネイバーの IP アドレスを指定します。

      • fail-over fail_over_type :フェールオーバータイプを指定します。

      • remote-as remote_as :BGP ネイバーの自律システム(AS)番号を指定します。

  • learnDefaultRoute :デフォルトルートを学習し、カーネルスペースに追加します

  • loopbackBFDPort loopbackBFDPort :BFD ローカルポートを指定します。

  • loopbackPort loopbackPort :BGP ローカルポートを指定します。

  • policy-name policy_name :ポリシー名を指定します。

    • as-path-set as_path_set :自律システム(AS)パスセットを指定します。

    • gateWay gateWay_address :ゲートウェイアドレスを指定します。

    • interface interface_id_source :送信元 IP として設定するインターフェイスを指定します。

    • ip-prefix ip_prefix_value :IP プレフィックス値を指定します。

    • isStaticRoute false | true :カーネルスペースでスタティックルートを追加するかどうかを指定します。デフォルト値は false です。

    • mask-range mask_range :マスク範囲を指定します。

    • modifySourceIp false | true :着信ルートの送信元 IP を変更します。デフォルト値は false です。

      true:このオプションは、UDP 関連でない VIP に使用されます。特定のインターフェイスの送信元 IP は、cnSGW-C からパケットを送信するときに送信元 IP として使用されます。

      false:このオプションは、UDP 関連のすべての VIP に使用されます。VIP は、cnSGW-C からパケットを送信するときに送信元 IP として使用されます。

設定例は次のとおりです。

router bgp 65000
  bfd interval 250000 min_rx 250000 multiplier 3
  loopbackPort 179 loopbackBFDPort 3784
interface ens160 (BGP on non-bonded interface <-- loopbackEth)
  bondingInterface enp216s0f0 (leaf6-nic)
  bondingInterface enp216s0f1 (leaf6-nic)
  neighbor leaf6-ip remote-as 60000 fail-over bfd
exit
interface ens192 (BGP on non-bonded interface <-- loopbackEth)
  bondingInterface enp94s0f1 (leaf7-nic)
  bondingInterface enp94s0f0 (leaf7-nic)
  neighbor leaf7-ip remote-as 60000 fail-over bfd
exit
policy-name allow-all ip-prefix 209.165.201.30/0 mask-range 0...32
exit

BFD を使用した BGP ルータ構成

show running-config router          
router bgp 65142
 learnDefaultRoute false
 bfd interval 250000 min_rx 250000 multiplier 3
 interface enp94s0f0.3921
  bondingInterface enp216s0f0
  bondingInterface enp94s0f0
  neighbor 209.165.201.24 remote-as 65141 fail-over bfd
 exit
 interface enp94s0f1.3922
  bondingInterface enp216s0f1
  bondingInterface enp94s0f1
  neighbor 209.165.202.24 remote-as 65141 fail-over bfd

ネイバーの BFD ステータスを表示

show bfd-neigbor
status-details

----- bgpspeaker-pod-1----

Peer             Status

209.165.202.142  STATE_DOWN
----- bgpspeaker-pod-2----

Peer             Status

209.165.202.142  STATE_UP
policy-name allow-n11 ip-prefix 209.165.200.225/54 mask-range 25..32 interface bd1.n11.2271 modifySourceIp true isStaticRoute true gateWay 209.165.201.14

上記の例では、modifySourceIp は true に設定されています。

  • AMF サブネット:209.165.200.225/54

    N11 Svc ボンド物理インターフェイス:bd1.n11.2271(IP アドレス:209.165.201.23)

    N11 Svc ボンド VxLAN Anycast GW:209.165.201.14

    N11 VIP アドレス:209.165.201.7

  • cnSGW-C アウトバウンドパケット(送信元 IP は 209.165.201.23 になります)

    cnSGW-C へのインバウンドパケット(宛先 IP は 209.165.201.7 になります)

policy-name allow-n4-1 ip-prefix 209.165.201.17/41 mask-range 24..32 interface bd2.n4.2274 gateWay 209.165.201.17

上記の例では、modifySourceIp は false(デフォルト)に設定されています。

  • UPF N4 インターフェイス IP:209.165.201.17/41

    N4 Svc ボンド物理インターフェイス:bd2.n4.2274(IP アドレス:209.165.201.23)

    N4 Svc ボンド VxLAN Anycast GW:209.165.201.17

    N4 VIP アドレス:209.165.201.14

  • cnSGW-C アウトバウンドパケット(送信元 IP は 209.165.201.14 になります)

    cnSGW-C へのインバウンドパケット(宛先 IP は 209.165.201.14 になります)

CDL GR の展開

デフォルトでは、CDL は db-ep の 2 つのレプリカ、1 つのスロットマップ(マップごとに 2 つのレプリカ)、および 1 つのインデックスマップ(マップごとに 2 つのレプリカ)で展開されます。


(注)  


YANG の CDL コンテナを設定することを推奨します。


CDL GR の前提条件

CDL GR を展開する前に、ユーザーは次を構成する必要があります。

  • CDL セッションデータベースを設定し、基本設定を定義します。

  • CDL 用の Kafka を設定します。

  • CDL 用の Zookeeper を設定します。

CDL インスタンス認識とレプリケーション

CDL では、既存の GR 関連パラメータとともに、すべてのラックで機能フラグを使用して GR インスタンス認識を有効にする必要があります。また、この機能をすべてのラックで機能させるには、システム ID からスライス名へのマッピングも提供する必要があります。

CDL には Geo レプリケーション(GR)フェールオーバー通知も用意されていているため、セッションデータのタイマーの期限切れ、および現在アクティブなラックへの一括通知を通知できます。CDL は GR フェールオーバー通知のために、App-Infra を介してボーダー ゲートウェイ プロトコル(BGP)を使用します。

CDL は両方の GR ラックのキー値を登録します。登録したキー値に変更があると、App-Infra は CDL に通知を送信します。キー値は、CDL システム ID または GR インスタンスの状態を示します。GR インスタンスは、 キーの CDL システム ID または GR インスタンス ID を使用して CDL スライスにマッピングされます。

システム ID は両方のラックで必須です。NF 構成の GR インスタンス ID が CDL システム ID と一致している必要があります。

CDL には、インスタンス固有のデータスライスがあります。また、ユーザーは起動時にインスタンス固有のスライス情報を設定できます。

  • CDL は、有効期限切れ時またはアクティブなスライスからの一括通知要求時にデータを通知します。

  • CDL は、app-infra memory-cache からの通知に基づいてアクティブインスタンスを決定します。

  • CDL スライスは、異なる種類のデータを保存する CDL インスタンス内のパーティションです。この場合、NF はデータの別のインスタンスを保存します。


(注)  


CDL スライス名は、GR で設定されているスライス名と一致する必要があります。


CDL インスタンス認識の構成

CDL インスタンス認識を構成するには、次のコマンドを使用します。

config 
cdl 
 datastore datastore_session_name 
   features 
     instance-aware-notification 
       enable [ true | false ] 
       system-id system_id 
        slice-names slice_names 
    end 

  • datastore datastore_session_name :データストア名を指定します。

  • enable [ true | false ] :スライスの GR インスタンス状態チェックを有効にします。

  • system-id system_id :システム ID からスライス名へのマッピング。

  • slice-names slice_names :システム ID に関連付けられているスライス名のリストを指定します。CDL スライス名は、GR で設定されているスライス名と一致する必要があります。

次に、設定例を示します。

cdl datastore session
 features instance-aware-notification enable true
 features instance-aware-notification system-id 1
  slice-names [ sgw1 smf1 ]
 exit
 features instance-aware-notification system-id 2
  slice-names [ sgw2 smf2 ]
 end
CDL レプリケーションの設定

ここでは、CDL レプリケーションの設定について説明します。

  1. Geo HA 関連の構成パラメータを使用せずに、Rack-1 CDL HA システムを設定します。

    1. 設定でシステム ID を 1 に設定します。

    2. 要件に従って、スロットマップ/レプリカとインデックスマップ/レプリカと Kafka レプリカを設定します。

    以下に設定例を示します。

    cdl system-id 1 
    cdl node-type session 
    cdl datastore session 
    endpoint replica replica_id 
      slot map 4 
      slot replica 2 
      index map 1 
      index replica 2 
    cdl kafka replica 2 
    
  1. Rack-2 から Rack-1 への通信用に、Rack-1 で外部 IP を設定します。

    1. Rack-1 で Geo レプリケーションを有効にし、リモートラックを Rack-1 の 2 として設定します。

      cdl enable-geo-replication true
    2. Rack-2 からアクセスできるように CDL エンドポイントの外部 IP を設定します。

      cdl datastore session endpoint external-ip site-1_external_ip
    3. すべての Kafka レプリカの外部 IP とポートを設定します。

      したがって、Kafka 用に 2 つのレプリカ(デフォルト)が設定されている場合、ユーザーは異なる <ip>+ <port> ペアでサポートされます。

      cdl kafka external-ip site-1_external_ip port1 cdl kafka external-ip site-1_external_ip port2 
  2. Rack-2 のリモートラック情報を追加します。

    • Rack-2 のリモートラック cdl-ep の設定:

      cdl remote-site 1 db-endpoint host site-1_cdl_ep_ip

      cdl remote-site 1 db-endpoint port site-1_cdl_ep_port

      (ポートの例:8882)

    • Rack-2 のリモートラック Kafka 設定:

      cdl remote-site 1 kafka-server site-1_kafka1_ip site-1_kafka1_port

      cdl remote-site 1 kafka-server site-1_kafka2_ip site-1_kafka2_port

    • セッション データストア コンフィギュレーションをリモート Rack-2 コンフィギュレーションに誘導します。

      cdl datastore session geo-remote-site 1

    • (任意)SSL 証明書を設定して、Rack-1 のリモートラックとのセキュアな接続を確立します。証明書はすべて、複数行の生のテキスト形式です。証明書が有効でない場合、サーバーの接続は非セキュアな接続のままです。

      cdl ssl-config certs site-2_external_ip ssl-key <ssl_key>

      cdl ssl-config certs site-2_external_ip ssl-crt <ssl_crt>

  3. Rack-2 で GR 設定をコミットします。

    • 設定をコミットし、ポッドを Rack-2 に展開します。

    • すべてのポッドが実行状態であることを確認します。

    • 両方のラックを展開したら、両方のラックのミラーメーカーポッドが実行中で、準備完了状態であることを確認します。

HA:

cdl node-type db-ims

cdl datastore session
 endpoint replica 2
 index map    1
 index write-factor 1
 slot replica 2
 slot map     4
 slot write-factor 1
exit

k8 label cdl-layer key smi.cisco.com/node-type value smf-ims-session

Rack-1:

cdl system-id          1
cdl node-type          session
cdl enable-geo-replication true
cdl zookeeper replica 1

cdl remote-site 2
 db-endpoint host 209.165.201.21 >> Rack-2 external CDL IP
 db-endpoint port 8882
 kafka-server 209.165.201.21 10092 >> Rack-2 external CDL IP
 exit
exit

cdl label-config session
 endpoint key smi.cisco.com/node-type1
 endpoint value smf-cdl
 slot map 1
  key   smi.cisco.com/node-type1
  value smf-cdl
 exit
 index map 1
  key   smi.cisco.com/node-type1
  value smf-cdl
 exit
exit
cdl logging default-log-level debug

cdl datastore session
 label-config    session
 geo-remote-site [ 2 ]
 slice-names     [ 1 2 ]
 endpoint cpu-request 100
 endpoint replica 2
 endpoint external-ip 209.165.201.25 >> Rack-1 external CDL IP
 endpoint external-port 8882
 index cpu-request 100
 index replica 2
 index map   1
 slot cpu-request 100
 slot replica 2
 slot map    1
exit

cdl kafka replica 1
cdl kafka label-config key smi.cisco.com/node-type1
cdl kafka label-config value smf-cdl
cdl kafka external-ip 209.165.201.25 10092 >> Rack-1 external CDL IP

Rack-2:

cdl system-id          2
cdl node-type          session
cdl enable-geo-replication true
cdl zookeeper replica 1

cdl remote-site 1
 db-endpoint host 209.165.201.25 >> Rack-1 external CDL IP
 db-endpoint port 8882
 kafka-server 209.165.201.25 10092 >> Rack-1 external CDL IP
 exit
exit

cdl label-config session
 endpoint key smi.cisco.com/node-type12
 endpoint value smf-cdl
 slot map 1
  key   smi.cisco.com/node-type12
  value smf-cdl
 exit
 index map 1
  key   smi.cisco.com/node-type12
  value smf-cdl
 exit
exit

cdl datastore session
 label-config    session
 geo-remote-site [ 1 ]
 slice-names     [ 1 2 ]
 endpoint cpu-request 100
 endpoint replica 2
 endpoint external-ip 209.165.201.21 >> Rack-2 external CDL IP
 endpoint external-port 8882
 index cpu-request 100
 index replica 2
 index map   1
 slot cpu-request 100
 slot replica 2
 slot map    1
exit

cdl kafka replica 1
cdl kafka label-config key smi.cisco.com/node-type12
cdl kafka label-config value smf-cdl
cdl kafka external-ip 209.165.201.21 10092 >> Rack-2 external CDL IP

合法的傍受

合法的傍受(LI)機能を使用すると、法執行機関(LEA)がサブスクライバの通信を傍受できます。LI 機能を使用すると、ネットワークオペレータは、対象のモバイルユーザーの制御メッセージとデータメッセージを傍受できるようになります。このサポートを呼び出すため、LEA はネットワークオペレータに特定のモバイルユーザーの傍受を開始するように要求します。法的な承認がこの要求をサポートします。

  1. 合法的傍受(LI)タップは、すべてのラックで設定/有効にする必要があります。1 つのラックで LI 設定に失敗した場合、特定のサブスクライバのタップをすべてのラックで有効にするように LEA を再設定する必要があります。


    (注)  


    LI タップ設定はラック間で同期されません。

    そのため、LI タップ設定はすべてのラックで必須となります。

    LI タップ設定の詳細については、シスコのテクニカル担当者にお問い合わせください。


  2. GR インスタンス認識は、合法的傍受 src-address にのみ適用されます。

    例:

    lawful-intercept instance 1 src-addr 209.165.200.225

    または

    lawful-intercept 
      instance 1 
        src-addr 209.165.200.225
  3. show コマンドはインスタンスを認識しません。特定のクラスタで設定されているすべてのタップを表示します。

    LI show コマンドの詳細については、シスコのテクニカル担当者にお問い合わせください。

  4. すべての GR インスタンスがクラスタでスタンバイ状態にあり、アクティブな LI タップが失敗し、CLI メッセージ「ラックがスタンバイモードにあるため、アクティブなタップは許可されません。camp on を試行してください」が表示された場合、同じサブスクライバで camp-on タップを設定します。

RADIUS 設定

NAS-IP と NAS-Identifier はインスタンス対応です。プロファイル RADIUS 構成では、instance-id ごとに異なる NAS-IP と NAS-Identifier を構成できます。既存の非インスタンス NAS-IP および NAS-Identifier 構成が、ラックのローカルインスタンスのデフォルト nas-ip およびデフォルト nas-id として使用されます。

次の構成例を参照してください。

profile radius
 attribute
  instance 1
   nas-ip 209.165.200.225  --> Instance-1 specific NAS-IP, used for common AUTH & ACCT
   nas-identifier  smf1    --> Instance-1 specific NAS-Identifier, used for common AUTH & ACCT
  exit
  instance 2
   nas-ip 209.165.200.230  --> Instance-2 specific NAS-IP, used for common AUTH & ACCT
   nas-identifier  smf2    --> Instance-2 specific NAS-Identifier, used for common AUTH & ACCT
  exit
 exit
 accounting
  attribute
   instance 1
    nas-ip 209.165.200.225  --> Instance-1 specific NAS-IP, used for common ACCT
    nas-identifier  smf1    --> Instance-1 specific NAS-Identifier , used for common ACCT
   exit
   instance 2
    nas-ip 209.165.200.230  --> Instance-2 specific NAS-IP, used for common ACCT
    nas-identifier  smf2    --> Instance-2 specific NAS-Identifier , used for common ACCT
   exit
  exit
 exit
 server-group g1
  attribute
   instance 1
    nas-ip 209.165.200.225  --> Instance-1 specific NAS-IP, used for server-group <g1> AUTH & ACCT
    nas-identifier  smf1    --> Instance-1 specific NAS-ID, used for server-group <g1> Auth &Acct
   exit
   instance 2
    nas-ip 209.165.200.230  --> Instance-2 specific NAS-IP, used for server-group <g1> AUTH & ACCT
    nas-identifier  smf2    --> Instance-2 specific NAS-ID,used for server-group <g1>AUTH&ACCT
   exit
  exit
  accounting
   attribute
    instance 1
     nas-ip 209.165.200.225 --> Instance-1 specific NAS-IP, used for server-group <g1> ACCT
     nas-identifier  smf1   --> Instance-1 specific NAS-ID, used for server-group <g1> ACCT
    exit
    instance 2
     nas-ip 209.165.200.230 --> Instance-2 specific NAS-IP, used for server-group <g1> ACCT
     nas-identifier  smf2   --> Instance-2 specific NAS-ID, used for server-group <g1> ACCT
    exit
   exit
  exit
 exit
exit

endpoint ポッド 構成が特定のインスタンスの下に移動するため、Radius Disconnect-Request VIP もインスタンス対応になります。

instance instance-id 1
 endpoint radius
  replicas 1
  interface coa-nas
   vip-ip 209.165.202.130 vip-port 3799  --> Instance-1 specific Radius-Disconnect-Msg-VIP & PORT
  exit
 exit
exit
instance instance-id 2
 endpoint radius
  replicas 1
  interface coa-nas
   vip-ip 209.165.202.129 vip-port 3799  --> Instance-2 specific Radius-Disconnect-Msg-VIP & PORT
  exit
 exit
exit

GR ペアのソフトウェアアップデート

config commit を基準として考慮してください。同じチェックリストは、他のアップグレードシナリオにも適用できます。

チェックリスト


(注)  


両方のラック(ラック 1 とラック 2)で cluster sync を同時に実行しないでください。ラック 1 のアップグレードを続行する前に、ラック 1 で手動スイッチオーバーをトリガーしてください。


  • 両方のラックで同時に config commit を実行しないでください。各ラックで個別に config commit を実行してください。

  • ラック 1 で config commit を実行する前に、ラック 1 で CLI ベースのスイッチオーバーを開始し、ラック 2 に両方のインスタンス(instance-id 1 と instance-id 2)のプライマリ所有権があることを確認してください。

  • ラック 1 で config commit を実行します。config commit が成功し、ポッドが再起動し、実行状態に戻って最新の helm チャートを取得するのを待ちます(該当する場合)。

  • ラック 1 のロールをプライマリに戻します(両方のラックのロールを切り替え/リセットします)。

  • ラック 1(プライマリ)とラック 2(スタンバイ)の使用可能なロールが、予期されるステータスになっていることを確認します。

  • ラック 2 についてもこのチェックリストを繰り返します。

ソフトウェア アップグレード

GR が有効な場合のラック 1 のアップグレード:

  1. ラック 1 の両方のインスタンスで使用可能なロールが PRIMARY/STANDBY であることを確認します。

    show role instance-id 1
    result "PRIMARY"
    show role instance-id 2
    result "STANDBY"
  2. フェールバック間隔を 0 秒にして、ラック 1 の両方のインスタンスのロールの STANDBY への切り替えを開始します。このステップにより、ロールが PRIMARY/STANDBY から STANDBY_ERROR/STANDBY_ERROR に移行します。

    geo switch-role instance-id 1 role standby [failback-interval 0]
    geo switch-role instance-id 2 role standby [failback-interval 0]

    (注)  


    • 両方のラック間のハートビートが正常である必要があります。


  3. ラック 1 の両方のインスタンスの使用可能なロールが、STANDBY_ERROR に変わったことを確認します。

    show role instance-id 1
    result "STANDBY_ERROR"
    show role instance-id 2
    result "STANDBY_ERROR"
  4. ラック 2 の両方のインスタンスの使用可能なロールが、PRIMARY に変わったことを確認します。

    show role instance-id 1
    result "PRIMARY"
    show role instance-id 2
    result "PRIMARY"
  5. ラック 1 の要件に従って、システムモードの shutdown/running を使用して、ローリングアップグレードまたは非グレースフルアップグレードを実行します。レプリケーションが完了するまで、GR のスイッチオーバーと SMF のシャットダウンの間に 5 分の間隔を空けてください。

  6. アップグレード手順の完了後に次の手順を実行します。ラック 1 で正常性チェックを実行して、POD が起動し、ラック 1 が正常であることを確認します。

  7. ラック 1 の両方のインスタンスの使用可能なロールが、STANDBY_ERROR モードのままであることを確認します。

    show role instance-id 1
    result "STANDBY_ERROR"
    show role instance-id 2
    result "STANDBY_ERROR"
  8. ラック 1 の両方のインスタンスのロールの STANDBY へのリセットを開始します。このステップにより、ロールが STANDBY_ERROR/STANDBY_ERROR から STANDBY/STANDBY に移行します。

    geo reset-role instance-id 1 role standby
    geo reset-role instance-id 2 role standby
  9. ラック 1 の両方のインスタンスのロールが STANDBY に変わったことを確認します。

    show role instance-id 1
    result "STANDBY"
    show role instance-id 2
    result "STANDBY"
  10. ラック 2 の instance-id 1 のロールの STANDBY への切り替えを開始します。この手順により、ラック 2 の使用可能なロールが PRIMARY/PRIMARY から STANDBY_ERROR/PRIMARY に、ラック 1 の使用可能なロールが STANDBY/STANDBY から PRIMARY/STANDBY に移行します。

    geo switch-role instance-id 1 role standby [failback-interval 0]
  11. ラック 2 のインスタンスで使用可能なロールが STANDBY_ERROR/PRIMARY であることを確認します。

    show role instance-id 1
    result "STANDBY_ERROR"
    show role instance-id 2
    result "PRIMARY"
  12. ラック 1 の両方のインスタンスで使用可能なロールが PRIMARY/STANDBY であることを確認します。

    show role instance-id 1
     result "PRIMARY"
    show role instance-id 2
     result "STANDBY"
  13. ラック 2 の instance-id 1 のロールの STANDBY へのリセットを開始します。このステップにより、ラック 2 のロールが STANDBY_ERROR/PRIMARY から STANDBY/PRIMARY に移行します。

    geo reset-role instance-id 1 role standby
  14. ラック 2 の両方のインスタンスで使用可能なロールが STANDBY/PRIMARY であることを確認します。

    show role instance-id 1
    result "STANDBY"
    show role instance-id 2
     result "PRIMARY"

GR が有効な場合のラック 2 のアップグレード:

  1. ラック 2 の両方のインスタンスで使用可能なロールが STANDBY/PRIMARY であることを確認します。

    show role instance-id 1
    result "STANDBY"
    show role instance-id 2
    result "PRIMARY"
  2. フェールバック間隔を 0 秒にして、ラック 2 の両方のインスタンスのロールの STANDBY への切り替えを開始します。このステップにより、ロールが STANDBY/PRIMARY から STANDBY_ERROR/STANDBY_ERROR に移行します。

    geo switch-role instance-id 1 role standby [failback-interval 0]
    geo switch-role instance-id 2 role standby [failback-interval 0]
  3. ラック 2 の両方のインスタンスの使用可能なロールが、STANDBY_ERROR に変わることを確認します。

    show role instance-id 1
    result "STANDBY_ERROR"
    show role instance-id 2
    result "STANDBY_ERROR"
  4. ラック 1 の両方のインスタンスの使用可能なロールが、PRIMARY に変わることを確認します。

    show role instance-id 1
     result "PRIMARY"
    show role instance-id 2
     result "PRIMARY"
  5. ラック 2 の要件に従って、システムモードの shutdown/running を使用して、ローリングアップグレードまたは非グレースフルアップグレードを実行します。

  6. アップグレード手順の完了後に次の手順を実行します。ラック 2 で正常性チェックを実行して、POD が起動し、ラック 2 が正常であることを確認します。

  7. ラック 2 の両方のインスタンスの使用可能なロールが、STANDBY_ERROR のままであることを確認します。

    show role instance-id 1
    result "STANDBY_ERROR"
    show role instance-id 2
    result "STANDBY_ERROR"
  8. ラック 2 の両方のインスタンスのロールの STANDBY へのリセットを開始します。このステップにより、ロールが STANDBY_ERROR/STANDBY_ERROR から STANDBY/STANDBY に移行します。

    geo reset-role instance-id 1 role standby
    geo reset-role instance-id 2 role standby
  9. ラック 2 の両方のインスタンスの使用可能なロールが、STANDBY に変わることを確認します。

    show role instance-id 1
    result "STANDBY"
    show role instance-id 2
    result "STANDBY"
  10. ラック 1 の instance-id 2 のロールの STANDBY への切り替えを開始します。この手順により、ラック 1 の使用可能なロールが PRIMARY/PRIMARY から PRIMARY/STANDBY_ERROR に、ラック 1 の使用可能なロールが STANDBY/STANDBY から STANDBY/PRIMARY に移行します。

    geo switch-role instance-id 2 role standby [failback-interval 0]
  11. ラック 1 の両方のインスタンスで使用可能なロールが PRIMARY/STANDBY_ERROR であることを確認します。

    show role instance-id 1
    result "PRIMARY"
    show role instance-id 2
    result "STANDBY_ERROR"
  12. ラック 2 の両方のインスタンスで使用可能なロールが STANDBY/PRIMARY であることを確認します。

    show role instance-id 1
    result "STANDBY"
    show role instance-id 2
    result "PRIMARY"
  13. ラック 1 の instance-id 2 のロールの STANDBY へのリセットを開始します。このステップにより、ラック 1 のロールが PRIMARY/STANDBY_ERROR から PRIMARY/STANDBY に移行します。

    geo reset-role instance-id 2 role standby
  14. ラック 1 の両方のインスタンスで使用可能なロールが PRIMARY/STANDBY であることを確認します。

    show role instance-id 1
    result "PRIMARY"
    show role instance-id 2
    result "STANDBY"

GR CLI

ここでは、GR CLI ベースのコマンドについて説明します。

Geo ロールの切り替え

GR ロールを切り替えるには、プライマリラックでコマンドを開始し(たとえば、PRIMARY ロールから STANDBY のみ)、次のコマンドを使用します。

geo switch-role { role primary | standby  instance-id gr_instanceId [ failback-interval  failback_interval ] } 

  • role role :特定のラックに新しいロールを指定します。

    ロールは、primary または standby です。特定の GR インスタンス ID のプライマリロールから手動スイッチオーバーをトリガーする必要があります。

  • instance-id gr_instanceId :GR インスタンス ID を指定します

  • failback-interval は、リリース間のアップグレードの下位互換性を提供するオプションのコマンドです。failback-interval の推奨値は 0 です。


重要


geo switch-role コマンドは、特定のインスタンス ID について、あるラックから別のラックへの手動フェールオーバーをトリガーします。フェールオーバーをトリガーするラックが、PRIMARY ロールから STANDBY_ERROR ロールに変更されます。その間、フェールオーバーをトリガーするラックは、別のラックにフェールオーバー(GR トリガー)メッセージを送信します。フェールオーバーメッセージを受信した他のラックは、STANDBY ロールから PRIMARY ロールに変更されます。


Geo ロールのリセット

GR インスタンスのロールをリセットする(たとえば STANDBY_ERROR のロールから STANDBYPRIMARY へ)には、次のコマンド例を使用します。

geo reset-role role role instance-id gr_instanceId 

  • role role :指定のラックに新しいロールを指定します。

    ロールは PRIMARY または STANDBYです。

  • instance-id gr_instanceId :GR インスタンス ID を指定します。


重要


geo reset-role コマンドは、ローカルラックの特定のインスタンスでロールの変更をトリガーします。リモートラックは、同じコマンドのメッセージを受信しません。特定のインスタンス ID のロールを STANDBY_ERROR から STANDBY に、および STANDBY から PRIMARYに変更することのみが可能です。別のロールの変更はできません。


トラブルシューティング

ここでは、さまざまな該当するトラブルシューティングのシナリオについて説明します。

show/clear コマンド

ここでは、問題のデバッグに役立つ show/clear コマンドについて説明します。

clear subscriber

gr-instance 対応サブスクライバをクリアするには、次のコマンドを使用します。

clear subscriber all gr-instance gr_instanceId 

(注)  


gr-instance はオプションのパラメータです。gr-instance が指定されていない場合、show subscriber all ではそのラックのローカルインスタンス ID が考慮されます。


次に、設定例を示します。

clear subscriber all gr-instance 1 
result 
ClearSubscriber Request submitted
show BFD Status

ネイバーの BFD ステータスを表示するには、次のコマンドを使用します。

show bfd-neighbor 

次に、いくつかの構成例を示します。

show bfd-neighbor
status-details

-----example-bgp-ep-1 ----

Peer             Status

 209.165.202.142  STATE_DOWN
-----example-bgp-ep-2 ----

Peer             Status

 209.165.202.142  STATE_DOWN
show bfd-neigbor 
status-details 

-----bgpspeaker-pod-1 ----

Peer             Status

 209.165.202.131
-----bgpspeaker-pod-2 ----

Peer             Status

 209.165.202.131   STATE_UP
show BGP Global

BGP グローバル構成を表示するには、次のコマンドを使用します。

show bgp-global 

次に、いくつか設定例を示します。

show bgp-global
global-details
-----example-bgp-ep-2 ----
AS:        65000
Router-ID: 209.165.202.149
Listening Port: 179, Addresses: 209.165.202.149
-----example-bgp-ep-1 ----
AS:        65000
Router-ID: 209.165.202.148
Listening Port: 179, Addresses: 209.165.202.148
show bgp-global 
global-details 

-----bgpspeaker-pod-2 ----
AS:        65061
Router-ID: 209.165.202.132
Listening Port: 179, Addresses: 209.165.202.132
show bgp kernel route

BGP カーネル構成ルートを表示するには、次のコマンドを使用します。

show bgp-kernel-route kernel-route 

次に、いくつかの構成例を示します。

show bgp-kernel-route 
kernel-route

-----example-bgp-ep-2 ----

 DestinationIP  SourceIP        Gateway

-----example-bgp-ep-1 ----

 DestinationIP      SourceIP          Gateway
 209.165.202.133    209.165.202.148   209.165.202.142
 209.165.202.134    209.165.202.148   209.165.202.142
show bgp-kernel-route 
kernel-route 

-----bgpspeaker-pod-2 ----

 DestinationIP        SourceIP            Gateway

 209.165.202.135    209.165.202.132    209.165.202.131

-----bgpspeaker-pod-1 ----

 DestinationIP  SourceIP        Gateway
show bgp neighbors

BGP ネイバーのステータスを表示するには、次のコマンドを使用します。

show bgp-neighbors neighbor-details 
show bgp-neighbors ip ip_address neighbor-details 

次に、いくつかの構成例を示します。

show bgp-neighbors neighbor-details
-----example-bgp-ep-1 ----
Peer             AS  Up/Down State       |#Received  Accepted
209.165.202.142 60000 00:25:06 Establ      |        3         3
-----example-bgp-ep-2 ----
Peer             AS Up/Down State       |#Received  Accepted
209.165.202.142 60000   never Idle        |        0         0
show bgp-neighbors ip 209.165.202.142 neighbor-details
-----example-bgp-ep-2 ----
BGP neighbor is 209.165.202.142, remote AS 60000
  BGP version 4, remote router ID unknown
  BGP state = ACTIVE
  BGP OutQ = 0, Flops = 0
  Hold time is 0, keepalive interval is 0 seconds
  Configured hold time is 90, keepalive interval is 30 seconds

  Neighbor capabilities:
    multiprotocol:
        ipv4-unicast:   advertised
    route-refresh:      advertised
    extended-nexthop:   advertised
        Local:  nlri: ipv4-unicast, nexthop: ipv6
    4-octet-as: advertised
  Message statistics:
                         Sent       Rcvd
    Opens:                130          0
    Notifications:          0          0
    Updates:                0          0
    Keepalives:             0          0
    Route Refresh:          0          0
    Discarded:              0          0
    Total:                130          0
  Route statistics:
    Advertised:             0
    Received:               0
    Accepted:               0

-----example-bgp-ep-1 ----
BGP neighbor is 209.165.202.142, remote AS 60000
  BGP version 4, remote router ID 209.165.202.136
  BGP state = ESTABLISHED, up for 00:25:20
  BGP OutQ = 0, Flops = 0
  Hold time is 90, keepalive interval is 30 seconds
  Configured hold time is 90, keepalive interval is 30 seconds

  Neighbor capabilities:
    multiprotocol:
        ipv4-unicast:   advertised and received
    route-refresh:      advertised and received
    extended-nexthop:   advertised
        Local:  nlri: ipv4-unicast, nexthop: ipv6
    4-octet-as: advertised and received
  Message statistics:
                         Sent       Rcvd
    Opens:                  1          1
    Notifications:          0          0
    Updates:                1          1
    Keepalives:            51         51
    Route Refresh:          0          0
    Discarded:              0          0
    Total:                 53         53
  Route statistics:
    Advertised:             0
    Received:               3
    Accepted:               3
show bgp route summary

BGP ルートサマリを表示するには、次のコマンドを使用します。

show bgp-route-summary 

次に、設定例を示します。

show bgp-route-summary
route-details
-----example-bgp-ep-1 ----
Table afi:AFI_IP safi:SAFI_UNICAST
Destination: 5, Path: 5
-----example-bgp-ep-2 ----
Table afi:AFI_IP safi:SAFI_UNICAST
Destination: 2, Path: 2
BGP ルートの表示

BGP ルート情報を表示するには、次のコマンドを使用します。

show bgp-routes 

次に、設定例を示します。

show bgp-routes
bgp-route

-----example-bgp-ep-1 ----
   Network              Next Hop             AS_PATH      Age        Attrs
*> 209.165.202.133/24   209.165.202.142        60000      00:25:55   [{Origin: i} {Med: 0}]
*> 209.165.200.225/32   209.165.202.148                   00:26:00   [{Origin: e} {LocalPref: 100} {Med: 600}]
*> 209.165.202.134/24   209.165.202.142        60000      00:25:55   [{Origin: i} {Med: 0}]
*> 209.165.202.140/24   209.165.202.142        60000      00:25:55   [{Origin: i} {Med: 0}]
*> 209.165.202.146/32   209.165.202.148                   00:26:00   [{Origin: e} {LocalPref: 100} {Med: 600}]

-----example-bgp-ep-2 ----
   Network              Next Hop             AS_PATH      Age        Attrs
*> 209.165.200.225/32   209.165.202.149                   00:26:24   [{Origin: e} {LocalPref: 100} {Med: 600}]
*> 209.165.202.146/32   209.165.202.149                   00:26:24   [{Origin: e} {LocalPref: 100} {Med: 600}]
show endpoint

gr-instance 対応になったエンドポイントを表示するには、次のコマンドを使用します。

show endpoint all grInstance gr_instanceId 

(注)  


grInstance はオプションのパラメータです。grInstance が指定されていない場合、show subscriber all ではそのラックのローカルインスタンス ID が考慮されます。


次に、設定例を示します。

show endpoint all grInstance 1
                                                                               START     STOPPED  GR        
ENDPOINT                          ADDRESS        TYPE  STATUS   INTERFACE  INTERNAL  TIME      TIME     INSTANCE  
-----------------------------------------------------------------------------------------------------------------
209.165.202.137:2123       209.165.202.137:2123  Udp   Started             false     10 hours  <none>   1         
Gtpu:209.165.202.137:2152  209.165.202.137:2152  Udp   Started  GTPU       false     10 hours  <none>   1         
N4:209.165.202.137:8806    209.165.202.137:8806  Udp   Started  N4         false     10 hours  <none>   1         
S2B-GTP                    209.165.202.138:2124  Udp   Started  s2b        false     10 hours  <none>   1         
S5-GTP                     209.165.202.138:2125  Udp   Started  s5         false     10 hours  <none>   1         
S5S8S2B-GTP                209.165.202.138:2123  Udp   Started  s5s8s2b    false     10 hours  <none>   1         
Sxa:209.165.202.137:8805   209.165.202.137:8805  Udp   Started  SXA        false     10 hours  <none>   1         
n10-1                      209.165.202.139:9010  Rest  Started  N10-1      false     10 hours  <none>   1         
n11-1                      209.165.202.139:9011  Rest  Started  N11-1      false     10 hours  <none>   1         
n40-1                      209.165.202.139:9040  Rest  Started  N40-1      false     10 hours  <none>   1         
n7-1                       209.165.202.139:9007  Rest  Started  N7-1       false     10 hours  <none>   1         
sbi-1                      209.165.202.139:8090  Rest  Started  SBI-1      false     10 hours  <none>   1
ETCD/キャッシュポッドのレプリケーションの表示

etcd および cache-pod データのレプリケーションの詳細を表示するには、次のコマンドを使用します。

show georeplication checksum instance-id gr_instanceId 

次に、設定例を示します。

show georeplication checksum instance-id 
Value for 'instance-id' (<string>): 1
checksum-details 
--              ----    --------
 ID             Type    Checksum
 --             ----    --------
 1              ETCD    1617984439
 IPAM           CACHE   1617984439
 NRFCache       CACHE   1617984439
 NRFSubs        CACHE   1617984439
 IDMGR          CACHE   1617984439
 NRFMgmt        CACHE   1617984439
show role

GR インスタンスの現在のロールを表示するには、次のコマンドを使用します。

show role instance-id gr_instanceId 

(注)  


ロールで使用可能な値のリストは次のとおりです。

  • プライマリ

  • STANDBY

  • FAILOVER_INIT

  • FAILOVER_COMPLETE

  • STANDBY_ERROR

  • FAILBACK_STARTED


次に、いくつか設定例を示します。

show role instance-id 1
result
"PRIMARY"
show role instance-id 2
result
"STANDBY"
type と address を使用した show ipam dp

インスタンス ID とリモートインスタンスのチャンクを示すフラグを表示するには、次のコマンドを使用します。

show ipam dp { dp_type } { addr_type } 

  • dp dp_type :DP タイプを指定します。

  • addr_type :IPv4/IPv6 アドレスタイプを指定します。

次に、設定例を示します。

show ipam dp 209.165.202.145:209.165.202.144  ipv4-addr 
=================================================================
Flag Indication: S(Static) O(Offline) R(For Remote Instance)
G:N/P Indication: G(GR InstId) N(Native NM InstId) P(Peer NM InstId)
=================================================================
StartAddress    EndAddress      AllocContext                    Route              G:N/P Utilization Flag 
=================================================================
209.165.200.240 209.165.200.243 209.165.202.145:209.165.202.144 209.165.200.240/24 1:0/1 0.00%        R
=================================================================
show ipam dp

この DP のチャンクを持つすべてのインスタンスを表示するには、次のコマンドを使用します。

show ipam dp dp_name 

  • dp dp_name :データプレーン割り当て名を指定します。

次に、設定例を示します。

show ipam dp 209.165.202.145:209.165.202.144
--------------------------------------------------------
Ipv4Addr [Total/Used/Utilization] = 257 / 1 / 0.39%
Ipv6Addr [Total/Used/Utilization] = 0 / 0 / 0.00%
Ipv6Prefix [Total/Used/Utilization] = 2048 / 0 / 0.00%
Instance ID = 1
--------------------------------------------------------
show ipam pool

プールが構成されているインスタンス ID 情報を表示するには、次のコマンドを使用します。

show ipam pool pool_name 

  • pool pool_name :プール名を指定します。

次に、いくつかの構成例を示します。

show ipam pool 

==========================================================================================
PoolName                       Ipv4Utilization  Ipv6AddrUtilization  Ipv6PrefixUtilization
==========================================================================================
poolv6DNN2                     0.00%            0.00%                0.00%
poolv6                         0.00%            0.00%                0.00%
poolv4vDNN                     0.00%            0.00%                0.00%
poolv4DNN2                     0.00%            0.00%                0.00%
poolv4                         0.00%            0.00%                0.00%
poolv6vDNN                     0.00%            0.00%                0.00%
poolv4DNN3                     -                -                    -
==========================================================================================
show ipam pool poolv4DNN3
--------------------------------------------------------
Ipv4Addr [Total/Used/Utilization] = 2814 / 0 / -
Ipv6Addr [Total/Used/Utilization] = 0 / 0 / -
Ipv6Prefix [Total/Used/Utilization] = 65536 / 0 / -
Instance ID = 1
isStatic = true
--------------------------------------------------------
show ipam pool poolv4 
--------------------------------------------------------
 Ipv4Addr   [Total/Used/Utilization] = 2814 / 0 / 0.00%
 Ipv6Addr   [Total/Used/Utilization] = 0 / 0 / 0.00%
 Ipv6Prefix [Total/Used/Utilization] = 0 / 0 / 0.00%
 Instance ID                         = 1
--------------------------------------------------------
show nrf discovery-info discovery-filter

GR インスタンス ID 情報を表示して、検出フィルタ情報が属する GR インスタンスを判断するには、次のコマンドを使用します。

show nrf discovery-info nf_type discovery-filter 

次に、設定例を示します。

=====================================================
--------------------------------------------------------
Discovery Filter: dnn=intershat;
Expiry Time: 1580146356
GR Instance ID: 1
--------------------------------------------------------
=====================================================================
show nrf discovery-info

GR インスタンス ID 情報を表示して、検出情報が属する GR インスタンスを判別するには、次のコマンドを使用します。

show nrf discovery-info 

次に、設定例を示します。

show nrf discovery-info
=====================================================
------Discovered NFs:-------
    NF Type: AMF
    Number of Discovery Filters: 15
    Number of NF Profiles: 15
    GR Instance ID: 1
------Discovered NFs:-------
    NF Type: UDM
    Number of Discovery Filters: 1
    Number of NF Profiles: 3
    GR Instance ID: 2
=====================================================
show nrf registration-info

GR インスタンス ID 情報を表示して、登録情報が属する GR インスタンスを特定するには、次のコマンドを使用します。

show nrf registration-info 

次に、設定例を示します。

show nrf registration-info
======================================================================
 NF Status: Not Registered
 Registration Time:
 Active MgmtEP Name:
 Heartbeat Duration: 0
 GR Instance ID: 1
========
show nrf registration-info 

======================================================================
 Gr-instance: 
 NF Status: Not Registered
 Registration Time: 
 Active MgmtEP Name: 
 Heartbeat Duration: 0
 Uri: 
 Host Type:  

======================================================================
 Gr-instance: 
 NF Status: Not Registered
 Registration Time: 
 Active MgmtEP Name: 
 Heartbeat Duration: 0
 Uri: 
 Host Type:  

======================================================================
show nrf subscription-info

サブスクリプション情報が属する GR インスタンスを判別するために GR インスタンス ID 情報を表示するには、次のコマンドを使用します。

show nrf subscription-info 

次に、設定例を示します。

show nrf subscription-info
=====================================================================
NF Instance Id: f9882966-a253-32d1-8b82-c785b34a7cc9
SubscriptionID : subs123459
Actual Validity Time : 2020-01-21 12:39:45 +0000 UTC
Requested Validity Time : 2020-01-21 12:39:45 +0000 UTC
GR Instance ID: 1
=====================================================================
show peers

gr-instance 対応になったピアを表示するには、次のコマンドを使用します。

show peers all grInstance gr_instanceId 

(注)  


grInstance はオプションのパラメータです。grInstance が指定されていない場合、show subscriber all ではそのラックのローカルインスタンス ID が考慮されます。


次に、設定例を示します。

show peers all grInstance 1
                                                       POD              CONNECTED       ADDITIONAL  INTERFACE  GR        
ENDPOINT  LOCAL ADDRESS   PEER ADDRESS     DIRECTION  INSTANCE TYPE TIME     RPC DETAILS NAME       INSTANCE  
-------------------------------------------------------------------------------------------------------------------------
<none>  209.165.202.139 209.165.201.22:8001 Outbound rest-ep-0 Rest 10 hours UDM <none>  n10        1         
<none>  209.165.202.139 209.165.201.22:8002 Outbound rest-ep-0 Rest 10 hours AMF <none>  n11        1         
<none>  209.165.202.139 209.165.201.22:8003 Outbound rest-ep-0 Rest 10 hours PCF <none>  n7         1         
<none>  209.165.202.139 209.165.201.22:8004 Outbound rest-ep-0 Rest 10 hours CHF <none>  n40        1         
<none>  209.165.202.139 209.165.201.22:9040 Outbound rest-ep-0 Rest 10 hours CHF <none>  n40 
show role

インスタンスのロールを表示するには、次のコマンドを使用します。

show role 

次に、いくつかの構成例を示します。

show role instance-id 2
result "PRIMARY"
show role instance-id 1
result "PRIMARY"
show subscriber

gr-instance 対応にするサブスクライバの詳細を表示するには、次のコマンドを使用します。

show subscriber { all | gr-instance gr_instanceId } 

(注)  


show subscriber all は、 ローカル インスタンス サブスクライバの詳細のみを表示します。

gr-instance はオプションのパラメータです。gr-instance が指定されていない場合、show subscriber all ではそのラックのローカルインスタンス ID が考慮されます。


次に、設定例を示します。

show subscriber gr-instance 1 all
subscriber-details
{
"subResponses": [
[
""
],
[
""
],
[
"roaming-status:homer",
"supi:imsi-123456789300001",
"gpsi:msisdn-22331010301010",
"psid:1",
"dnn:intershat",
"emergency:false",
"rat:nr",
"access:3gpp access",
"connectivity:5g",
"udm-uecm:209.165.202.150",
"udm-sdm:209.165.202.150",
"auth-status:unauthenticated",
"pcfGroupId:PCF-*",
"policy:2",
"pcf:209.165.202.152",
"upf:209.165.202.154",
"upfEpKey:209.165.202.154:209.165.202.158",
"ipv4-addr:v4pool1/209.165.200.250",
"ipv4-pool:v4pool1",
"ipv4-range:v4pool1/209.165.200.249",
"ipv4-startrange:v4pool1/209.165.200.250",
"id-index:1:0:0:32768",
"id-value:8",
"chfGroupId:CHF-*",
"chf:209.165.202.151",
"amf:209.165.202.153",
"peerGtpuEpKey:209.165.202.154:209.165.202.155",
"namespace:smf",
"nf-service:smf"
]
]
}

モニターサブスクライバ

サブスクライバのメッセージをキャプチャするには(GR インスタンス対応)、次のコマンドを使用します。


(注)  


2021.02 以降のリリースでは、namespace キーワードは廃止され、nf-service キーワードに置き換えられました。


次に、設定例を示します。

monitor subscriber imsi 123456789 gr-instance 1
supi: imsi-123456789
captureDuration: 300
enableInternalMsg: false
enableTxnLog: false
namespace(deprecated. Use nf-service instead.): none
nf-service: none
gr-instance: 1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   295  100    98  100   197  10888  21888 --:--:-- --:--:-- --:--:-- 29500
Command: --header Content-type:application/json --request POST --data 
{"commandname":"mon_sub","parameters":{"supi":"imsi-123456789","duration":300,
"enableTxnLog":false,"enableInternalMsg":false,"action":"start","namespace":"none",
"nf-service":"none","grInstance":1}} http://oam-pod:8879/commands
Result start mon_sub, fileName ->logs/monsublogs/none.imsi-123456789_TS_2021-04-09T09:59:59.964148895.txt
Starting to tail the monsub messages from file: logs/monsublogs/none.imsi-123456789_TS_2021-04-09T09:59:59.964148895.txt
Defaulting container name to oam-pod.
Use 'kubectl describe pod/oam-pod-0 -n smf' to see all the containers in this pod.

モニタープロトコル

異なるインターフェイスでパケットをキャプチャするには(gr インスタンス対応)、次のコマンドを使用します。

monitor protocol { interface interface_name [ capture-duration duration  | gr-instancegr_instance | pcacp yes | | ] | list [ | ] }  

  • interface interface_name :PCAP がキャプチャされるインターフェイス名を指定します。この CLI では、1 つの CLI コマンドで複数のインターフェイス名を設定できます。

  • capture-duration duration :pcap がキャプチャされる期間を秒単位で指定します。デフォルトは 300 秒(5 分)です。

  • 構成されたインターフェイス名は show endpoint 、 CLI コマンドを使用して取得できます。

  • pcap yes :このオプションを構成すると、PCAP ファイルの生成が有効になります。デフォルトでは、このオプションは無効になっています。

  • list :プロトコルリストファイルをモニタリングします。

次に、設定例を示します。

monitor protocol interface sbi gr-instance 1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   220  100    95  100   125   8636  11363 --:--:-- --:--:-- --:--:-- 20000
Command: --header Content-type:application/json --request POST --data 
{"commandname":"mon_pro","parameters":{"interface":"sbi","duration":300,"action":
"start","enable_pcap":false,"grInstance":1}} http://oam-pod:8879/commands
Result start mon_pro, fileName ->logs/monprologs/sessintfname_sbi_at_2021-04-30T05:26:22.712229347.txt
Starting to tail the monpro messages from file: logs/monprologs/sessintfname_sbi_at_2021-04-30T05:26:22.712229347.txt
Defaulting container name to oam-pod.
Use 'kubectl describe pod/oam-pod-0 -n cn' to see all of the containers in this pod.

地理的冗長性 OAM のサポート

ここでは、この機能の操作、管理、およびメンテナンスに関して説明します。

RMA 手順の前提条件

GR 展開の場合、 ノードモニターポッドが自動的に開始されます。RRMA 手順中に、ノードがドレインおよび削除され、マルチコンピューティング障害が検出された場合、ノードモニターポッドは自動的にそのラックをシャットダウンします。

RMA(返品許可)の詳細については、『Ultra Cloud Core:サブスクライバ マイクロサービス インフラストラクチャ』 の 「SMI クラスタの RMA」セクションを参照してください。

RMA 手順を開始する前に、次の手順を実行してください。

  1. geo switch-role role コマンドを使用して両方のインスタンスのロールを他方のラックに切り替え、RMA 対象のラックが両インスタンスともに STANDBY_ERROR ロールになっていることを確認します。

  2. ノードモニターポッドを無効にします。

    1. daemonsets のバックアップを取ります。

      kubectl get daemonsets node-monitor -n cn -o yaml > node-monitor.yaml

    2. ノードモニターポッドを削除します。

      kubectl delete daemonsets node-monitor -n cn

  3. RMA 手順に進みます。詳細については、リンクを参照してください:

  4. RMA 手順が完了したら、ノードモニターポッドがすでに生成されているかどうかを確認します。

    kubectl get pods -n cn -o wide | grep node-monitor

    ノードモニターポッドが開始していない場合は、再起動します。

    kubectl create -f node-monitor.yaml

    (注)  


    node-monitor.yaml ファイルは、ステップ 2.aと同じです。


  5. インスタンスのロールを適宜修正します。


(注)  


以前の SMI バージョンと現在の SMI バージョンの両方の場合:

  • mLOM カードなどのファームウェアを含む RMA の手順中にハードウェアコンポーネントを交換する場合、修理または交換したノードをクラスタに戻す前に HUU(ホスト アップグレード ユーティリティ)を実行して、コンポーネントがシステムと互換性があることを確認してからノードをサービスに同期させる必要があります。

  • RMA の一環として、クラスタからノードを削除し、それを製造元に返却する場合は、ハードウェアベンダーの指示に従ってデバイス上のすべてのデータを消去する必要があります。


ヘルス チェック

次のセクションでは、GR セットアップの正常性チェックに関する情報を提供します。

  • すべての重要なポッドは、ユーザートラフィックを処理できる良好な状態です。

    GR および CDL に関連するポッドが実行状態にあるかどうかを確認するには、次のコマンドを使用します。

    kubectl get pods -n cn-cn1 -o wide | grep georeplication-pod
    kubectl get pods -n cn-cn1 -o wide | grep cdl
    kubectl get pods -n cn-cn1 -o wide | grep mirror-maker
  • キープアライブポッドは正常な状態になり、check-interface/check-port 用に構成されたすべての VIP をモニタリングします。

    次のコマンドを使用して、「smi-vips」名前空間のキープアライブポッドが「実行」状態であるかどうかを確認します。

    kubectl get pods -n smi-vips

  • CDL に関連するポッドの正常性チェック:CDL DB エンドポイント、スロット、およびインデックスのステータスを確認します。システム ID 1 と 2 の両方で、すべてのが STARTED または ONLINE 状態になっている必要があります。

    cdl show status 
    message params: {cmd:status mode:cli dbName:session sessionIn:{mapId:0 limit:500 key: purgeOnEval:0 filters:[] nextEvalTsStart:0 nextEvalTsEnd:0 allReplicas:false maxDataSize:4096} sliceName:}
    db-endpoint {
        endpoint-site {
            system-id 1
            state STARTED
            total-sessions 4
            site-session-count 2
            total-reconciliation 0
            remote-connection-time 66h37m31.36054781s
            remote-connection-last-failure-time 2021-07-13 11:24:10.233825924 +0000 UTC
            slot-geo-replication-delay 2.025396ms
        }
        endpoint-site {
            system-id 2
            state STARTED
            total-sessions 4
            site-session-count 2
            total-reconciliation 0
            remote-connection-time 66h58m49.83449066s
            remote-connection-last-failure-time 2021-07-13 11:02:51.759971655 +0000 UTC
            slot-geo-replication-delay 1.561816ms
        }
    }
    slot {
        map {
            map-id 1
            instance {
                system-id 1
                instance-id 1
                records 4
                capacity 2500000
                state ONLINE
                avg-record-size-bytes 1
                up-time 89h38m37.335813523s
                sync-duration 9.298061ms
            }
            instance {
                system-id 1
                instance-id 2
                records 4
                capacity 2500000
                state ONLINE
                avg-record-size-bytes 1
                up-time 89h39m11.1268024s
                sync-duration 8.852556ms
            }
            instance {
                system-id 2
                instance-id 1
                records 4
                capacity 2500000
                state ONLINE
                avg-record-size-bytes 1
                up-time 89h28m38.274713022s
                sync-duration 8.37766ms
            }
            instance {
                system-id 2
                instance-id 2
                records 4
                capacity 2500000
                state ONLINE
                avg-record-size-bytes 1
                up-time 89h29m37.934345015s
                sync-duration 8.877442ms
            }
        }
    }
    index {
        map {
            map-id 1
            instance {
                system-id 1
                instance-id 1
                records 4
                capacity 60000000
                state ONLINE
                up-time 89h38m16.119032086s
                sync-duration 2.012281769s
                leader false
                geo-replication-delay 10.529821ms
            }
            instance {
                system-id 1
                instance-id 2
                records 4
                capacity 60000000
                state ONLINE
                up-time 89h39m8.47664588s
                sync-duration 2.011171261s
                leader true
                leader-time 89h38m53.761213379s
                geo-replication-delay 10.252683ms
            }
            instance {
                system-id 2
                instance-id 1
                records 4
                capacity 60000000
                state ONLINE
                up-time 89h28m29.5479133s
                sync-duration 2.012101957s
                leader false
                geo-replication-delay 15.974538ms
            }
            instance {
                system-id 2
                instance-id 2
                records 4
                capacity 60000000
                state ONLINE
                up-time 89h29m11.633496562s
                sync-duration 2.011566639s
                leader true
                leader-time 89h28m51.29928233s
                geo-replication-delay 16.213323ms
            }
        }
    }
  • CDL レプリケーションステータス

    [CDL Replication Stats] Grafana ダッシュボードの [GRPC_Connections_to_RemoteSite] パネルのラック全体で、(各名前空間の)CDL EP セッションポッド間で 4 つの gRPC 接続が確立されているかどうかを確認します。両方のラックで Grafana をチェックします。

  • Geo レプリケーション用のラック間の管理ポートステータス。

    [GR Statistics] Grafana ダッシュボードの [Periodic_Heartbeat_to_Remote_Site] パネルで、ラック全体の Geo レプリケーションポッド間のハートビートメッセージを確認します。

  • ラック上の BGP/BFD リンクステータス

    BGP ピアとの隣接関係が確立されているかどうかを、[BGP, BFD Statistics] Grafana ダッシュボードの [BGP Peers] パネルで確立しているかどうかを確認します。

    BFD リンクが接続状態であるかどうかを、[BGP, BFD Statistics] Grafana ダッシュボードの [BFD Link Status] パネルで確認します。

  • 各インスタンスのロールが正常な状態である

    各ラックのロールがどの時点においても STANDBY_ERROR 状態でないことを確認します。

    • アクティブ/スタンバイモデル:ロールは各ラックで次の状態である必要があります。

      Rack-1:

      show role instance-id 1
      result "PRIMARY"
      show role instance-id 2
      result "PRIMARY"

      Rack-2:

      show role instance-id 1
      result "STANDBY"
      show role instance-id 2
      result "STANDBY"
    • アクティブ/アクティブモデル:ロールは、各ラックで次の状態になっている必要があります。

      Rack-1:

      show role instance-id 1
      result "PRIMARY"
      show role instance-id 2
      result "STANDBY"

      Rack-2:

      show role instance-id 1
      result "STANDBY"
      show role instance-id 2
      result "PRIMARY"

回復手順

Rack-1 上
  1. Rack-1 の両方のインスタンスのロールが STANDBY_ERROR であることを確認します。

    show role instance-id 1
    result "STANDBY_ERROR"
    show role instance-id 2
    result "STANDBY_ERROR"
  2. Rack-1 の両方のインスタンスで、STANDBY へのロールのリセットを開始します。このステップにより、ロールが STANDBY_ERROR/STANDBY_ERROR から STANDBY/STANDBY に移行します。

    geo reset-role instance-id 1 role standby
    geo reset-role instance-id 2 role standby
  3. Rack-1 の両方のインスタンスのロールが STANDBY に移行したことを確認します。

    show role instance-id 1
    result "STANDBY"
    show role instance-id 2
    result "STANDBY"
  4. フェールバック間隔を 30 秒にして、Rack-2 で instance-id 1 のロールの STANDBY への切り替えを開始します。このステップにより、Rack-2 のロールが PRIMARY/PRIMARY から STANDBY_ERROR/PRIMARY に、Rack-1 のロールが STANDBY/STANDBY から PRIMARY/STANDBY に移行します。

    geo switch-role instance-id 1 role standby [failback-interval 0]
  5. Rack-2 の両方のインスタンスのロールが STANDBY_ERROR/PRIMARY であることを確認します。

    show role instance-id 1
    result "STANDBY_ERROR"
    show role instance-id 2
    result "PRIMARY"
  6. Rack-1 の両方のインスタンスのロールが PRIMARY/STANDBY であることを確認します。

    show role instance-id 1
    result "PRIMARY"
    show role instance-id 2
    result "STANDBY"
  7. Rack-2 の instance-id 1 で、STANDBY へのロールのリセットを開始します。このステップにより、Rack-2 のロールが STANDBY_ERROR/PRIMARY から STANDBY/PRIMARY に移行します。

    geo reset-role instance-id 1 role standby
  8. Rack-2 のロールが STANDBY/PRIMARY であることを確認します。

    show role instance-id 1
    result "STANDBY"
    show role instance-id 2
    result "PRIMARY"
Rack-2 上
  1. Rack-2 の両方のインスタンスのロールが STANDBY_ERROR であることを確認します。

    show role instance-id 1
    result "STANDBY_ERROR"
    show role instance-id 2
    result "STANDBY_ERROR"
  2. Rack-2 の両方のインスタンスで、STANDBY へのロールのリセットを開始します。このステップにより、ロールが STANDBY_ERROR/STANDBY_ERROR から STANDBY/STANDBY に移行します。

    geo reset-role instance-id 1 role standby
    geo reset-role instance-id 2 role standby
  3. Rack-2 の両方のインスタンスのロールが STANDBY に移行することを確認します。

    show role instance-id 1
    result "STANDBY"
    show role instance-id 2
    result "STANDBY"
  4. Rack-1 の instance-id 2 で、STANDBY へのロールの切り替えを開始します。このステップにより、Rack-1 のロールが PRIMARY/PRIMARY から PRIMARY/STANDBY_ERROR に、Rack-2 のロールが STANDBY/STANDBY から STANDBY/PRIMARY に移行します。

    geo switch-role instance-id 2 role standby [failback-interval 0]
  5. Rack-1 のインスタンスのロールが PRIMARY/STANDBY_ERROR モードであることを確認します。

    show role instance-id 1
    result "PRIMARY"
    show role instance-id 2
    result "STANDBY_ERROR"
  6. Rack-2 のインスタンスのロールが STANDBY/PRIMARY モードであることを確認します。

    show role instance-id 1
    result "STANDBY"
    show role instance-id 2
    result "PRIMARY"
  7. Rack-1 の instance-id 2 で、STANDBY へのロールのリセットを開始します。このステップにより、Rack-1 のロールが PRIMARY/STANDBY_ERROR から PRIMARY/STANDBY に移行します。

    geo reset-role instance-id 2 role standby
  8. Rack-1 のインスタンスのロールが PRIMARY/STANDBY であることを確認します。

    show role instance-id 1
    result "PRIMARY"
    show role instance-id 2
    result "STANDBY"

主要業績評価指標(KPI)

次の項では、KPI について説明します。

ETCD/Cachepod 複製 KPI

次の表に、ETCD/Cachepod 複製 KPI のリストを記載します。

表 5. geo_replication_total KPI

KPI 名

説明

ラベル

有効な値

geo_replication

_total

この KPI には、さまざまな同期タイプと複製タイプの複製要求/応答の総数が表示されます。

ReplicationRequest

タイプ

要求/応答

ReplicationSync

タイプ

即時/保留/プル

ReplicationNode

ETCD/CACHE_POD/PEER

ReplicationReceiver

ローカル/リモート

status

True/False

status_code

エラーコード/説明

地理的なロール変更拒否の KPI

次の表に、地理的なロール変更拒否の KPI のリストを記載します。

表 6. 地理的なロール変更拒否の KPI

KPI 名

説明

ラベル

有効な値

geo_RejectedRole

Changed_total

この KPI には、STANDBY インスタンスで拒否された要求や受信したコールの合計数が表示されます。カウントの後、同じインスタンスが PRIMARY に移行されます。

RejectedCount

STANDBY インスタンスに対して受信された拒否されたコール/要求を示す数値。

GRInstance

番号

1/2

モニタリング KPI

次の表に、モニタリング KPI のリストを記載します。

表 7. geo_monitoring_total KPI

KPI 名

説明

ラベル

有効な値

geo_monitoring

_total

この KPI には、ハートビート、remoteNotify、TriggerGR など、さまざまな種類の成功/失敗メッセージの総数が表示されます。

ControlAction

タイプ

AdminMonitoring

ActionType / AdminRemote

MessageAction

Type / AdminRole

ChangeActionType

ControlAction

NameType

MonitorPod / MonitorBfd /

RemoteMsgHeartbeat /

RemoteMsgNotifyFailover /

RemoteMsgNotify

PrepareFailover /

RemoteMsgGetSiteStatus /

RemoteClusterPodFailure /

RemoteSiteRole

Monitoring /

TriggerGRApi /

ResetRoleApi

管理者ノード

任意の文字列値。例:GR インスタンス識別子またはインスタンスキー/ポッド名

ステータス コード

0/1001/1002/1003/

1004/1005/1006/1007/

1008/受信エラーコード(1206、1219、2404、...)

ステータス メッセージ

成功(0)/

STANDBY_ERROR => STANDBY/STANDBY => PRIMARY (0) / Pod Failure (0) /

CLI (0) / BFD の障害 (0) /

デコード失敗 (1001) /

リモートステータスが使用不可 (1002) /

ターゲットロールはサポートしていません (1002) /

ポッド障害 (1002) /

CLI (1002) / BFD の障害 (1002) /

サイトがダウンしています (1003) / ポッド障害 (1003) /

CLI (1003) / BFD の障害 (1003) /

トラフィックヒット (1004) /

ポッドエラー (1004) /CLI (1004) /

BFD の障害 (1004) /現在のロールは以下ではありません

STANDBY_ERROR/

STANDBY ロールを

リセット (1005) / resetRole:

etcd でキーが見つかりませんでした (1006) /

ポッドあたりの

モニタリングしきい値を超過しました (1007) /

ハートビートの再試行の

失敗 (1008) /

エラーメッセージを受信しました(この要求に使用可能なリモートホストがありません/選択されたリモートホスト<remotehostname>クライアント接続がありません/SLA がトランザクションに対して期限切れです/...)

表 8. geo_replication_finalpull_total KPI

KPI 名

説明

ラベル名

有効な値

geo_replication

_finalpulld_total

この KPI には、機能メッセージの最終取得時点で存在する Geo レプリケーションの総数が表示されます。

MessageType

これは要求または応答のメッセージタイプです。

TotalTimeTaken

これは、リクエストの処理にかかった合計時間です。

GRInstanceNumber

これは、次のリストからの GR インスタンス ID(数値)を表します。

  • 1

  • 2

  • Instance.1

  • Instance.2

BFD KPI

次の表に、BFD KPI のリストを記載します。

表 9. BFD KPI - 1

KPI 名

説明

ラベル

有効な値

bgp_speaker

_bfd_status

この KPI には、BGP スピーカーの BFD リンクステータスが表示されます。

status

STATE_UP /

STATE_DOWN

geo_bfd

status

この KPI には、Geo POD の BFD リンクステータスが表示されます。

status

STATE_UP /

STATE_DOWN

表 10. BFD KPI - 2

KPI 名

説明

ゲージ

bgp_speaker

_bfd_status

この KPI には、BGP スピーカーの BFD リンクステータスが表示されます。

1(UP)または 0(DOWN)

geo_bfd

status

この KPI には、Geo POD の BFD リンクステータスが表示されます。

1(UP)または 0(DOWN)

クロスラックルーティング BFD インターフェイスのモニタリング
表 11. クロスラックルーティング BFD インターフェイスのモニタリング KPI

KPI 名

説明

ラベル

有効な値

geo_monitoring

total

この KPI は、ピアラックがダウンしている際に発生した Gateway Down または LocalBFDInterface Down メッセージの総数を、ゲートウェイ IP またはインターフェース名の詳細とともに表示します。

ControlAction

タイプ

AdminMonitoring

ActionType

ControlAction

NameType

MonitorGateway /

MonitorLocalBfdInterface

AdminNode

gateway_ip /

interface_name

status

すべての Proto ノードでゲートウェイ IP がダウンしています /

すべての Proto ノードで BFD インターフェイスがダウンしています

status_code

1012 / 1013

bgp_bfd_Monitor

Interface_

status (Type - Gauge)

この KPI は、各ピアの接続ステータスを示します。この接続には BFD インターフェースが設定されており、リモートラック上のピアと接続されています。

interface

<ローカル ラック インターフェイス名>

peer_address

<リモートラックネイバーの IP アドレス>

type

Bfd-Peer

bgp_bfd_Monitor

Remote_Rack_

status (Type - Gauge)

この KPI は、リモートラックのステータスを示します。現在のラックインターフェイスとリモートラックのピアは、BFD ピアリングの一部として設定されます。両方の Proto ノードからの接続のいずれかが UP の場合、ラックのステータスは UP になります。両方の Proto ノードで接続がダウンしている場合、この KPI はリモートラックのステータスが DOWN であることを示します。

status

BFD_Remote

Rack_STATUS

ローカル インターフェイス モニタリング
表 12. ローカルインターフェイスのモニタリングの KPI

KPI 名

説明

ラベル

有効な値

geo_monitoring

total

この KPI には、ローカルインターフェイスがダウンしたケースの総数と、インターフェイス名の詳細が表示されます。

ControlAction

タイプ

AdminMonitoring

ActionType

ControlAction

NameType

MonitorInterface

AdminNode

interface_name

status

すべての Proto ノードでローカルインターフェイスがダウンしています

status_code

1014

GR インスタンス情報
表 13. GR インスタンス情報の KPI

KPI 名

説明

ラベル

有効な値

gr_instance_

information (Type – Guage)

この KPI には、 アプリケーションでの GR インスタンスの現在のロールが表示されます。

gr_instance_id

設定された GR インスタンス値(数値)

Geo メンテナンスモード
表 14. Geo メンテナンスモードの KPI

KPI 名

説明

ラベル

有効な値

geo_MaintenanceMode

info (Type – Guage)

この KPI には、ラックのメンテナンスモードの現在の状態が表示されます。

MaintenanceMode

0 = False

1 = True

バルク統計

次のセクションでは、GR 固有のバルク統計情報について詳しく説明します。

bulk-stats query GR-BGP-Incoming-Failed-Routes
 expression "sum(bgp_incoming_failedrouterequest_total) by (namespace, interface, service_IP, next_hop, instance_id)"
 labels     [ instance_id interface next_hop service_IP ]
 alias      gr-bgp-routes-in
exit
bulk-stats query GR-Geo-Monitoring-Failure
 expression "sum(geo_monitoring_total{ControlActionNameType=~'MonitorPod|RemoteMsgHeartbeat|
RemoteMsgGetSiteStatus|RemoteSiteRoleMonitoring|RemoteClusterPodFailure|RemoteMsgNotifyFailover|
RemoteMsgNotifyPrepareFailover|MonitorVip',status!~'success|monitoring.*'}) by (namespace, 
AdminNode, ControlActionType, ControlActionNameType,  pod, status, status_code)"
 labels     [ pod AdminNode ControlActionNameType status status_code ]
 alias      gr-geo-monitoring-failure
exit
bulk-stats query GR-Geo-Monitoring-Success
 expression "sum(geo_monitoring_total{ControlActionNameType=~'MonitorPod|RemoteMsgHeartbeat|
RemoteMsgGetSiteStatus|RemoteSiteRoleMonitoring|RemoteClusterPodFailure|RemoteMsgNotifyFailover|
RemoteMsgNotifyPrepareFailover',status=~'success|monitoring.*'}) by (namespace, AdminNode, 
ControlActionType, ControlActionNameType,  pod, status)"
 labels     [ pod AdminNode ControlActionNameType status ]
 alias      gr-geo-monitoring
exit
bulk-stats query GR-Geo-Monitoring-Total
 expression "sum(geo_monitoring_total{ControlActionNameType=~'MonitorPod|RemoteMsgHeartbeat|
RemoteMsgGetSiteStatus|RemoteSiteRoleMonitoring|RemoteClusterPodFailure|RemoteMsgNotifyFailover
|RemoteMsgNotifyPrepareFailover|MonitorVip'}) 
by (namespace, AdminNode, ControlActionType, ControlActionNameType,  pod, status)"
 labels     [ pod AdminNode ControlActionNameType status ]
 alias      gr-geo-monitoring
exit
bulk-stats query GR-Geo-Replication-Failure
 expression "sum(geo_replication_total{ReplicationNode=~'CACHE_POD|ETCD|PEER',status!='success',
ReplicationRequestType='Response'}) by (namespace, ReplicationNode, ReplicationSyncType,
ReplicationReceiver,ReplicationRequestType,status,status_code)"
 labels     [ pod ReplicationNode ReplicationReceiver ReplicationRequestType ReplicationSyncType status status_code ]
 alias      gr-geo-replication-failure
exit
bulk-stats query GR-Geo-Replication-Success
 expression "sum(geo_replication_total{ReplicationNode=~'CACHE_POD|ETCD|PEER',
status='success',ReplicationRequestType='Response'}) by (namespace, ReplicationNode, 
ReplicationSyncType,ReplicationReceiver,ReplicationRequestType,status)"
 labels     [ pod ReplicationNode ReplicationReceiver ReplicationRequestType ReplicationSyncType status ]
 alias      gr-geo-replication-success
exit
bulk-stats query GR-Geo-Replication-Total
 expression "sum(geo_replication_total{ReplicationNode=~'CACHE_POD|ETCD|PEER'}) 
by (namespace, ReplicationNode, ReplicationSyncType,ReplicationReceiver,
ReplicationRequestType,pod)"
 labels     [ pod ReplicationNode ReplicationReceiver ReplicationRequestType ReplicationSyncType ]
 alias      gr-geo-replication-total
exit
bulk-stats query GR-Trigger-ResetRole-Api
 expression "sum(geo_monitoring_total{ControlActionNameType=~'TriggerGRApi|ResetRoleApi'}) 
by (namespace, AdminNode, ControlActionType, ControlActionNameType,  pod, status, status_code)"
 labels     [ pod AdminNode ControlActionNameType status status_code ]
 alias      gr-api
exit
bulk-stats query GR-CDL-Index-Replication
 expression "sum(consumer_kafka_records_total) by (pod, origin_instance_id)"
 labels     [ origin_instance_id pod ]
 alias      gr-cdl-index-replication
exit
bulk-stats query GR-CDL-Inter-Rack-Replications-Failures
 expression "sum(datastore_requests_total{local_request='0',errorCode!='0'}) by (operation,sliceName,errorCode)"
 labels     [ sliceName operation errorCode ]
 alias      gr-cdl-inter-rack-replications
exit
bulk-stats query GR-CDL-Inter-Rack-Replications-Success
 expression "sum(datastore_requests_total{local_request='0',errorCode='0'}) by (operation,sliceName,errorCode)"
 labels     [ sliceName operation errorCode ]
 alias      gr-cdl-inter-rack-replications
exit
bulk-stats query GR-CDL-Inter-Rack-Replications-Total
 expression "sum(datastore_requests_total{local_request='0'}) by (operation,sliceName,errorCode)"
 labels     [ sliceName operation errorCode ]
 alias      gr-cdl-inter-rack-replications
exit
bulk-stats query GR-CDL-Intra-Rack-Operations-Failures
 expression "sum(datastore_requests_total{local_request='1',errorCode!='0'}) by (operation,sliceName,errorCode)"
 labels     [ sliceName operation errorCode ]
 alias      gr-cdl-intra-rack-operations
exit
bulk-stats query GR-CDL-Intra-Rack-Operations-Success
 expression "sum(datastore_requests_total{local_request='1',errorCode='0'}) by (operation,sliceName,errorCode)"
 labels     [ sliceName operation errorCode ]
 alias      gr-cdl-intra-rack-operations
exit
bulk-stats query GR-CDL-Intra-Rack-Operations-Total
 expression "sum(datastore_requests_total{local_request='1'}) by (operation,sliceName,errorCode)"
 labels     [ errorCode operation sliceName ]
 alias      gr-cdl-intra-rack-operations
exit
bulk-stats query GR-CDL-Session-Count-Per-Slice
 expression sum(avg(db_records_total{namespace=~'$namespace',session_type='total'})by(systemId,sliceName))by(sliceName)
 labels     [ sliceName ]
 alias      gr-cdl-session-count-per-slice
exit
bulk-stats query GR-CDL-Session-Count-Per-System-ID
 expression sum(avg(db_records_total{namespace=~'$namespace',session_type='total'})
by(systemId,sliceName))by(systemId)
 labels     [ systemId ]
 alias      gr-cdl-session-count-per-system-id
exit
bulk-stats query GR-CDL-Slot-Records-Per-Slice
 expression "sum(slot_records_total{pod=~'.*',systemId!=''}) by (pod, sliceName)"
 labels     [ pod sliceName ]
 alias      gr-cdl-slot-records-per-slice
exit
bulk-stats query GR-CDL-Slot-Records-Per-System-ID
 expression "sum(slot_records_total{pod=~'.*',systemId!=''}) by (pod, systemId)"
 labels     [ pod systemId ]
 alias      gr-cdl-slot-records-per-system-id
exit
bulk-stats query GR-CDL-Total-Session-Count
 expression "sum(db_records_total{namespace=~'$namespace',session_type='total'}) by (systemId,sliceName)"
 labels     [ sliceName systemId ]
 alias      gr-cdl-total-session-count
exit

GR 関連の統計情報の詳細については、次を参照してください。

  • cnSGW-C 統計情報では、gr_instance_id ラベルを使用して GR 固有の統計情報をフィルタリングできます。

    詳細については、「UCC サービング ゲートウェイ コントロール プレーンの機能 - メトリックリファレンス」を参照してください。

アラート

ここでは、GR アラートについて詳しく説明します。

BFD アラート

次の表に、interval-seconds が 60 に設定されているルールグループ BFD のアラートを示します。

表 15. アラートルールグループ:BFD

アラートルール

重大度

期間(分単位)

タイプ

BFD-Link-Fail

critical

1

通信アラーム

式:sum by (namespace,pod,status)

(bgp_speaker_bfd_status{status='BFD_STATUS'}) == 0

説明:このアラートは、BGP ピアリングに関連付けられた BFD リンクがダウンしている場合に生成されます。

GR アラート

次の表に、interval-seconds が 60 に設定されているルールグループ GR のアラートを示します。

表 16. アラートルールグループ:GR

アラートルール

重大度

期間(分単位)

タイプ

Cache-POD-

Replication-Immediate

-Local

critical

1

通信アラーム

式:(sum by (namespace)

(increase(geo_replication_total{ReplicationNode='CACHE_POD',

ReplicationSyncType='Immediate',ReplicationReceiver='local',

ReplicationRequestType='Response',status='success'}[1m]))/sum by (namespace)

(increase(geo_replication_total{ReplicationNode='CACHE_POD',

ReplicationSyncType='Immediate',ReplicationReceiver='local',

ReplicationRequestType='Request'}[1m])))*100 < 90

説明:このアラートは、CACHE_POD sync type:Immediate および replication receiver:Local の成功率がしきい値未満の場合に生成されます。

Cache-POD-

Replication-Immediate

-Remote

critical

1

通信アラーム

式:(sum by (namespace)

(increase(geo_replication_total{ReplicationNode='CACHE_POD',

ReplicationSyncType='Immediate',ReplicationReceiver='remote',

ReplicationRequestType='Response',status='success'}[1m]))/sum by (namespace)

(increase(geo_replication_total{ReplicationNode='CACHE_POD',

ReplicationSyncType='Immediate',ReplicationReceiver='remote',

ReplicationRequestType='Request'}[1m])))*100 < 90

説明:このアラートは、CACHE_POD sync type:Immediate および replication receiver:Remote の成功率がしきい値未満の場合に生成されます。

Cache-POD-

Replication-PULL

-Remote

critical

1

通信アラーム

式:(sum by (namespace)

(increase(geo_replication_total{ReplicationNode='CACHE_POD',

ReplicationSyncType='PULL',ReplicationReceiver='remote',

ReplicationRequestType='Response',status='success'}[1m]))/sum by (namespace)

(increase(geo_replication_total{ReplicationNode='CACHE_POD',

ReplicationSyncType='PULL',ReplicationReceiver='remote',

ReplicationRequestType='Request'}[1m])))*100 < 90

説明:このアラートは、CACHE_POD sync type:PULL および replication receiver:Remote の成功率がしきい値未満の場合に生成されます。

ETCD-

Replication-Immediate

-Local

critical

1

通信アラーム

式:(sum by (namespace)

(increase(geo_replication_total{ReplicationNode='ETCD',

ReplicationSyncType='Immediate',ReplicationReceiver='local',

ReplicationRequestType='Response',status='success'}[1m]))/sum by (namespace)

(increase(geo_replication_total{ReplicationNode='ETCD',

ReplicationSyncType='Immediate',ReplicationReceiver='local',

ReplicationRequestType='Request'}[1m])))*100 < 90

説明:このアラートは、ETCD sync type:Immediate および replication receiver:Local の成功率がしきい値未満の場合に生成されます。

ETCD-

Replication-Immediate

-Remote

critical

1

通信アラーム

式:(sum by (namespace)

(increase(geo_replication_total{ReplicationNode='ETCD',

ReplicationSyncType='Immediate',ReplicationReceiver='remote',

ReplicationRequestType='Response',status='success'}[1m]))/sum by (namespace)

(increase(geo_replication_total{ReplicationNode='ETCD',

ReplicationSyncType='Immediate',ReplicationReceiver='remote',

ReplicationRequestType='Request'}[1m])))*100 < 90

説明:このアラートは、ETCD sync type:Immediate および replication receiver:Remote の成功率がしきい値未満の場合に生成されます。

ETCD-

Replication-PULL

-Remote

critical

1

通信アラーム

式:(sum by (namespace)

(increase(geo_replication_total{ReplicationNode='ETCD',

ReplicationSyncType='PULL',ReplicationReceiver='remote',

ReplicationRequestType='Response',status='success'}[1m]))/

sum by (namespace) (increase(geo_replication_total

{ReplicationNode='ETCD',ReplicationSyncType='PULL',

ReplicationReceiver='remote',ReplicationRequestType=

'Request'}[1m])))*100 < 90

説明:このアラートは、ETCD sync type:PULL および replication receiver:Remote の成功率がしきい値未満の場合に生成されます。

Heartbeat-Remote

-Site

critical

-

通信アラーム

式:sum by (namespace)

(increase(geo_monitoring_total{ControlActionNameType=

'RemoteMsgHeartbeat',status!='success'}[1m])) > 0

説明:このアラートは、リモートサイトへの定期的なハートビートが失敗するとトリガーされます。

Local-Site-

POD-Monitoring

critical

-

通信アラーム

式:sum by (namespace,AdminNode)

(increase(geo_monitoring_total{ControlActionNameType

='MonitorPod'}[1m])) > 0

説明:このアラートは、ローカルサイトのポッドモニタリングに障害が発生した場合、Label:{{$labels.AdminNode}} に記載されているポッドの設定されたしきい値を超えた場合にトリガーされます。

PEER-Replication-

Immediate-

ローカル

critical

1

通信アラーム

式:(sum by (namespace)

(increase(geo_replication_total{ReplicationNode='PEER',

ReplicationSyncType='Immediate',ReplicationReceiver='local',

ReplicationRequestType='Response',status='success'}

[1m]))/sum by (namespace) (increase(geo_replication_total

{ReplicationNode='PEER',ReplicationSyncType=

'Immediate',ReplicationReceiver='local',

ReplicationRequestType='Request'}[1m])))*100 < 90

説明:このアラートは、PEER sync type:Immediate および replication receiver:Local の成功率がしきい値未満の場合に生成されます。

PEER-Replication-

Immediate-

リモート

critical

1

通信アラーム

式:(sum by (namespace)

(increase(geo_replication_total{ReplicationNode='PEER',

ReplicationSyncType='Immediate',ReplicationReceiver='remote',

ReplicationRequestType='Response',status='success'}

[1m]))/sum by (namespace) (increase(geo_replication_total

{ReplicationNode='PEER',ReplicationSyncType='Immediate',

ReplicationReceiver='remote',ReplicationRequestType=

'Request'}[1m])))*100 < 90

説明:このアラートは、PEER sync type:Immediate および replication receiver:Remote の成功率がしきい値未満の場合に生成されます。

RemoteCluster-

PODFailure

critical

-

通信アラーム

式:sum by (namespace,AdminNode)

(increase(geo_monitoring_total{ControlActionNameType

='RemoteClusterPodFailure'}[1m])) > 0

説明:このアラートは、Label:{{$labels.AdminNode}} に記載されているポッドのリモートサイトでポッド障害が検出された場合に生成されます。

RemoteMsg

NotifyFailover

critical

1

通信アラーム

式:sum by (namespace,status)

(increase(geo_monitoring_total{ControlActionNameType

='RemoteMsgNotifyFailover',status!='success'}[1m])) > 0

説明:このアラートは、Label:{{$labels.status}} に記載されている理由で一時的なロール RemoteMsgNotifyFailover が失敗した場合に生成されます。

RemoteMsg

NotifyPrepare

フェールオーバー

critical

1

通信アラーム

式:sum by (namespace,status)

(increase(geo_monitoring_total{ControlActionNameType

='RemoteMsgNotifyPrepareFailover',status!='success'}[1m])) > 0

説明:このアラートは、Label:{{$labels.status}} に記載されている理由で一時的なロール RemoteMsgNotifyPrepareFailover が失敗した場合に生成されます。

RemoteSite-

RoleMonitoring

critical

-

通信アラーム

式:sum by (namespace,AdminNode)

(increase(geo_monitoring_total{ControlActionNameType

='RemoteSiteRoleMonitoring'}[1m])) > 0

説明:このアラートは、RemoteSiteRoleMonitoring がパートナーラックのインスタンスのロールの不整合を検出し、その結果、ローカルラックの各インスタンスのロールをプライマリに変更した場合に生成されます。影響を受けるインスタンスは Label:{{$labels.AdminNode}} にあります。

ResetRoleApi

-Initiated

critical

-

通信アラーム

式:sum by (namespace,status)

(increase(geo_monitoring_total{ControlActionNameType

='ResetRoleApi'}[1m])) > 0

説明:このアラートは、Label:{{$labels.status}} に記載されているロールの状態遷移とともに ResetRoleApi が開始されたときに生成されます。

TriggerGRApi

-Initiated

critical

-

通信アラーム

式:sum by (namespace,status)

(increase(geo_monitoring_total{ControlActionNameType

='TriggerGRApi'}[1m])) > 0

説明:このアラートは、Label:{{$labels.status}} に記載されている理由で TriggerGRApi が開始されたときに生成されます。

VIP-Monitoring

-Failures

critical

-

通信アラーム

式:sum by (namespace,AdminNode)

(increase(geo_monitoring_total{ControlActionNameType

='MonitorVip'}[1m])) > 0

説明:このアラートは、Label:{{$labels.AdminNode}} に記載されている VIP とインスタンスの VIP モニタリング障害の検出時に GR が生成されると生成されます。

CDL アラート

次の表に、interval-seconds が 60 に設定されているルールグループ CDL のアラートを示します。

表 17. アラートルールグループ:CDL

アラートルール

重大度

期間(分単位)

タイプ

GRPC-

Connections-

Remote-Site

critical

1

通信アラーム

式:sum by (namespace, pod, systemId)

(remote_site_connection_status) !=4

説明:このアラートは、リモートサイトへの GRPC 接続数が 4 ではない場合に生成されます。

Inter-Rack

-CDL-Replication

critical

1

通信アラーム

式:(sum by (namespace)

(increase(datastore_requests_total{local_request=\"0\",

errorCode=\"0\"}[1m]))/sum by (namespace)

(increase(datastore_requests_total{local_request=\"0\"}

[1m])))*100 < 90

説明:このアラートは、ラック間 CDL レプリケーションの成功率がしきい値未満の場合に生成されます。

Intra-Rack

-CDL-Replication

critical

1

通信アラーム

式:(sum by (namespace)

(increase(datastore_requests_total{local_request=\"1\",

errorCode=\"0\"}[1m]))/sum by (namespace)

(increase(datastore_requests_total{local_request=\"1\"}

[1m])))*100 < 90

説明:このアラートは、ラック内 CDL レプリケーションの成功率がしきい値未満の場合に生成されます。

メンテナンス モード

cnSGW-C はメンテナンスモードフラグをサポートしており、GR セットアップのクラスタがインサービス(ローリングアップグレード)用にスケジュールされている場合に、クラスタへの影響を無効化できます。これは、他の従属クラスタがその役割やその他のアクティビティを、ターゲットのクラスタで問題なく実行できるようにするのに役立ちます。

メンテナンスモードフラグが true に設定されている場合、クラスタロールの変更およびラックに対する GR トリガーは、CLI ベースのフェールオーバーの場合にのみ許可されます。

実行中、すべてのモニタリングスレッドでフラグのランタイム値がチェックされ、メンテナンスモードフラグが true に設定されている場合は実行が保留されます。デフォルトでは、新規インストールの場合、フラグは false に設定されます。要件に基づいてメンテナンスモードを設定するには、次の設定を使用します。

config 
  geo maintenance mode { true | false } 
  end  

注:

  • geo maintenance mode { true | false } :メンテナンスモードを有効/無効にします。

    メンテナンスモードの値は、etcd に保存されます。

両方のクラスタを同時にメンテナンスできます。従属クラスタがすでにメンテナンス中の場合は、システムをメンテナンスモードに移行できます。メンテナンス作業を開始する前に、geo maintenance mode フラグの値を true に設定してください。メンテナンスが完了したら、システムの正常性を確認後、フラグを false にリセットします。

メンテナンスフラグが true に設定されている場合:

  • すべてのモニタリングアクティビティが一時停止します。

  • 従属クラスタは、ローカルの障害を検出してもフェールオーバーをトリガーできません。

  • レプリケーション アクティビティはクラスタで続行されます。

  • メンテナンスモードでは、サイトのインスタンスロールは暗黙的に変更されませんが、ロールの変更は geo switch-role role CLI コマンドを使用して可能です。

メンテナンス中のクラスタとの間で GR トリガーの送受信はできません。メンテナンス中のクラスタからは、CLI ベースのフェールオーバーのみがサポートされます。メンテナンスモードを無効にしたら、ポッドと VIP のモニタリング用の新しいデータから開始します。リモートクラスタには、NotifyMaintenanceActivity() [Operation 24] メッセージを使用してメンテナンスモード値が通知されます。

次に、設定例を示します。

geo maintenance mode true
result "success"
geo maintenance mode false
result "success"
メンテナンスモードのステータスの表示

メンテナンスモードのステータスを確認するには、次の show コマンドを使用します。

show geo maintenance mode
result "geo maintenance mode is disabled"