Introduzione
In questo documento viene descritto come implementare una soluzione per i problemi di sincronizzazione dell'ora NTP (Network Time Protocol) nelle macchine virtuali con protocollo SMI (Subscriber Microservices Infrastructure) 5G.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- Cisco SMI
- Architettura 5G Cloud Native Deployment Platform (CNDP)
- Cloud - Red Hat OpenStack Platform 13 (versione "Queens")
- Docker e Kubernetes
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
- SMI 2020.1.1-21
- Kubernetes v1.16.2
- Director Red Hat OpenStack Platform 13
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
Che cos'è SMI?
Cisco SMI è uno stack a più livelli di tecnologie e standard cloud che abilitano applicazioni basate su microservizi dalle unità aziendali Cisco Mobility, Cable e Broadband Network Gateway (BNG). Queste applicazioni hanno funzioni simili di gestione degli utenti e requisiti simili per gli archivi dati.
Attributi:
- Lo stack di cloud di livello (tecnologie e standard) fornisce distribuzioni top-to-bottom e supporta l'attuale infrastruttura cloud.
- Tutte le applicazioni condividono il Common Execution Environment (CEE) per le funzioni non applicative (storage dei dati, installazione, configurazione, telemetria, allarme), che fornisce un'interazione e un'esperienza coerenti per tutti i punti di contatto e i punti di integrazione del cliente.
- Applicazioni e CEE vengono implementati in contenitori di microservizi e sono connessi con una rete di servizi intelligente.
- Un'API esposta per l'installazione, la configurazione e la gestione consente l'automazione.
Che cos'è CEE?
- CEE è una soluzione software sviluppata per monitorare le applicazioni mobili e via cavo installate sull'interfaccia SMI. La CEE acquisisce le informazioni (metriche chiave) dalle applicazioni in modo centralizzato per consentire ai tecnici di eseguire il debug e risolvere i problemi.
- Il CEE è l'insieme di strumenti comuni installati per tutte le applicazioni. È dotato di un centro operativo dedicato, che fornisce l'interfaccia CLI (Command Line Interface) e le API per la gestione degli strumenti di monitoraggio. Per ogni cluster è disponibile un solo CEE.
Che cosa sono le VM di protocollo?
Le VM di protocollo ospitano i microservizi dell'applicazione SMF (Session Management Function) responsabili della traduzione del protocollo. Per ogni istanza di SMF vengono implementate due VM di protocollo. Una VM di protocollo dispone di pod quali GTPc, Lawful Intercept (LI), Radius, Rest e così via.
Problema
Da un nodo (macchina virtuale del protocollo) che presenta il problema, è possibile notare che la rete tenta di utilizzare due diverse interfacce per instradare la connettività al server NTP. Tuttavia, solo una delle reti può raggiungere l'IP.
Quando si esegue un ping senza l'interfaccia per qualche tempo, si nota che causa la perdita di pacchetti.
Esempio di avviso da 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...
Risoluzione dei problemi
-
Accedere alle VM interessate ed eseguire questo comando: ip route | grep -i default
In questo esempio vengono visualizzate due route predefinite, che non sono corrette. Deve esistere una sola route predefinita.
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
-
Controllare lo stato del servizio NTP (Sync). Anche se il servizio è attivo, verranno visualizzati errori di "Impossibile sincronizzare".
Output di esempio:
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
-
Controllare lo stato del servizio di configurazione di rete. (è inattivo).
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)
Soluzione alternativa
Nota: Questa procedura non causa tempi di inattività nell'applicazione.
-
Modificare lo script del servizio di configurazione di rete (/etc/systemd/system/network-config.service) nel nodo interessato per aggiungere le righe seguenti:
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
-
Avviare il servizio di configurazione della rete:
root@pod-name-cnat-cnat-core-protocol-data1:/home/ubuntu# systemctl start network-config
-
Ricaricare la configurazione con systemctl:
root@pod-name-cnat-cnat-core-protocol-data1:/home/ubuntu# systemctl daemon-reload
-
Riavviare il servizio Cronyd:
root@pod-name-cnat-cnat-core-protocol-data1:/home/ubuntu# systemctl restart chronyd.service
Verifica
Dopo aver completato la procedura per la soluzione dei problemi, eseguire questo comando per verificare che i problemi siano stati risolti:
for server in $(awk '/protocol/{print $1}' /etc/hosts); do ssh $server "hostname && timedatectl status && chronyc sources -vn" ; done
Nota: Il valore "System clock synchronized" (Sincronizzazione orologio di sistema) impostato su "yes" indica che i problemi sono stati risolti.
Output di esempio:
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