목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

구성

네트워크 다이어그램

구성

방법 1. 클러스터 간 비밀번호 인증 사용

방법 2. 클러스터 간 TLS 인증 사용

방법 3. 클러스터 간 비밀번호 인증과 함께 TLS를 사용합니다.

방법 4. 클러스터가 비밀번호 인증과 조인된 후 TLS 인증으로 전환합니다.

다음을 확인합니다.

문제 해결

방법 1의 ILS 등록을 위한 로그 분석

클러스터 간 비밀번호 인증을 사용하여 스포크가 허브에 등록됨

스포크가 허브에 등록하려고 시도했지만 암호가 일치하지 않아 실패했습니다.

방법 2의 ILS 등록을 위한 로그 분석

TLS 인증을 사용하여 스포크가 허브에 등록됨

Hub의 Tomcat 인증서를 Spoke에서 가져오지 않아 연결 실패

Hub에서 스포크의 Tomcat 인증서를 가져오지 않아 연결 실패

방법 3의 ILS 등록을 위한 로그 분석

Spoke가 TLS와 비밀번호 인증을 사용하여 허브에 등록됨

스포크의 Tomcat 인증서가 자체 서명되어 있어 연결 실패

허브의 Tomcat 인증서가 자체 서명되어 있어 연결 실패

방법 4의 ILS 등록을 위한 로그 분석

설정된 연결에서 비밀번호 인증을 사용하여 TLS 인증으로 전환할 때 스포크가 허브에 성공적으로 등록됩니다.

비밀번호 인증을 사용하여 설정된 연결에서 TLS 인증으로 전환할 때 허브에 자체 서명 인증서가 있으므로 연결이 실패합니다.

비밀번호 인증을 사용하여 설정된 연결에서 TLS 인증으로 전환할 때 스포크에 자체 서명 인증서가 있으므로 연결이 실패합니다.

소개

이 문서에서는 ILS(Clusters for Intercluster Lookup Service)에 조인할 수 있는 컨피그레이션 방법에 대해 설명하며, 각 방법을 해결하기 위한 로그 분석을 기록합니다.

사전 요구 사항

요구 사항

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

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- Cisco CUCM(Unified Communications Manager) 버전 11.5

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

구성

네트워크 다이어그램

구성

방법 1. 클러스터 간 비밀번호 인증 사용

CUCM Administration(CUCM 관리) 페이지에 로그인하고 Advanced Features(고급 기능) > ILS Configuration(ILS 컨피그레이션)으로 이동합니다.

ILS Configuration(ILS 컨피그레이션) 창에서 Use Password(비밀번호 사용) 확인란을 선택합니다.

비밀번호를 관리한 다음 저장을 누릅니다.비밀번호는 ILS 네트워크의 모든 클러스터에서 동일해야 합니다.

방법 2. 클러스터 간 TLS 인증 사용

이 방법을 사용하려면 ILS 네트워크에 속할 모든 클러스터가 tomcat-trust에서 원격 클러스터 Tomcat 인증서를 가져왔는지 확인합니다.

CUCM Administration에서 고급 기능 > ILS Configuration으로 이동합니다. ILS Configuration(ILS 컨피그레이션) 창에서 ILS Authentication(ILS 인증) 아래 Use TLS Certificates(TLS 인증서 사용) 확인란을 선택합니다.

방법 3. 클러스터 간 비밀번호 인증과 함께 TLS를 사용합니다.

이 방법의 장점은 TLS 연결이 외부 CA(Certificate Authority)에 의해 서명된 경우 클러스터 간에 Tomcat 인증서를 교차 가져올 필요가 없다는 것입니다. 이 방법은 CUCM 11.5 이상에서 사용할 수 있습니다.

이 방법을 사용하려면 ILS 네트워크에 속할 모든 클러스터에 외부 CA에서 서명한 tomcat 인증서가 있고 이 CA의 루트 인증서가 tomcat-trust에 있는지 확인합니다.또한 비밀번호는 ILS 네트워크의 모든 클러스터에서 동일해야 합니다.

