소개
이 문서에서는 5G SMI(Subscriber Microservices Infrastructure) 프로토콜 가상 머신(프로토콜 VM)의 NTP(Network Time Protocol) 시간 동기화 문제에 대한 해결 방법을 설명합니다.
사전 요구 사항
요구 사항
Cisco에서는 다음 항목에 대해 알고 있는 것이 좋습니다.
- Cisco SMI
- 5G CNDP(Cloud Native Deployment Platform) 아키텍처
- Cloud - Red Hat OpenStack Platform 13("Queens" 릴리스)
- 부두 및 쿠베르네테
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- SMI 2020.01.1-21
- 쿠베르네테스 v1.16.2
- Red Hat OpenStack Platform 13 디렉터
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
SMI란 무엇입니까?
Cisco SMI는 Cisco Mobility, Cable 및 BNG(Broadband Network Gateway) 비즈니스 유닛에서 마이크로서비스 기반 애플리케이션을 활성화하는 클라우드 기술 및 표준의 레이어 스택입니다. 이러한 애플리케이션에는 유사한 가입자 관리 기능 및 유사한 데이터 저장소 요구 사항이 있습니다.
특성:
- 레이어 클라우드 스택(기술 및 표준)은 하향식 구축을 제공하고 현재 클라우드 인프라를 수용합니다.
- 모든 애플리케이션은 비 애플리케이션 기능(데이터 스토리지, 구축, 컨피그레이션, 텔레메트리, 알람)에 대한 CEE(Common Execution Environment)를 공유하며, 이를 통해 모든 고객 접점과 통합 지점에 대해 일관된 상호 작용과 경험을 제공합니다.
- 애플리케이션과 CEE는 마이크로서비스 컨테이너에 구축되며 Intelligent Service Mesh로 연결됩니다.
- 배포, 구성 및 관리를 위한 노출된 API는 자동화를 가능하게 합니다.
CEE란 무엇입니까?
- CEE는 SMI에 구축된 모바일 및 케이블 애플리케이션을 모니터링하기 위해 개발된 소프트웨어 솔루션입니다. CEE는 엔지니어가 디버깅하고 문제를 해결할 수 있도록 애플리케이션의 정보(주요 메트릭)를 중앙 집중식으로 캡처합니다.
- CEE는 모든 애플리케이션에 설치되는 공통 툴 집합입니다. 전용 Ops Center가 장착되어 있어 모니터 툴을 관리하기 위한 CLI(Command Line Interface) 및 API를 제공합니다. 각 클러스터에는 하나의 CEE만 사용할 수 있습니다.
프로토콜 VM이란?
프로토콜 VM은 프로토콜 변환을 담당하는 SMF(Session Management Function) 애플리케이션 마이크로서비스를 호스팅합니다. SMF 인스턴스당 2개의 프로토콜 VM이 구축됩니다. 프로토콜 VM에는 GTPc, LI(Lawful Intercept), Radius, Rest 등의 포드가 있습니다.
문제
문제를 표시하는 노드(프로토콜 VM)에서 네트워크가 두 개의 다른 인터페이스를 사용하여 연결을 NTP 서버로 라우팅하려고 시도하는 것을 볼 수 있습니다. 그러나 네트워크 중 하나만 IP에 연결할 수 있습니다.
일정 시간 동안 인터페이스 없이 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
이 예에서는 두 가지 기본 경로를 볼 수 있는데, 이는 올바르지 않습니다. (기본 경로는 하나만 있어야 합니다.)
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) 서비스의 상태를 확인합니다. 서비스가 작동 중이지만 "동기화할 수 없음" 오류 메시지가 표시됩니다.
샘플 출력:
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 service script (/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
확인
해결 단계를 완료한 후 다음 명령을 실행하여 문제가 해결되었는지 확인합니다.
for server in $(awk '/protocol/{print $1}' /etc/hosts); do ssh $server "hostname && timedatectl status && chronyc sources -vn" ; done
참고: '시스템 클럭 동기화됨' 값이 '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