概要
このドキュメントでは、5G Subscriber Microservices Infrastructure(SMI)プロトコル仮想マシン(プロトコルVM)でNetwork Time Protocol(NTP)の時刻同期の問題の回避策を実装する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Cisco SMI
- 5G Cloud Native Deployment Platform(CNDP)アーキテクチャ
- クラウド – Red Hat OpenStack Platform 13(「クイーンズ」リリース)
- ドッカーとクベルネテス
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- SMI 2020.01.1-21
- クベルネテスv1.16.2
- Red Hat OpenStack Platform 13ディレクタ
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
SMIとは
Cisco SMIは、Cisco Mobility、Cable、およびBroadband Network Gateway(BNG)ビジネスユニットからマイクロサービスベースのアプリケーションを可能にする、クラウドテクノロジーと標準の階層型スタックです。これらのアプリケーションには、同様の加入者管理機能と類似のデータストア要件があります。
属性:
- Layer Cloud Stack(テクノロジーおよび標準)は、トップツーボトムデプロイメントを提供し、現在のクラウドインフラストラクチャに対応します。
- すべてのアプリケーションは、アプリケーション以外の機能(データストレージ、導入、設定、テレメトリ、アラーム)のCommon Execution Environment(CEE)を共有し、すべての顧客のタッチポイントと統合ポイントに一貫したインタラクションとエクスペリエンスを提供します。
- アプリケーションとCEEは、マイクロサービスコンテナに導入され、インテリジェントサービスメッシュに接続されます。
- 展開、設定、および管理のための公開APIにより、自動化が可能になります。
CEEとは
- CEEは、SMIに導入されているモバイルおよびケーブルアプリケーションを監視するために開発されたソフトウェアソリューションです。CEEは、エンジニアがデバッグおよびトラブルシューティングを行うために、アプリケーションから情報(主要なメトリック)を一元的に取得します。
- CEEは、すべてのアプリケーションにインストールされる共通のツールセットです。専用のオペレーションセンターが付属しており、コマンドラインインターフェイス(CLI)とモニタツールを管理するためのAPIを提供します。各クラスタで使用できるCEEは1つだけです。
プロトコルVMとは
プロトコルVMは、プロトコル変換を担当するセッション管理機能(SMF)アプリケーションマイクロサービスをホストします。SMFのインスタンスごとに2つのプロトコルVMが導入されます。プロトコルVMには、GTPc、Lawful Intercept(LI)、Radius、Restなどのポッドがあります。
問題
この問題が発生しているノード(プロトコルVM)から、ネットワークが2つの異なるインターフェイスを使用してNTPサーバへの接続をルーティングしようとしていることがわかります。ただし、IPに到達できるネットワークは1つだけです。
インターフェイスを使用せずにpingを実行すると、パケット損失の原因であることがわかります。
CEEからのアラート例:
[pod-name-cnat/global] cee# show alerts active summary
NAME UID SEVERITY STARTS AT SOURCE SUMMARY
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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 Clock not in synch detected on hostname pod-name-cnat-cnat-core-protocol-data1 . Ensure NTP is configu...
clock-is-not-in-synch 4a7e138b8bae major 01-18T13:07:35 pod-name-cnat-cnat-co Clock not in synch detected on hostname pod-name-cnat-cnat-core-protocol-ims2 . Ensure NTP is configur...
clock-is-not-in-synch 5b3e128f0101 major 01-18T12:05:55 pod-name-cnat-cnat-co Clock not in synch detected on hostname pod-name-cnat-cnat-core-protocol-data2 . Ensure NTP is configu...
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/ uses high memory 82.69%.
N11_SM_Timeout_SR f6fb82cac197 major 10-31T15:51:16 System This alert is fired when the increase in timeout for N11 messages toward AMF crosses threshold
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 System This alert is fired when the increase in timeout for N11 messages toward AMF crosses threshold
N4_Total_Outbound_Int 4e0f3c1d6300 major 10-20T09:01:23 System This alert is fired when the percentage of N4 outbound responses sent is lesser than threshold %.
N4_Total_Outbound_Int 3e2fed624704 major 10-20T08:21:23 System This alert is fired when the percentage of N4 outbound responses sent is lesser than threshold %.
watchdog 97a7976a4103 minor 05-05T09:10:58 System This is an alert meant to ensure that the entire alerting pipeline is functional. This alert is always...
トラブルシュート
-
該当する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
-
クロニッド(NTP)サービスのステータスを確認します。サービスが起動していても、「同期できない」エラーが表示されます。
出力例:
root@pod-name-cnat-cnat-core-protocol-data1:/home/ubuntu# systemctl status chronyd.service
chrony.service - chrony, an NTP client/serverLoaded: loaded (/lib/systemd/system/chrony.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-01-08 07:19:19 UTC; 11 months 24 days ago
Docs: man:chronyd(8)
man:chronyc(1)
man:chrony.conf(5)
Main PID: 4300 (chronyd)
Tasks: 1 (limit: 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]: Can't synchronise: no selectable sources
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]: Can't synchronise: no selectable sources
Jan 01 16:50:02 pod-name-cnat-cnat-core-protocol-data1 chronyd[4300]: Selected source 5.196.x.x
Jan 01 19:25:05 pod-name-cnat-cnat-core-protocol-data1 chronyd[4300]: Can't synchronise: no selectable sources
-
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
-
Chronydサービスを再起動します。
root@pod-name-cnat-cnat-core-protocol-data1:/home/ubuntu# systemctl restart chronyd.service
確認
回避策の手順を完了したら、次のコマンドを実行して、問題が修正されたことを確認します。
for server in $(awk '/protocol/{print $1}' /etc/hosts); do ssh $server "hostname && timedatectl status && chronyc sources -vn" ; done
注:[システムクロック同期済み(System clock synchronized)]値が[はい(yes)]の場合は、問題が修正されていることを示します。
出力例:
ubuntu@pod-name-cnat-cnat-core-master1:~$ for server in $(awk '/protocol/{print $1}' /etc/hosts); do ssh $server "hostname && timedatectl status && chronyc sources -vn" ; done
pod-name-cnat-cnat-core-protocol-data1
Local time: Tue 2021-09-07 10:22:16 UTC
Universal time: Tue 2021-09-07 10:22:16 UTC
RTC time: Tue 2021-09-07 10:22:17
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
systemd-timesyncd.service active: no
RTC in local TZ: no
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* svtsnq01.mgmt 1 6 170 282 -1100us[-1858us] +/- 47ms
pod-name-cnat-cnat-core-protocol-data2
Local time: Tue 2021-09-07 10:22:16 UTC
Universal time: Tue 2021-09-07 10:22:16 UTC
RTC time: Tue 2021-09-07 10:22:17
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
systemd-timesyncd.service active: no
RTC in local TZ: no
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* svtsnq01.mgmt 1 6 74 206 -218us[-1550us] +/- 46ms
pod-name-cnat-cnat-core-protocol-ims1
Local time: Tue 2021-09-07 10:22:17 UTC
Universal time: Tue 2021-09-07 10:22:17 UTC
RTC time: Tue 2021-09-07 10:22:18
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
systemd-timesyncd.service active: no
RTC in local TZ: no
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* svtsnq01.mgmt 1 6 77 24 +796us[+1044us] +/- 47ms
pod-name-cnat-cnat-core-protocol-ims2
Local time: Tue 2021-09-07 10:22:17 UTC
Universal time: Tue 2021-09-07 10:22:17 UTC
RTC time: Tue 2021-09-07 10:22:18
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
systemd-timesyncd.service active: no
RTC in local TZ: no
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* svtsnq01.mgmt 1 6 17 98 +2176us[+2275us] +/- 47ms