CUCM Administration(CUCM 관리)에서 Advanced Features(고급 기능) > ILS Configuration Under ILS Authentication(ILS 인증)으로 이동하고 Use TLS Certificates and Use Password(TLS 인증서 사용 및 비밀번호 사용) 확인란을 선택합니다.

방법 4. 클러스터가 비밀번호 인증과 조인된 후 TLS 인증으로 전환합니다.

이는 외부 CA에서 서명한 경우 클러스터 간에 Tomcat 인증서를 교차 가져오지 않고 TLS를 사용하는 또 다른 방법입니다.이 옵션은 방법 3이 지원되지 않는 11.5 이전의 CUCM 버전에 유용합니다.

이 방법을 사용하려면 ILS 네트워크에 속할 모든 클러스터에 외부 CA에서 서명한 tomcat 인증서가 있고 이 CA의 루트 인증서가 tomcat-trust에 있는지 확인합니다.

비밀번호 인증을 사용하여 먼저 클러스터에 가입합니다.Cisco Unified CM Administration(Cisco Unified CM 관리)에서 Advanced Features(고급 기능) > ILS Configuration(ILS 컨피그레이션)으로 이동합니다. ILS Authentication(ILS 인증)에서 Use Password(비밀번호 사용) 확인란을 선택합니다.비밀번호를 관리합니다.저장을 클릭합니다.

클러스터 가입 시 비밀번호는 클라이언트 및 서버 측에서 동일해야 합니다.

연결이 설정되면 인증 방법을 TLS로 변경합니다.  CUCM Administration(CUCM 관리)에서 Advanced Features(고급 기능) > ILS Configuration(ILS 컨피그레이션)으로 이동합니다.ILS Configuration(ILS 컨피그레이션) 창의 ILS Authentication(ILS 인증) 아래에서 Use TLS Certificates(TLS 인증서 사용) 확인란을 선택합니다.

다음을 확인합니다.

성공적인 등록은 의 ILS Clusters 및 Global DialPlan Imported Catalogs에서 확인할 수 있습니다.

고급 기능 > ILS Configuration

원격 클러스터 세부 정보는 remotecluster에서 sql select * 명령을 실행하여 나열됩니다.

문제 해결

Cisco Intercluster Lookup Service의 디버그 추적 레벨을 세부적으로 설정합니다.

추적 위치:  activelog /cm/trace/ils/sdl/

예를 들어 각 ILS 등록 방법에 대한 성공 및 실패 시나리오의 로그 분석에 대해 설명합니다.

방법 1의 ILS 등록을 위한 로그 분석

클러스터 간 비밀번호 인증을 사용하여 스포크가 허브에 등록됨

허브의 로그 조각:

00154617.001 |16:58:42.888 |AppInfo  |IlsD IlsHandler: Ils::wait_SdlConnectionInd(): New connection accepted. DeviceName=, TCPPid = [1.600.13.5], IPAddr=10.106.104.201, Port=37816, Controller=[1,20,1]

00154617.002 |16:58:42.888 |AppInfo  |IlsD Ils::ConnectInd TCPPid([1, 600, 13, 5]), PeerIP/Port(10.106.104.201:37816), LocalIP/Port(10.106.104.220:7502) (10.106.104.201:37816)

00154618.012 |16:58:42.889 |AppInfo  |IlsD ::ConnectIndInner Server Connection to PeerId(f7f885dcaca845f18f3b7e583ff6c457), TCPPid([1, 600, 13, 5]), PeerIP/Port(10.106.104.201:37816), LocalIP/Port(10.106.104.220:7502) TLSReq(f) established

스포크의 로그 조각:

00145095.017 |16:58:42.878 |AppInfo  |IlsD Ils::ConnectReq(): Requesting Connection to IpAddr(10.106.104.220), IpPort(7502), TLSReq(f)

00145095.018 |16:58:42.878 |AppInfo  |IlsD Ils::ConnectReq() Pub IP/Port(10.106.104.220:7502) Pri IP/Port(:7502) TLSReq(false)

00145095.024 |16:58:42.879 |AppInfo  |IlsD Ils::processConnectReq Initiating non-TLS Connection

