목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

기능의 목적

구성

네트워크 다이어그램

설치 프로세스

설치 후 OS 관리 웹 페이지를 사용 합니다

설치 후 명령줄 인터페이스를 사용합니다

문제 해결

수집할 데이터

예제 분석

CUCM에 대한 PCAP 검토 - 파일 없음

CUCM에 대한 PCAP 검토 - 파일 포함

CUCM에 대한 CLI 출력 검토

추가 고려 사항

관련 정보

소개

이 문서에서는 CUCM(Cisco Unified Communications Manager)용 NTP(Network Time Protocol)에 대해 설명합니다.

사전 요구 사항

요구 사항

이 문서에 대한 특정 요건이 없습니다.

사용되는 구성 요소

이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

기능의 목적

이 문서에서는 CUCM을 통한 NTP의 목적, NTP의 컨피그레이션, 문제 해결을 위해 수집할 데이터, 데이터 분석 예, 추가 연구를 위한 관련 리소스에 대해 설명합니다.

CUCM을 사용하는 NTP의 목적은 서버가 올바른 시간을 인식하도록 하기 위한 것입니다. VOIP(Voice Over Internet Protocol)는 시간 변화에 매우 민감하기 때문에 CUCM 서버의 시간이 중요합니다. CUCM 클러스터는 데이터베이스 복제 요구 사항 때문에 클러스터의 다른 서버에 가깝게 유지되는 시간 동기화를 유지해야 합니다.

마지막으로, 로그에 올바른 타임스탬프를 가져오려면 문제 해결에 소요되는 시간이 중요합니다.

구성

CUCM에는 특정 NTP 서버가 필요합니다.

Windows NTP 서버는 CUCM에서 지원되지 않습니다. 그러나 Linux NTP 소스, Cisco IOS® NTP 소스, Nexus OS NTP 소스와 같은 다른 유형은 허용됩니다. 다른 Cisco 솔루션에서는 NTP 솔루션에 Windows Server를 활용할 수 있지만 CallManager, Cisco Unity, Instant Messaging and Presence와 같은 UC 솔루션은 사용할 수 없으며 Linux 기반 또는 Cisco IOS® 기반 NTP 솔루션이 필요합니다. 이는 Windows Time Services에서 SNTP를 사용하는 경우가 많기 때문입니다. Linux 시스템은 동기화하기 어렵습니다.

네트워크 다이어그램

CUCM 게시자에는 CUCM 클러스터의 멤버가 아닌 NTP 소스가 필요하므로 CUCM 게시자는 NTP 서버와 시간을 동기화합니다. 이 거래소에서 CUCM 게시자는 NTP 클라이언트입니다.

CUCM 가입자는 CUCM 게시자와 시간을 동기화합니다. 이 교환에서 CUCM 게시자는 NTP 서버이며, 여기서 CUCM 가입자는 NTP 클라이언트입니다.

주의: Cisco IM&P(Instant Messaging & Presence) 서버도 CUCM 클러스터의 가입자로 간주되므로 CUCM의 NTP에도 의존합니다. 즉, IM&P 서버에서 NTP가 동기화되지 않은 경우 시스템에서 데이터베이스 복제 및 고가용성에 문제가 발생합니다.

설치 프로세스

CUCM을 설치하면 서버가 클러스터의 첫 번째 노드인지 확인하는 프롬프트가 표시됩니다.

서버가 클러스터의 첫 번째 노드가 아닌 경우 설치 마법사가 NTP 컨피그레이션 단계를 지나 이동합니다. 그러나 NTP 서버가 클러스터의 첫 번째 노드인 경우 해당 서버에 대한 프롬프트가 표시됩니다.

설치 후 OS 관리 웹 페이지를 사용 합니다

설치 후 명령줄 인터페이스를 사용합니다

그림에 나와 있는 것처럼 CUCM 서버 내에서 NTP 서버에 액세스하고 이를 수정하는 데 사용되는 명령을 찾을 수 있습니다.

- utils ntp server list 명령은 시스템에 구성된 NTP 서버를 표시합니다.

- utils ntp server add ntp_address 명령은 시스템에 새 NTP 서버를 추가합니다.

