はじめに
このドキュメントでは、5G Subscriber Microservices Infrastructure(SMI)プロトコル仮想マシン(プロトコルVM)のNetwork Time Protocol(NTP)の時刻同期の問題に対する回避策を実装する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Cisco SMI(Cisco SMI)
- 5G Cloud Native Deployment Platform(CNDP)アーキテクチャ
- クラウド – Red Hat OpenStack Platform 13(「Queens」リリース)
- DockersおよびKubernetes
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- スイス2020.01.1-21
- Kubernetes v1.16.2
- Red Hat OpenStack Platform 13ディレクタ
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
バックグラウンド情報
SMIとは何ですか。
Cisco SMIは、クラウドテクノロジーとクラウド標準の階層型スタックであり、Cisco Mobility、Cable、Broadband Network Gateway(BNG)ビジネスユニットからのマイクロサービスベースのアプリケーションを可能にします。これらのアプリケーションには、同様の加入者管理機能と同様のデータストア要件があります。
属性:
- レイヤクラウドスタック(テクノロジーと標準)は、トップツーボトムの導入を提供し、現在のクラウドインフラストラクチャに対応します。
- すべてのアプリケーションが、アプリケーション以外の機能(データストレージ、導入、設定、テレメトリ、アラーム)に対してCommon Execution Environment(CEE)を共有し、すべてのカスタマータッチポイントと統合ポイントに一貫したインタラクションとエクスペリエンスを提供します。
- アプリケーションとCEEはマイクロサービスコンテナ内に導入され、インテリジェントサービスメッシュに接続されます。
- 導入、設定、管理のための公開されたAPIにより、自動化が可能になります。
CEEとは
- CEEは、SMI上に導入されたモバイルおよびケーブルアプリケーションを監視するために開発されたソフトウェアソリューションです。CEEは、エンジニアがデバッグやトラブルシューティングを行えるように、アプリケーションから情報(主要なメトリック)を一元的に取得します。
- CEEは、すべてのアプリケーションにインストールされる共通のツールセットです。専用のオペレーションセンターが付属しており、コマンドラインインターフェイス(CLI)とモニタツールを管理するAPIを提供します。各クラスタで使用できるCEEは1つだけです。
プロトコルVMとは
プロトコルVMは、プロトコル変換を行うセッション管理機能(SMF)アプリケーションマイクロサービスをホストします。SMFのインスタンスごとに2つのプロトコルVMが導入されます。プロトコルVMには、GTPc、合法的傍受(LI)、Radius、Restなどのポッドがあります。
問題
問題が発生しているノード(プロトコルVM)から、ネットワークが2つの異なるインターフェイスを使用してNTPサーバへの接続をルーティングしようとしていることがわかります。ただし、IPに到達できるネットワークは1つだけです。
インターフェイスを使用せずにpingを一定時間実行すると、パケット損失が発生することがわかります。
CEEからのアラートの例:
[pod-name-cnat/global] cee# show alerts active summary
名前UIDの重大度はソースの要約で始まる
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
VoNR_Ded_Bearer_Creat be183f61dd65 major 01-18T16:32:17 System Success percentage of VoNR - PCF Initiated Dedicated Bearer Creation procedure in NR turns less than t...
clock-is-not-in-synch 38a35e9a8bd8 major 01-18T13:11:15 pod-name-cnat-cnat-coホスト名pod-name-cnat-cnat-core-protocol-data1で検出されたクロックが同期していません。NTPが設定されていることを確認します。
clock-is-not-in-synch 4a7e138b8bae major 01-18T13:07:35 pod-name-cnat-cnat-coホスト名pod-name-cnat-cnat-core-protocol-ims2で検出されたクロックが同期していません。NTPが設定されていることを確認する…
clock-is-not-in-synch 5b3e128f0101 major 01-18T12:05:55 pod-name-cnat-cnat-coホスト名pod-name-cnat-cnat-core-protocol-data2でクロックが同期されていないことが検出されました。NTPが設定されていることを確認します。
container-memory-usag f588aa627792 critical 12-28T15:47:30 path-provisioner-v6zx Pod cee-global/path-provisioner-v6zxj/k8s_path-provisioner_path-provisioner-v6zxj_cee-global_f1a1e8fa-...
container-memory-usag 55b2ea84466f critical 12-27T22:27:10 path-provisioner-v6zx Pod cee-global/path-provisioner-v6zxj/は高メモリ82.69 %を使用します。
N11_SM_Timeout_SR f6fb82cac197 major 10-31T15:51:16システムこのアラートは、AMFに対するN11メッセージのタイムアウトの増加がしきい値を超えたときに発生します
Radius_Server_RTT 94ac2cff43a3 warning 10-28T05:08:56 System RTT for Radius Server: 216.x.x.x, Port: 1813 in namespace: smf-mvno is more than 5 ms.
Radius_Server_RTT d02b60b3a3a4 warning 10-28T05:05:56 System RTT for Radius Server: 52.x.x.x, Port: 1813 in namespace: smf-mvno is more than 5 ms.
Radius_Server_RTT 9afcee101013 warning 10-28T05:05:36 System RTT for Radius Server: 52.x.x.x, Port: 1813 in namespace: smf-mvno is more than 5 ms.
N11_SM_Timeout_SR 206c4bbccf21 major 10-20T13:26:16システムこのアラートは、AMFに対するN11メッセージのタイムアウトの増加がしきい値を超えたときに発生します
N4_Total_Outbound_Int 4e0f3c1d6300 major 10-20T09:01:23システムこのアラートは、送信されたN4アウトバウンド応答の割合がしきい値の%を下回ったときに発生します。
N4_Total_Outbound_Int 3e2fed624704 major 10-20T08:21:23 Systemこのアラートは、送信されたN4送信応答の割合がしきい値の%を下回ったときに発生します。
watchdog 97a7976a4103 minor 05-05T09:10:58 Systemこれは警告パイプライン全体が機能していることを保証するための警告です。このアラートは常に…
トラブルシュート
-
影響を受けるVMにログインし、次のコマンドを実行します。ip route | grep -i default
この例では、2つのデフォルトルートが表示されていますが、これは正しくありません。(デフォルトルートは1つだけにする必要があります)。
ubuntu@pod-name-cnat-cnat-core-protocol-ims2:~$ ip route | grep -i default
default via 172.16.x.x dev ens4 proto dhcp src 172.16.x.x metric 100
default via 172.16.x.x dev ens3 proto dhcp src 172.16.x.x metric 100
-
Chronyd(NTP)サービスのステータスを確認します。サービスが稼働中でも、「Can't synchronize」エラーが表示されます。
出力例:
root@pod-name-cnat-cnat-core-protocol-data1:/home/ubuntu# systemctlステータスchronyd.service
chrony.service:chrony、NTPクライアント/サーバLoaded:loaded(/lib/systemd/system/chrony.service;有効;ベンダープリセット:有効)
アクティブ:2021年1月8日(金)07:19:19 UTC、11ヵ月24日前からアクティブ(実行中)
ドキュメント: man:chronyd(8)
男性:chronyc(1)
man:chrony.conf(5)
メインPID:4300(同期)
タスク:1(制限:4915)
CGroup:/system.slice/chrony.service
└─4300 /usr/sbin/chronyd
Dec 30 17:06:28 pod-name-cnat-cnat-core-protocol-data1 chronyd[4300]:Selected source 5.196.x.x
Dec 31 06:37:11 pod-name-cnat-cnat-core-protocol-data1 chronyd[4300]:同期できません:選択可能なソースがありません
Dec 31 17:15:31 pod-name-cnat-cnat-core-protocol-data1 chronyd[4300]:Selected source 5.196.x.x
Jan 01 06:29:43 pod-name-cnat-cnat-core-protocol-data1 chronyd[4300]:同期できません:選択可能なソースがありません
Jan 01 16:50:02 pod-name-cnat-cnat-core-protocol-data1 chronyd[4300]:選択された送信元5.196.x.x
Jan 01 19:25:05 pod-name-cnat-cnat-core-protocol-data1 chronyd[4300]:同期できません:選択可能なソースがありません
-
network-configサービスのステータスを確認します。(非アクティブです)。
ubuntu@pod-name-cnat-cnat-core-protocol-data1:~$ systemctl status network-config
network-config.service - Job that configures for routes
Loaded: loaded (/etc/systemd/system/network-config.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2021-01-08 09:29:05 UTC; 1 years 0 months ago
Process: 1185 ExecStart=/etc/cisco/network-config.sh start (code=killed, signal=TERM)
Main PID: 1185 (code=killed, signal=TERM)
回避策
注:この手順を実行しても、アプリケーションにダウンタイムは発生しません。
-
該当するノードでnetwork-configサービススクリプト(/etc/systemd/system/network-config.service)を編集し、次の行を追加します。
root@pod-name-cnat-cnat-core-protocol-data1:/home/ubuntu# vim /etc/systemd/system/network-config.service
Restart=always
RestartSec=10s
StartLimitIntervalSec=300s
StartLimitBurst=30
-
network-configサービスを開始します。
root@pod-name-cnat-cnat-core-protocol-data1:/home/ubuntu# systemctl start network-config
-
systemctlで設定をリロードします。
root@pod-name-cnat-cnat-core-protocol-data1:/home/ubuntu# systemctl daemon-reload
-
同期サービスを再起動します。
root@pod-name-cnat-cnat-core-protocol-data1:/home/ubuntu# systemctl restart chronyd.service
検証
「回避策」の手順を完了した後、次のコマンドを実行して問題が修正されたことを確認します。
$(awk '/protocol/{print $1}' /etc/hosts)のサーバの場合は、ssh $server "hostname && timedatectl status && chronyc sources -vn"を実行します。
注:「System clock synchronized」の値「yes」は、問題が修正されたことを示します。
出力例:
ubuntu@pod-name-cnat-cnat-core-master1:~$サーバの場合は$(awk '/protocol/{print $1}' /etc/hosts); ssh $server "hostname && timedatectl status && chronyc sources -vn" ;を実行します。
pod-name-cnat-cnat-core-protocol-data1
現地時間:2021年9月7日(火) 10:22:16 UTC
世界標準時:2021年9月9日(火) 10:22:16 UTC
RTC時間:2021-09-07(火)10:22:17
タイムゾーン:Etc/UTC(UTC、+0000)
システムクロック同期済み:はい
systemd-timesyncd.service active:いいえ
ローカルTZのRTC:いいえ
210送信元の数= 1
MS名/IPアドレスStratum Poll Reach LastRx Lastサンプル
===============================================================================
^* svtsnq01.mgmt 1 6 170 282 -1100us[-1858us] +/- 47ms
pod-name-cnat-cnat-core-protocol-data2
現地時間:2021年9月7日(火) 10:22:16 UTC
世界標準時:2021年9月9日(火) 10:22:16 UTC
RTC時間:2021-09-07(火)10:22:17
タイムゾーン:Etc/UTC(UTC、+0000)
システムクロック同期済み:はい
systemd-timesyncd.service active:いいえ
ローカルTZのRTC:いいえ
210送信元の数= 1
MS名/IPアドレスStratum Poll Reach LastRx Lastサンプル
===============================================================================
^* svtsnq01.mgmt 1 6 74 206 -218us[-1550us] +/- 46ms
pod-name-cnat-cnat-core-protocol-ims1
現地時間:2021-09-07 10:22:17 UTC
世界標準時:2021年9月9日(火) 10:22:17 UTC
RTC時間:2021-09-07(火)10:22:18
タイムゾーン:Etc/UTC(UTC、+0000)
システムクロック同期済み:はい
systemd-timesyncd.service active:いいえ
ローカルTZのRTC:いいえ
210送信元の数= 1
MS名/IPアドレスStratum Poll Reach LastRx Lastサンプル
===============================================================================
^* svtsnq01.mgmt 1 6 77 24 +796us[+1044us] +/- 47ms
pod-name-cnat-cnat-core-protocol-ims2
現地時間:2021-09-07 10:22:17 UTC
世界標準時:2021年9月9日(火) 10:22:17 UTC
RTC時間:2021-09-07(火)10:22:18
タイムゾーン:Etc/UTC(UTC、+0000)
システムクロック同期済み:はい
systemd-timesyncd.service active:いいえ
ローカルTZのRTC:いいえ
210送信元の数= 1
MS名/IPアドレスStratum Poll Reach LastRx Lastサンプル
===============================================================================
^* svtsnq01.mgmt 1 6 17 98 +2176us[+2275us] +/- 47ms