00145096.001 |16:58:42.881 |AppInfo  |IlsD Ils::ConnectRes() appCorr(1029) TCPPid([1, 600, 13, 5]), PeerIP/Port(10.106.104.220:7502), LocalIP/Port(10.106.104.201:37816) TLSReq(f) found

00145096.002 |16:58:42.881 |AppInfo  |IlsD DEBUG(0000FA0E): Client Connection to peerId(00000000000000000000000000000000) ipAddr(10.106.104.220) ipPort(7502) TLSReq(f) succeeded

00145097.010 |16:58:42.896 |AppInfo  |IlsD ::ConnectIndInner starting  to PeerId(77c59d0960cc4fdc959168a3d686a6de), TCPPid([1, 600, 13, 5]), PeerIP/Port(10.106.104.220:7502), LocalIP/Port(10.106.104.201:37816) TLSReq(f) established

스포크가 허브에 등록하려고 시도했지만 암호가 일치하지 않아 실패했습니다.

DecryptData가 실패했으며 Hub 로그의 ILSPwdAuthenticationFailed 경보가 비밀번호가 일치하지 않음을 나타냅니다.

허브의 로그 조각:

00155891.005 |17:25:26.197 |AppInfo  |IlsD IlsHandler: wait_SdlDataInd EncrUtil::decryptData failed. DeviceName=, TCPPid = [1.600.13.7], IPAddr=10.106.104.201, Port=40592, Controller=[1,20,1]

00155891.006 |17:25:26.197 |AppInfo  |IlsD wait_SdlDataInd sending ILSPwdAuthenticationFailed alarm with IPAddress= 10.106.104.201; mAlarmedConnections count= 1

참고:암호 불일치로 인해 연결이 실패할 때마다 대부분의 메서드에서 오류가 동일합니다.

방법 2의 ILS 등록을 위한 로그 분석

TLS 인증을 사용하여 스포크가 허브에 등록됨

허브의 로그 조각:

00000901.001 |15:46:27.238 |AppInfo  |IlsD Ils::VerifyCertificateInfo(): peer certificates are in certificate store

00000902.008 |15:46:27.240 |AppInfo  |IlsD ::ConnectIndInner Server Connection to PeerId(f7f885dcaca845f18f3b7e583ff6c457), TCPPid([1, 600, 17, 4]), PeerIP/Port(10.106.104.201:60938), LocalIP/Port(10.106.104.220:7501) TLSReq(t) established

스포크의 로그 조각:

00000646.001 |15:46:27.189 |AppInfo  |IlsD Ils::VerifyCertificateInfo(): peer certificates are in certificate store

00000647.006 |15:46:27.199 |AppInfo  |IlsD ::ConnectIndInner starting  to PeerId(77c59d0960cc4fdc959168a3d686a6de), TCPPid([1, 600, 17, 3]), PeerIP/Port(10.106.104.220:7501), LocalIP/Port(10.106.104.201:36115) TLSReq(t) established

Hub의 Tomcat 인증서를 Spoke에서 가져오지 않아 연결 실패

스포크의 로그는 허브에 대한 인증서 확인에 실패했음을 나타냅니다.

스포크의 로그 조각:

00001821.000 |16:34:01.765 |AppInfo  |[1, 600, 17, 5]: HandleSSLError - Certificate verification failed:(Verification error:18)- self signed certificate for 10.106.104.220:7501

00001822.000 |16:34:01.765 |AppInfo  |[1, 600, 17, 5]: HandleSSLError - Certificate verification failed for 10.106.104.220:7501

00001827.002 |16:34:01.766 |AppInfo  |IlsD Ils::wait_SdlConnectErrRsp sending ILSTLSAuthenticationFailed alarm with Cluster1 = 10.106.104.220; mAlarmedConnections count= 1

00001827.004 |16:34:01.770 |AppInfo  |IlsD ERROR(000005C9): Connection to peerId(00000000000000000000000000000000) ipAddr(10.106.104.220) ipPort(7501) TLSReq(t) failed, ConnReason(1)

Hub에서 스포크의 Tomcat 인증서를 가져오지 않아 연결 실패

허브의 로그는 연결이 로컬 저장소에 있는 스포크의 인증서 또는 피어 정보 벡터에 있는 FQDN으로 닫혀 있지 않음을 나타냅니다.

