LSP が PENDING または PCC_PENDING 状態でスタック
問題
LSP の [Controller Status] に [Pending] ステータスが表示される場合があります。このエラーは、トポロジ サーバ(Toposerver)がノードを PCEP 対応としてマークし、ラベル スイッチ パス(LSP)をプロビジョニングした後でも続く場合があります。[Controller Status] (ネットワーク情報テーブルの [Tunnel] タブに表示) には、[PENDING] または [PCC_PENDING] という単語が表示されます。
解決
プロビジョニング プロセスを通じて、LSP はプロビジョニングの状態を示すさまざまなプロビジョニング状態になります。ネットワーク情報テーブルの [トンネル(Tunnel)] タブにある [コントローラのステータス(Controller Status)] 列には、これらのプロビジョニング状態が表示されます。最も一般的な LSP の状態は、 PENDING と PCC_PENDING です。
次のシーケンスでは、バックグラウンドで何が起こっているかについて説明します。
-
LSP をプロビジョニングするために、パス計算サーバー(PCS)は LSP の要件をすべて満たすパスを計算します。次に、PCS はプロビジョニング順序を PCE(Path Computation Element)サーバに送信します。
以下は、このプロセスの実行中に PCS ログに表示されるログ メッセージの例です。
手記:表示されるログは、このドキュメントのログとは異なる場合があります。ログは、インストールされているParagon Automationのバージョンに基づいて変更されます。
Apr Apr 25 10:06:44.798336 user-PCS PCServer [->TopoServer] push lsp configlet, action=ADD Apr 25 10:06:44.798341 user-PCS PCServer {#012"lsps":[#012{"request-id":928380025,"name":"JTAC","from":"10.0.0.102", "to":"10.0.0.104","pcc":"172.25.158.66","bandwidth":"100000","metric":0,"local-protection":false,"type":"primary", "association-group-id":0,"path-attributes":{"admin-group":{"exclude":0,"include-all":0, "include-any":0},"setup-priority": 7,"reservation-priority":7,"ero":[{"ipv4-address":"10.102.105.2"},{"ipv4-address":"10.105.107.2"}, {"ipv4-address": "10.114.117.1"}]}}#012]#012} Apr 25 10:06:44.802500 user-PCS PCServer provisioning order sent, status = SUCCESS Apr 25 10:06:44.802519 user-PCS PCServer [->TopoServer] Save LSP action, id=928380025 event=Provisioning Order(ADD) sent request_id=928380025 Apr 25 10:06:44.802534 user-PCS PCServer lsp action=ADD JTAC@10.0.0.102 path= controller_state=PENDING -
LSP のコントローラのステータスは PENDING です。この状態は、PCS がプロビジョニング注文を PCE サーバーに送信したが、PCS がまだ確認応答を受け取っていないことを意味します。LSP が PENDING 状態のままである場合、問題は PCE サーバーにあることを示唆しています。
PCE サーバーのログを表示することで、問題を特定できます。
PCE サーバのログを表示するには、次の手順に従います。
-
サーバーの認証情報を使用して、Paragon Automationのプライマリノードにログインします。
-
プライマリ ノードから、次のコマンドを使用して、PCE サーバー プロセスが実行されているポッドの名前を取得します。
kubectl -n northstar get pod | grep pceserver
-
次のコマンドを使用して PCE サーバー ポッドにログインします。
kubectl -n northstar exec -it ns-pceserver-pod-name -c ns-pceserver -- bash
コマンドの ns-pceserver-pod-name は、 手順 b で取得したポッドの名前です。
-
次のコマンドを使用して、PCE サーバに関連付けられたログを表示します。
kubectl -n northstar logs -f ns-pceserver-pod-name -c syslog
以下は、PCE サーバ ログ エントリの例です。
2016-04-25 10:06:45.196263(27897)[EVENT]: 172.25.158.66:JTAC UPD RCVD FROM PCC, ack 928380025 2016-04-25 10:06:45.196517(27897)[EVENT]: 172.25.158.66:JTAC ADD SENT TO PCS 928380025, UP
-
PCE サーバー・ログに PCE サーバーの問題が示されている場合は、以下のコマンドを使用して PCE サーバー・ポッドを手動で再始動できます。
kubectl -n northstar rollout restart deployment pce-server-pod-name
探している情報がログに含まれていない場合は、PCE サーバーでさまざまな
showコマンドを実行して情報を取得することもできます。Junos OS構文と同様に、「show ?」と入力すると、showコマンドオプションが表示されます。 -
-
PCE サーバは、プロビジョニング命令を受信した後、次のアクションを実行します。
-
PCE サーバーは、パス計算クライアント(PCC)に注文を転送します。
-
PCE サーバーは、確認応答を PCS に送り返します。
-
-
LSP コントローラのステータスが PCC_PENDING に変わり、PCE サーバがプロビジョニング順序を受信して PCC に転送したが、PCC がまだ応答していないことを示します。LSP が PCC_PENDING 状態でスタックしている場合、問題は PCC にあることを示唆しています。PCC の設定を確認します。PCC の設定を確認する方法については、PCC のベンダーのマニュアルを参照してください。
-
PCC がプロビジョニング注文を正常に受信すると、PCE サーバーに応答が送信され、PCE サーバーは応答を PCS に転送します。PCS がこの応答を受信すると、PCS は LSP コントローラのステータスを完全にクリアします。クリア ステータスは、PCS が LSP をプロビジョニングし、PCE サーバーまたは PCC からの保留中のアクションがないことを示します。トンネルの動作ステータスが、トンネルの状態を示すインジケーターになります。動作ステータスは、ネットワーク情報テーブルの [トンネル(Tunnel)] タブにある [運用ステータス(Op Status )] 列で確認できます。以下は、PCS が生成するログ エントリの例です。
Apr 25 10:06:45.203909 user-PCS PCServer [<-TopoServer] JTAC@10.0.0.102, LSP event=(0)CREATE request_id=928380025 tunnel_id=9513 lsp_id=1 report_type=ACK