참고: 새 NTP 서버를 추가하려는 경우 CUCM 서버는 추가하기 전에 연결 가능성을 테스트하며, 실패할 경우 다음 오류가 표시됩니다.

- utils ntp server delete 명령을 사용하면 시스템 내에 이미 구성된 NTP를 삭제할 수 있습니다.

문제 해결

수집할 데이터

NTP 문제를 해결할 때 NTP 문제가 있는 CUCM 서버에서 이러한 데이터를 수집해야 합니다.

- 명령 utils diagnose test의 출력

- utils ntp 상태의 출력

- Cisco RTMT(Real-Time Monitor Tool)에서 수집한 CUCM의 NTP 로그

예제 분석

예를 들어 CUCM 게시자 및 NTP의 다음 정보가 사용되었습니다.

CUCM 게시자

버전: 11.5(1) SU5

FQDN: cucm-115.home.lab

IP 주소는 192.X.X.X로 시작합니다.

NTP

Google NTP 서버에서

FQDN: time1.example.com.ntp

IP 주소는 216.X.X.X로 시작합니다.

CUCM에 대한 PCAP 검토 - 파일 없음

포트 번호는 123입니다. NTP용 포트입니다. 텍스트 상자에 있는 명령의 출력에서 NTP 버전이 "NTPv4"에 표시된 4임을 확인할 수 있습니다. 또한 "time1.example.com"과 통신을 설정할 때 클라이언트 역할을 하는 게시자를 메모할 수도 있지만 cucm-sub1, cucm-sub2 및 cucm-sub3과 통신을 설정할 때 서버 역할을 합니다.

From the CLI of the publisher run the command "utils network capture port 123"

Wait until you see traffic (this can take a little time, or it may be instant) then hit

ctrl+c. Look in the traffic to find where your publisher is communicating with its NTP

server and the NTP server is communication with the publisher (if the NTP server isn't

replying then it is an issue in the network or with the NTP server). The primary focus of

this output is the NTP version. In CUCM 9 and later NTP version 3 (NTPv3) can cause issues

and an NTP source using NTPv4 should be the NTP server for the publisher.

admin:utils network capture size all count 10000000 port 123

Executing command with options:

size=128                count=1000              interface=eth0

src=dest=                   port=123

ip=

16:08:43.199710 IP cucm-sub3.home.lab.39417 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:08:43.199737 IP cucm-115.home.lab.ntp > cucm-sub3.home.lab.39417: NTPv4, Server, length 48

16:08:43.199823 IP cucm-sub3.home.lab.39417 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:08:43.199859 IP cucm-115.home.lab.ntp > cucm-sub3.home.lab.39417: NTPv4, Server, length 48

16:09:01.640980 IP cucm-115.home.lab.50141 > time1.example.com.ntp: NTPv4, Client, length 48

16:09:01.654675 IP time1.example.com.ntp > cucm-115.home.lab.50141: NTPv4, Server, length 48

16:09:01.654733 IP cucm-115.home.lab.50141 > time1.example.com.ntp: NTPv4, Client, length 48

16:09:01.667368 IP time1.example.com.ntp > cucm-115.home.lab.50141: NTPv4, Server, length 48

16:09:01.668612 IP cucm-115.home.lab.50141 > time1.example.com.ntp: NTPv4, Client, length 48

16:09:01.681366 IP time1.example.com.ntp > cucm-115.home.lab.50141: NTPv4, Server, length 48

16:09:01.681518 IP cucm-115.home.lab.50141 > time1.google.com.ntp: NTPv4, Client, length 48

16:09:01.694108 IP time1.google.com.ntp > cucm-115.home.lab.50141: NTPv4, Server, length 48

16:09:01.875016 IP cucm-115.home.lab.48422 > time1.google.com.ntp: NTPv4, Client, length 48

16:09:01.884476 IP cucm-sub3.home.lab.58072 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:01.884568 IP cucm-115.home.lab.ntp > cucm-sub3.home.lab.58072: NTPv4, Server, length 48

16:09:01.884954 IP cucm-sub3.home.lab.58072 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:01.884999 IP cucm-115.home.lab.ntp > cucm-sub3.home.lab.58072: NTPv4, Server, length 48