허브의 로그 조각:

00003366.001 |17:06:30.877 |AppInfo  |CertUtil Ils::isCertInLocalStore X509_STORE_get_by_subject failed.

00003366.002 |17:06:30.877 |AppInfo  |IlsD Ils::VerifyCertificateInfo(): certificate is not in the local store and the FQDN (cucm11.adfs.ucce.com) is not in the peer info vector, closing the connection

00003366.003 |17:06:30.877 |AppInfo  |IlsD Ils::VerifyCertificateInfo(): sending ILSTLSAuthenticationFailed alarm for Cluster1= cucm11.adfs.ucce.com; mAlarmedConnections count= 1

00003366.004 |17:06:30.882 |AppInfo  |IlsD IlsHandler: Close Req. DeviceName=, TCPPid = [1.600.17.16], IPAddr=10.106.104.201, Port=39267, Controller=[1,20,1

방법 3의 ILS 등록을 위한 로그 분석

Spoke가 TLS와 비밀번호 인증을 사용하여 허브에 등록됨

허브의 로그 조각:

00000211.001 |08:06:58.798 |AppInfo  |CertUtil Ils::isCertInLocalStore X509_STORE_get_by_subject failed.

00000211.002 |08:06:58.798 |AppInfo  |IlsD Ils::VerifyCertificateInfo(): peer certificates are not in certificate store but Root CA signed certs are uploaded locally

00000212.001 |08:06:58.803 |AppInfo  |EncrUtil Function: decryptData at line 163 succedded

00000212.002 |08:06:58.803 |AppInfo  |EncrUtil Function: decryptData at line 165 succedded

00000212.003 |08:06:58.803 |AppInfo  |EncrUtil Function: decryptData at line 168 succedded

00000212.004 |08:06:58.803 |AppInfo  |EncrUtil decryptData: inlen 1956, outlen 1949 succeed

00000212.012 |08:06:58.804 |AppInfo  |IlsD ::ConnectIndInner Server Connection to PeerId(f7f885dcaca845f18f3b7e583ff6c457), TCPPid([1, 600, 17, 1]), PeerIP/Port(10.106.104.201:56181), LocalIP/Port(10.106.104.220:7501) TLSReq(t) established

스포크의 로그 조각:

00000064.000 |08:06:58.802 |SdlSig   |SdlConnectRsp                          |wait                           |Ils(1,600,20,1)

|SdlSSLTCPConnection(1,600,17,1)  |1,600,16,1.1^*^*                         |*TraceFlagOverrode

00000064.001 |08:06:58.802 |AppInfo  |CertUtil Ils::isCertInLocalStore X509_STORE_get_by_subject failed.

00000064.002 |08:06:58.802 |AppInfo  |IlsD Ils::VerifyCertificateInfo(): peer certificates are not in certificate store but Root CA signed certs are uploaded locally.

00000064.004 |08:06:58.802 |AppInfo  |IlsD DEBUG(00000407): Client Connection to peerId(00000000000000000000000000000000) ipAddr(10.106.104.220) ipPort(7501) TLSReq(t) succeeded

00000065.010 |08:06:58.812 |AppInfo  |IlsD ::ConnectIndInner starting  to PeerId(77c59d0960cc4fdc959168a3d686a6de), TCPPid([1, 600, 17, 1]), PeerIP/Port(10.106.104.220:7501), LocalIP/Port(10.106.104.201:56181) TLSReq(t) established

스포크의 Tomcat 인증서가 자체 서명되어 있어 연결 실패

허브의 로그는 스포크의 자체 서명 인증서에 대한 인증서 확인 실패를 나타냅니다.

허브의 로그 조각:

00000103.000 |09:44:16.896 |AppInfo  |[1, 600, 17, 1]: HandleSSLError - Certificate verification failed:(Verification error:18)-

self signed certificate for 10.106.104.201:52124

00000104.000 |09:44:16.896 |AppInfo  |[1, 600, 17, 1]: HandleSSLError - Certificate verification failed for 10.106.104.201:52124

00000106.000 |09:44:16.896 |AppInfo  |[1, 600, 17, 1]: HandleSSLError - TLS protocol error(ssl reason code=internal error [68]),lib=SSL routines [20],fun=SSL_clear [164], errno=0 for 10.106.104.201:52124

허브의 Tomcat 인증서가 자체 서명되어 있어 연결 실패

스포크의 로그는 허브의 자체 서명 인증서에 대한 인증서 확인 오류를 나타냅니다.

스포크의 로그 조각:

00000064.000 |12:44:19.641 |AppInfo  |[1, 600, 17, 1]: HandleSSLError - Certificate verification failed:(Verification error:18)- self signed certificate for 10.106.104.220:7501

00000065.000 |12:44:19.641 |AppInfo  |[1, 600, 17, 1]: HandleSSLError - Certificate verification failed for 10.106.104.220:7501

00000067.000 |12:44:19.641 |AppInfo  |[1, 600, 17, 1]: HandleSSLError - TLS protocol error(ssl reason code=bad message type [114]),lib=SSL routines [20],fun=ssl3_get_server_hello [146], errno=0 for 10.106.104.220:7501

참고:이 경우 허브와 스포크 둘 다 자체 서명된 경우에도 오류가 동일합니다.

방법 4의 ILS 등록을 위한 로그 분석

설정된 연결에서 비밀번호 인증을 사용하여 TLS 인증으로 전환할 때 스포크가 허브에 성공적으로 등록됩니다.

연결이 암호 인증 방법으로 이미 설정되어 있으므로 PeerInfoVector에 표시되는 원격 클러스터의 FQDN입니다.  비밀번호 인증 방법에서 TLS로 전환할 때 tomcat 인증서를 교차 가져오지 않으므로 로그에 "X509_STORE_get_by_subject 실패" 오류가 인쇄됩니다.그러나 "FQDN이 PeerInfoVector에 있음"이므로 TLS를 사용하여 연결을 수락합니다.

허브의 로그 조각:

00000169.001 |19:41:50.255 |AppInfo  |CertUtil Ils::isCertInLocalStore X509_STORE_get_by_subject failed.

00000169.002 |19:41:50.255 |AppInfo  |IlsD Ils::VerifyCertificateInfo(): FQDN is in PeerInfoVector

00000169.003 |19:41:50.255 |AppInfo  |IlsD IlsHandler: Ils::wait_SdlConnectionInd(): New connection accepted. DeviceName=, TCPPid = [1.600.17.1], IPAddr=10.106.104.201, Port=51887, Controller=[1,20,1]

스포크의 로그 조각:

00000072.001 |19:41:50.257 |AppInfo  |CertUtil Ils::isCertInLocalStore X509_STORE_get_by_subject failed.

00000072.002 |19:41:50.257 |AppInfo  |IlsD Ils::VerifyCertificateInfo(): FQDN is in PeerInfoVector

TLS 인증으로 전환할 때 허브에 자체 서명 인증서가 있으므로 연결 실패 를 클릭합니다.

스포크의 로그는 허브의 자체 서명 인증서에 대한 인증서 확인 실패를 나타냅니다.

스포크의 로그 조각:

00000151.000 |12:29:18.600 |AppInfo  |[1, 600, 17, 2]: HandleSSLError - Certificate verification failed:(Verification error:18)- self signed certificate for 10.106.104.220:7501

00000152.000 |12:29:18.600 |AppInfo  |[1, 600, 17, 2]: HandleSSLError - Certificate verification failed for 10.106.104.220:7501

TLS 인증으로 전환할 때 스포크에 자체 서명 인증서가 있으므로 연결 실패 를 클릭합니다.

허브의 로그는 스포크의 자체 서명 인증서에 대한 인증서 확인 실패를 나타냅니다.

허브의 로그 조각:

00000089.000 |09:32:27.365 |AppInfo  |[1, 600, 17, 1]: HandleSSLError - Certificate verification failed:(Verification error:18)- self signed certificate for 10.106.104.201:41295

00000090.000 |09:32:27.365 |AppInfo  |[1, 600, 17, 1]: HandleSSLError - Certificate verification failed for 10.106.104.201:41295