16:09:01.885381 IP cucm-sub3.home.lab.58072 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:01.885423 IP cucm-115.home.lab.ntp > cucm-sub3.home.lab.58072: NTPv4, Server, length 48

16:09:01.886147 IP cucm-sub3.home.lab.58072 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:01.886184 IP cucm-115.home.lab.ntp > cucm-sub3.home.lab.58072: NTPv4, Server, length 48

16:09:01.888555 IP time1.google.com.ntp > cucm-115.home.lab.48422: NTPv4, Server, length 48

16:09:01.888642 IP cucm-115.home.lab.48422 > time1.google.com.ntp: NTPv4, Client, length 48

16:09:01.900926 IP time1.google.com.ntp > cucm-115.home.lab.48422: NTPv4, Server, length 48

16:09:01.901017 IP cucm-115.home.lab.48422 > time1.google.com.ntp: NTPv4, Client, length 48

16:09:01.913497 IP time1.google.com.ntp > cucm-115.home.lab.48422: NTPv4, Server, length 48

16:09:01.913566 IP cucm-115.home.lab.48422 > time1.google.com.ntp: NTPv4, Client, length 48

16:09:01.926693 IP time1.google.com.ntp > cucm-115.home.lab.48422: NTPv4, Server, length 48

16:09:02.038981 IP cucm-sub2.home.lab.42078 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:02.039117 IP cucm-115.home.lab.ntp > cucm-sub2.home.lab.42078: NTPv4, Server, length 48

16:09:02.039281 IP cucm-sub2.home.lab.42078 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:02.039345 IP cucm-115.home.lab.ntp > cucm-sub2.home.lab.42078: NTPv4, Server, length 48

16:09:02.039434 IP cucm-sub2.home.lab.42078 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:02.039535 IP cucm-115.home.lab.ntp > cucm-sub2.home.lab.42078: NTPv4, Server, length 48

16:09:02.039607 IP cucm-sub2.home.lab.42078 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:02.039814 IP cucm-115.home.lab.ntp > cucm-sub2.home.lab.42078: NTPv4, Server, length 48

16:09:02.066544 IP cucm-sub1.home.lab.46400 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:02.066622 IP cucm-115.home.lab.ntp > cucm-sub1.home.lab.46400: NTPv4, Server, length 48

16:09:02.066751 IP cucm-sub1.home.lab.46400 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:02.066892 IP cucm-115.home.lab.ntp > cucm-sub1.home.lab.46400: NTPv4, Server, length 48

16:09:02.066968 IP cucm-sub1.home.lab.46400 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:02.067104 IP cucm-115.home.lab.ntp > cucm-sub1.home.lab.46400: NTPv4, Server, length 48

16:09:02.067155 IP cucm-sub1.home.lab.46400 > cucm-115.home.lab.ntp: NTPv4, Client, length 48

16:09:02.067189 IP cucm-115.home.lab.ntp > cucm-sub1.home.lab.46400: NTPv4, Server, length 48

CUCM에 대한 PCAP 검토 - 파일 포함

패킷 캡처에서 NTP 문제를 해결하는 데 사용되는 필터는 udp.port == 123입니다. 이 필터를 사용하면 CUCM 게시자가 Google NTP 서버와의 통신을 설정했으며 CUCM 게시자가 CUCM 가입자와도 통신을 설정했음을 확인할 수 있습니다.

CUCM에 대한 CLI 출력 검토

utils ntp 상태 출력

NOTE: All nodes will show the current time in UTC regardless of the time zone of the server

(listed in UTC time). This makes it easy to compare times on the different CUCM nodes.

NOTE: If there is a time difference of 15 minutes or more, it is expected that DB replication

will be broken

1) If the publisher is ahead by 15 minutes, this can result in the pub send data to the

sub and the sub would have a delay to process the data because it has not yet reached the time

in the timestamp of the packets from the publisher (this is expected behavior in this type of situation)

2) If  the subscriber is ahead by 15 minutes, this would result in the subscriber drop

the data from the publisher because the subscriber sees it as old data (15 minutes old)

admin:utils ntp status

ntpd (pid 28435) is running...

remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

203.0.113.0    .GOOG.           1 u   44   64    3   11.724   -0.021   0.064

unsynchronised

polling server every 8 s

Current time in UTC is : Fri Sep  6 20:54:50 UTC 2019

Current time in America/New_York is : Fri Sep  6 16:54:50 EDT 2019

admin:

이전 출력을 자세히 설명하므로 다음 정보를 읽어 보십시오.

The very first column contains the "tally code" character. Short overview:

* the source you are synchronized to (syspeer)

# source selected, distance exceeds maximum value

o the PPS(Pulse Per Second) source if your ntpd (ppspeer, only if you have a PPS capable system and refclock)

+ candidate, i.e. it is considered a good source

- outlyer, i.e. quality is not good enough

x falseticker, i.e. this one is considered to distribute bad time

blank: source discarded, failed sanity

See the Select field of the Peer status word on the NTP Event Messages and

Status Words page for more information on the tally codes.

remote

the hostname or IP of the remote machine.

refid

the identification of the time source to which the remote machines is synced.

May be (for example) a radio clock or another ntp server)

st

the stratum of the remote machine. 16 is "unsynchronized". 0 is the best

value, that could be (for example) a radio clock or the ntp servers private

caesium clock (see http://www.eecis.udel.edu/~mills/ntp/html/index.html#intro

for more information about ntp in general).

t

types available:

l = local (such as a GPS, WWVB)

u = unicast (most common)

m = multicast

b = broadcast

- = netaddr

when

how many seconds since the last poll of the remote machine.

poll

the polling interval in seconds.

reach

an 8-bit left-rotating register. Any 1 bit means that a "time packet" was

received. The right most bit indicate the status of the last connection

with the NTP server. It is Octal number. Use calculator in progammer

interface to translate from OCT to BIN: For example 377 translates to

11111111. Each 1 means a successful connection to the NTP server. If you

just start a NTP service, and it connects successfully with its server, this

number will change as follows (if connectivity is good):

00000001 = 001

00000011 = 003

00000111 = 007

00001111 = 017

00011111 = 037

00111111 = 077

01111111 = 177

11111111 = 377

delay

the time delay (in milliseconds) to communicate with the remote.

offset

the offset (in milliseconds) between our time and that of the remote.

jitter

the observed jitter (in milliseconds) of time with the remote.

유틸리티 진단 테스트 출력

admin:utils diagnose test

Log file: platform/log/diag1.log

Starting diagnostic test(s)

===========================

test - disk_space          : Passed (available: 6463 MB, used: 12681 MB)

skip - disk_files          : This module must be run directly and off hours

test - service_manager     : Passed

test - tomcat              : Passed

test - tomcat_deadlocks    : Passed

test - tomcat_keystore     : Passed

test - tomcat_connectors   : Passed

test - tomcat_threads      : Passed

test - tomcat_memory       : Passed

test - tomcat_sessions     : Passed

skip - tomcat_heapdump     : This module must be run directly and off hours

test - validate_network    : Passed

test - raid                : Passed

test - system_info         : Passed (Collected system information in diagnostic log)

test - ntp_reachability    : Passed

test - ntp_clock_drift     : Passed

test - ntp_stratum         : Passed

skip - sdl_fragmentation   : This module must be run directly and off hours

skip - sdi_fragmentation   : This module must be run directly and off hours

Diagnostics Completed

The final output will be in Log file: platform/log/diag1.log

Please use 'file view activelog platform/log/diag1.log' command to see the output

admin:

유틸리티 진단 테스트 출력에서 NTP가 실패하면 다음과 유사한 내용이 표시됩니다.

admin:utils diagnose test

Log file: platform/log/diag1.log

Starting diagnostic test(s)

===========================

test - disk_space          : Passed (available: 6463 MB, used: 12681 MB)

skip - disk_files          : This module must be run directly and off hours

test - service_manager     : Passed

test - tomcat              : Passed

test - tomcat_deadlocks    : Passed

test - tomcat_keystore     : Passed

test - tomcat_connectors   : Passed

test - tomcat_threads      : Passed

test - tomcat_memory       : Passed

test - tomcat_sessions     : Passed

skip - tomcat_heapdump     : This module must be run directly and off hours

test - validate_network    : Passed

test - raid                : Passed

test - system_info         : Passed (Collected system information in diagnostic log)

test - ntp_reachability    : Warning

The NTP service is restarting, it can take about 5 minutes.

test - ntp_clock_drift     : Warning

The local clock is not synchronised.

None of the designated NTP servers are reachable/functioning or legitimate.

test - ntp_stratum         : Warning

The local clock is not synchronised.

None of the designated NTP servers are reachable/functioning or legitimate.

skip - sdl_fragmentation   : This module must be run directly and off hours

설치 시 NTP가 정상인지 확인합니다. 다음 명령을 실행합니다.

cdrtime > getCurrTime()이 있는 장치에서 pkid,name,dbinfo('utc_to_datetime', cdrtime)를 CDRTIME으로 sql을 실행합니다.

이 명령은 현재 시간과 cdrtime(테이블을 수정했을 때)을 비교합니다. 설치/업그레이드에서 잘못된 NTP를 사용한 다음 NTP를 수정한 경우 변경 사항이 발생할 때마다 데이터베이스가 동기화되지 않습니다. 이 문제는 일반적인 NTP 명령(예: utils ntp 상태)을 실행할 때 표시되지 않습니다. 잘못된 NTP 소스에서 좋은 NTP 소스로 이동했기 때문입니다.

나쁜 NTP에서 좋은 NTP로 옮긴 것이 좋습니다. 그러나 좋은 NTP 소스로 옮기면 설치/업그레이드 중에 생성된 테이블이 수정되지 않습니다.

이 명령을 실행할 때 필요한 출력은 다음과 같습니다.

admin:run sql select pkid,name,dbinfo('utc_to_datetime', cdrtime) as CDRTIME  from device where cdrtime > getCurrTime()

pkid name cdrtime

==== ==== =======

admin:

다음 출력과 유사한 출력이 있는 경우 설치/업그레이드에 사용된 NTP가 사용되지 않았으며 데이터베이스 복제에 영향을 주는 문제가 발생했음을 나타냅니다.

admin:run sql select pkid,name,dbinfo('utc_to_datetime', cdrtime) as CDRTIME from device where cdrtime > getCurrTime()

pkid                                    name          cdrtime

=============================           =====         =====================

bf80dd31-9911-43ce-81fd-a99ec0333fb5    MTP_2         2016-09-11 14:38:14.0

4c38fc05-760d-4afb-96e8-69333c195e74    CFB_2         2016-09-11 14:38:14.0

90878c80-e213-4c7e-82b9-6c780aac72f3    ANN_2         2016-09-11 14:38:14.0

08b5bff4-da94-4dfb-88af-ea9ffa96872c    MOH_2         2016-09-11 14:38:14.0

93320e4d-1b73-4099-9a7c-c4cddfadb5d9    MTP_3         2016-09-11 14:38:14.0

a6850d42-5f0a-49ce-9fa3-80d45b800e23    CFB_3         2016-09-11 14:38:14.0

9963c9cb-58b0-4191-93e1-8676584f6461    ANN_3         2016-09-11 14:38:14.0

def79fb7-c801-4fb3-85fb-4e94310bf0bd    MOH_3         2016-09-11 14:38:14.0

4cd64584-089b-4331-9291-79774330cbc     2 MTP_4       2016-09-11 14:38:14.0

27b18882-db83-4d14-8bce-d3f8dc439610    CFB_4         2016-09-11 14:38:14.0

a40da882-e04f-4649-b2eb-2f79d1289e81    ANN_4         2016-09-11 14:38:14.0

36575ff4-cdea-4945-87e7-638cc555463e    MOH_4         2016-09-11 14:38:14.0

추가 고려 사항

1) VM 하드웨어 고려 사항 없이 ESXi 호스트를 업그레이드할 경우 NTP 문제가 발생할 수 있습니다.

2) ESXi 버전이 가상화 매트릭스를 준수하는지 확인합니다.

3) ESXi 버전 및 하드웨어 버전이 호환되는지 확인

관련 정보

- 기술 지원 및 문서 - Cisco 시스템초

- Cisco Collaboration System 10.x SRND(Solution Reference Network Design)

- CLI 및 기타 유용한 정보에서 CUCM의 NTP 소스 변경

- Cisco Unified Communications Manager의 NTP 문제 해결

- Network Time Protocol: 모범 사례 백서

- CUCM 어플라이언스 모델의 패킷 캡처