이 문서에서는 SNMP(Simple Network Management Protocol) 구성 요소를 소개하고, MDT(Model Driven Telemetry) 접근 방식에 대한 SNMP 모니터링을 기반으로 하는 현재 구현 간의 상관관계를 제공합니다.
SNMP는 SNMP 관리자와 에이전트 간의 통신을 위한 메시지 형식을 제공하는 애플리케이션 레이어 프로토콜입니다. SNMP는 표준화된 프레임워크와 네트워크에서 디바이스를 모니터링하고 관리하는 데 사용되는 공용 언어를 제공합니다
SNMP 프레임워크에는 다음 구성 요소가 있으며, 이에 대해서는 다음 절에서 설명합니다.
SNMP 관리자
SNMP 관리자는 SNMP를 사용하여 네트워크 호스트의 활동을 제어하고 모니터링하는 시스템입니다. 가장 일반적인 관리 시스템은 NMS(Network Management System)입니다. NMS라는 용어는 네트워크 관리를 위해 사용되는 전용 디바이스 또는 해당 디바이스에서 사용되는 애플리케이션에 적용될 수 있습니다.SNMP 에이전트
SNMP 에이전트는 디바이스의 데이터를 유지 관리하고 필요에 따라 이 데이터를 관리 시스템에 보고하는 관리되는 디바이스 내의 소프트웨어 구성 요소입니다. 에이전트는 라우팅 디바이스(라우터, 액세스 서버 또는 스위치)에 상주합니다.SNMP MIB
SNMP 에이전트에는 ‘Get’ 또는 ‘Set’ 작업을 통해 SNMP 관리자가 값을 요청하거나 변경할 수 있는 MIB 변수가 포함되어 있습니다. 관리자는 에이전트에서 값을 가져오거나 해당 에이전트에 값을 저장할 수 있습니다. 에이전트는 SNMP MIB, 즉 디바이스 매개변수 및 네트워크 데이터에 대한 정보를 위한 저장소에서 데이터를 수집합니다. 에이전트는 데이터를 가져오거나 설정하기 위한 관리자 요청에 응답할 수도 있습니다.
아래 그림은 SNMP 관리자와 에이전트 간의 통신을 보여줍니다. 관리자는 SNMP MIB 값을 가져오고 설정하기 위한 에이전트 요청을 보냅니다. 에이전트는 이러한 요청에 응답합니다. 이러한 상호 작용과 상관없이 에이전트는 네트워크 상태에 대해 관리자에게 알리기 위해 관리자에게 원치 않는 알림(트랩 또는 알림)을 보낼 수 있습니다.
SNMP 작업
SNMP 애플리케이션은 데이터를 검색하고 SNMP 객체 변수를 수정하고 알림을 전송하기 위해 다음 작업을 수행합니다.
SNMP 가져오기
SNMP GET 작업은 SNMP 개체 변수를 검색하기 위해 NMS에 의해 수행됩니다. GET 작업에는 세 가지 유형이 있습니다.
GET — SNMP 에이전트에서 정확한 객체 인스턴스를 검색합니다.
GETNEXT – 지정된 변수의 사전적 후속 변수인 다음 개체 변수를 검색합니다.
GETBULK – 반복적인 GETNEXT 작업을 수행하지 않고 대량의 객체 변수 데이터를 검색합니다.
SNMP 세트
SNMP SET 작업은 NMS에서 object 변수의 값을 수정하기 위해 수행됩니다.SNMP 알림
SNMP의 주요 기능은 SNMP 에이전트에서 원치 않는 알림을 생성하는 기능입니다.
원치 않는(비동기식) 알림은 트랩이나 알림 요청(알림)으로 생성될 수 있습니다. Traps는 SNMP(Simple Network Management Protocol) 관리자에게 네트워크의 상태를 알리는 메시지입니다. Inform(알림)은 SNMP 관리자의 수신 확인 요청을 포함하는 트랩입니다. 알림은 부적절한 사용자 인증, 재시작, 연결 종료, 네이버 디바이스와의 연결 끊김 또는 기타 중요한 이벤트를 나타낼 수 있습니다.
수신자가 트랩을 수신할 때 확인 응답을 보내지 않으므로 트랩은 알림보다 신뢰성이 낮습니다. 보낸 사람은 트랩이 수신되었는지 여부를 알 수 없습니다. 알림을 수신하는 SNMP 관리자는 SNMP 응답 PDU(Protocol Data Unit)를 사용하여 메시지를 승인합니다. 발신자가 응답을 받지 못한 경우 알림을 다시 세계랭킹1위오피스타전송할 수 있습니다. 따라서 원하는 목적지에 도달할 가능성이 더 높습니다.
알림이 디바이스와 네트워크에서 더 많은 리소스를 소비하기 때문에 신뢰성이 떨어지더라도 트랩이 선호되는 경우가 많습니다. 보내자마자 폐기되는 트랩과 달리, 응답이 수신되거나 요청이 시간 초과될 때까지 메모리에 정보가 보관되어야 합니다. 또한 트랩은 한 번만 전송되지만 알림은 여러 번 재전송될 수 있습니다. 이러한 재시도는 트래픽을 증가시키고 네트워크의 오버헤드를 높이는 원인이 됩니다. 트랩 및 알림을 사용하려면 신뢰성과 리소스 간의 절충이 필요합니다.MIB 및 RFC
() 모듈은 일반적으로 국제 표준 기구인 IETF(Internet Engineering Task Force)에 제출된 RFC(Request for Comments) 문서에 정의됩니다. RFC는 인터넷 학회와 인터넷 커뮤니티 전체에서 고려하기 위해 개인 또는 그룹이 작성하며, 일반적으로 권장 인터넷 표준을 수립할 목적으로 작성됩니다. RFC 상태를 부여하기 전에 권장 사항이 I-D(Internet Draft) 문서로 게시됩니다. 권장 표준이 된 RFC는 표준 문서(STD)로도 레이블이 지정됩니다. 표준 프로세스 및 IETF의 활동에 대한 자세한 내용은 Internet Society 웹 사이트 http:// www.isoc.org에서 확인할 수 있습니다. Cisco 설명서에서 참조하는 모든 RFC, I-D 및 STD의 전문은 IETF 웹 사이트(http://www.ietf.org)에서 읽을 수 있습니다.
Cisco의 SNMP 구현에서는 RFC 1213에 설명된 MIB II 변수의 정의 및 RFC 1215에 설명된 SNMP 트랩의 정의를 사용합니다.
Cisco는 모든 시스템에 자체 프라이빗 MIB 확장을 제공합니다. Cisco 엔터프라이즈 MIB는 문서에 달리 명시되지 않는 한 관련 RFC에 설명된 지침을 준수합니다. Cisco MIB 웹 사이트 Cisco.com에서 각 Cisco 플랫폼에서 지원되는 MIB 모듈 정의 파일 및 목록을 찾을 수 있습니다.SNMP 버전
현재 Cisco 디바이스는 다음 버전의 SNMP를 지원합니다.
SNMPv1—Simple Network Management Protocol: rfc 1157에 정의된 전체 인터넷 표준. (RFC 1157은 RFC 1067 및 RFC 1098로 게시된 이전 버전을 대체합니다.) 보안은 커뮤니티 문자열을 기반으로 합니다.
SNMPv2c – SNMPv2를 위한 커뮤니티 문자열 기반 관리 프레임워크입니다. SNMPv2c(“c”는 “community”를 위한 것입니다)는 RFC 1901, RFC 1905 및 RFC 1906에 정의된 실험적 인터넷 프로토콜입니다. SNMPv2c는 SNMPv2p(SNMPv2 Classic)의 프로토콜 작업 및 데이터 유형을 업데이트하는 것이며 SNMPv1의 커뮤니티 기반 보안 모델을 사용합니다.
SNMPv3—SNMP 버전 3. SNMPv3는 RFC 3413~3415에 정의된 상호 운용 가능한 표준 기반 프로토콜입니다. SNMPv3은 네트워크를 통해 패킷을 인증하고 암호화하여 디바이스에 대한 보안 액세스를 제공합니다.
SNMPv3에서 제공하는 보안 기능은 다음과 같습니다.
메시지 무결성 – 패킷이 전송 중에 변조되지 않았는지 확인합니다.
Authentication(인증) – 메시지가 유효한 소스에서 온 것인지 확인합니다.
암호화 – 패킷의 내용을 스크램블하여 무단 소스에 의해 인식되지 않도록 합니다.
SNMPv1과 SNMPv2c 모두 커뮤니티 기반 보안 형식을 사용합니다. 에이전트 MIB에 액세스할 수 있는 SNMP 관리자의 커뮤니티는 커뮤니티 문자열로 정의됩니다.
SNMPv2c 지원에는 대량 검색 메커니즘과 관리 스테이션에 대한 상세한 오류 메시지 보고가 포함됩니다. 대량 검색 메커니즘은 테이블 및 대량의 정보 검색을 지원하여 필요한 라운드 트립 수를 최소화합니다. 향상된 SNMPv2c 오류 처리 지원에는 다양한 오류 유형을 구별하는 확장된 오류 코드가 포함되어 있습니다. 이러한 조건은 SNMPv1의 단일 오류 코드를 통해 보고됩니다. 다음 세 가지 예외 유형도 보고됩니다. 해당 개체가 없고, 해당 인스턴스가 없으며, MIB 보기의 끝입니다.
SNMPv3는 사용자 및 사용자가 상주하는 그룹에 대해 인증 전략이 설정된 보안 모델입니다. 보안 수준은 보안 모델 내에서 허용되는 보안 수준입니다. 보안 모델과 보안 레벨을 조합하여 SNMP 패킷을 처리할 때 어떤 보안 메커니즘을 사용할지 결정합니다.
세 가지 보안 모델이 제공됩니다. SNMPv1, SNMPv2c 및 SNMPv3. 아래 표에는 보안 모델 및 레벨의 조합과 그 의미가 나열되어 있습니다.
관리 스테이션에서 지원하는 SNMP 버전을 사용하려면 SNMP 에이전트를 구현해야 합니다. 에이전트는 여러 관리자와 통신할 수 있습니다.
SNMPv3은 RFC 1901~1908, 2104, 2206, 2213, 2214 및 2271~2275를 지원합니다. SNMPv3에 대한 자세한 내용은 RFC 2570, Introduction to Version 3 of the Internet-standard Network Management Framework(표준 문서가 아님)를 참조하십시오.
Yang 모델은 시스템의 특정 기능 또는 하드웨어 특성의 트리 구조 추상화를 나타냅니다. 네트워크 요소에서 Yang 모델은 라우팅 프로토콜인 내부 물리적 센서 어레이를 나타낼 수 있습니다. YANG 언어와 용어는 RFC 6020에 설명되어 있으며 RFC 7950에 업데이트되어 있습니다. 상위 레벨에서 Yang 모델은 주요 구조를 나타내는 데이터를 관련 하위 노드의 목록인 하위 모듈과 컨테이너에 구성합니다. 다음은 여러 노드 유형에 대해 설명합니다.
리프 노드에는 정수나 문자열과 같은 단순 데이터가 포함됩니다. 특정 유형의 값이 하나만 있으며 자식 노드는 없습니다.
leaf host-name {
type string;
description “Hostname for this system”;
}
leaf-list는 leaf당 특정 유형의 값이 정확히 하나인 leaf 노드의 시퀀스입니다.
leaf-list domain-search {
type string;
description “List of domain names to search”;
}
컨테이너 노드는 하위 트리에서 관련 노드를 그룹화하는 데 사용됩니다. 컨테이너에는 자식 노드만 있고 값은 없습니다. 컨테이너에는 leaf, list, containers, leaf-lists를 비롯한 임의 유형의 자식 노드가 포함될 수 있습니다.
container system {
container login {
leaf message {
type string;
description
“Message given at start of login session”;
}
}
}
목록은 목록 항목의 순서를 정의합니다. 각 항목은 구조 또는 레코드 인스턴스와 같으며 키 leaf의 값으로 고유하게 식별됩니다. 목록은 여러 개의 키 leaf를 정의할 수 있으며 leaf, 목록, 컨테이너 등 유형의 자식 노드를 원하는 수만큼 포함할 수 있습니다.
마지막으로, 이러한 모든 메모 유형을 함께 바인딩하는 샘플 모델은 다음 예제와 같습니다.
그러나 Yang 모델에 사용된 Yang 언어가 컨테이너/목록/leaf로 데이터를 구성한다는 의미는 아닙니다. 네트워크 요소의 특정 기능을 다양한 Yang 모델로 나타낼 수 있는 이유입니다. 이 문제는 다음과 같은 Yang 모델 유형으로 해결되었습니다.
OpenConfig 모델은 특정 기능을 나타내는 모델에 대해 벤더에 구애받지 않는 조직을 사용하여 개발되었으며, 이 접근 방식의 이점은 NMS가 이러한 모델을 사용하여 멀티벤더 또는 멀티플랫폼 환경의 네트워크 요소와 상호 작용할 수 있다는 것입니다.
이름 에는 다음과 같은 모델이 열려 있으며 이 링크의 github와 같은 저장소에 대한 검사에 공개적으로 사용할 수 있습니다.
https://github.com/openconfig/public/tree/master/release/models
예를 들어, BGP(Border Gateway Protocol)용 openconfig 모델, LACP()용 openconfig 모델, ISIS용 openconfig 모델과 특정 모델이 다른 모델을 찾을 수 있습니다. BGP의 경우 BGP 오류에 대한 모델, BGP 정책에 대한 모델 등을 찾을 수 있습니다. 모델들은 관련이 있을 수 있고, 일부 모델들은 다른 양 패키지를 호출할 수 있다. 예를 들어 openconfig-bgp-neighbor.yang은 openconfig-bgp.yang에 속합니다.
요약하면, OpenConfig 모델은 IETF 또는 RFC 표준화된 기능과 같이 모든 플랫폼에 공통적인 프로토콜을 대상으로 합니다.
이와 달리 네이티브 모델은 특정 플랫폼과 관련된 세부적인 구조를 다루는 공급업체 지향 모델입니다. 예를 들어 전압, 온도, ASIC 카운터, 패브릭 카운터 등과 같은 네트워크 요소 내부의 물리적 값 센서를 그룹화하는 모델입니다. 플랫폼에 따라 달라지므로 NCS6K, ASR9K 또는 Cisco 8000에 대한 특정 모델을 찾는 것이 일반적입니다.
OpenConfig 모델로서 네이티브 모델은 Github 저장소에서도 사용할 수 있습니다.
https://github.com/YangModels/yang/tree/master/vendor/cisco/xr
이러한 모델은 OpenConfig 모델보다 훨씬 더 구체적이고 완전한 경향이 있으므로 특정 소프트웨어 버전에 연결되어 있고 소프트웨어 릴리스 간에 변경될 수 있습니다.
Native Models에는 두 가지 주요 범주가 있습니다.
요소에서 정보를 검색하는 데 사용되는 “Oper” 모델.
예: Cisco-IOS-XR-eigrp-oper.yang
네트워크 요소를 구성하는 데 사용되는 “Cfg” 모델
예: Cisco-IOS-XR-eigrp-cfg.yang
일반적으로 Model Driven Telemetry는 “oper” 모델을 사용하여 인프라에서 데이터를 스트리밍하며, NSO와 같은 NMS는 “cfg” 모델을 사용하여 네트워크 요소의 컨피그레이션을 변경합니다.
네이티브 및 OpenConfig Yang 모델은 /pkg/yang 폴더의 XR 소프트웨어에 있으며, 플랫폼에서 사용 가능한 Yang 모델이 있는지 확인하기 위해 나열할 수 있습니다. 이 예는 cXR 6.4.2를 실행하는 XRrv9k에 대한 것입니다.
RP/0/RP0/CPU0:xrv9k1#run ls /pkg/yang | grep isis
Tue Sep 22 14:21:27.471 CLST
Cisco-IOS-XR-clns-isis-cfg.yang
Cisco-IOS-XR-clns-isis-datatypes.yang
Cisco-IOS-XR-clns-isis-oper-sub1.yang
Cisco-IOS-XR-clns-isis-oper-sub2.yang
Cisco-IOS-XR-clns-isis-oper-sub3.yang
Cisco-IOS-XR-clns-isis-oper.yang
Cisco-IOS-XR-isis-act.yang
openconfig-isis-lsdb-types.yang
openconfig-isis-lsp.yang
openconfig-isis-policy.yang
openconfig-isis-routing.yang
openconfig-isis-types.yang
openconfig-isis.yang
RP/0/RP0/CPU0:xrv9k1#
텔레메트리는 여러 원격 요소에서 정보를 수집하여 가시성 및 분석 계층을 통합하는 중앙 위치로 이동하는 프로세스입니다.
네트워킹 환경에서 데이터는 네트워크의 모든 요소, 라우터, 다른 요소 간의 스위치, 그리고 정보는 매우 큰 특정 프로토콜 집합, 성능 카운터 또는 물리적 센서의 측정과 관련될 수 있습니다.
일반적으로 가시성 및 분석 기능은 네트워크의 중앙 지점에 위치하며, 텔레메트리 정보의 스트리밍은 네트워킹 전송 메커니즘을 사용하여 이루어지므로 텔레메트리 정보를 최대한 빠르게 확장해야 합니다.
SNMP 레거시 메커니즘과 달리 텔레메트리는 푸시 패러다임을 사용합니다. 즉, 정기적인 간격으로 폴링되지 않고 네트워크를 프로비저닝하여 자체 데이터를 스트리밍해야 합니다. 이는 SNMP 기반 모니터링의 주요 특징입니다. 이 프로비저닝을 종종 서브스크립션이라고 하며, 모니터링할 변수 집합, 데이터 수집을 위한 샘플링 간격의 정기 간격 및 네트워크를 통해 이 데이터를 전송하는 원격 시스템을 기반으로 합니다.
MDT는 Model Driven Telemetry에 대해 설명하며, 이름에서 알 수 있듯이 Yang Models를 기반으로 합니다. 네트워크 장비의 모든 측면을 Yang 모델(예: OSPF Neighbors 테이블, RIB 또는 모듈형 시스템의 각 구성 요소에 대한 온도 센서)로 나타낼 수 있습니다.
MDT 아키텍처와 관련하여 다음 레이어로 나눌 수 있습니다.
참고: 프로듀서 레이어와 관련하여 모델 기반 텔레메트에는 디바이스에서 원시 데이터에 대해 내부 데이터베이스를 참조하고 이 데이터를 데이터 모델 레이어로 구성하는 빈도를 제어하는 샘플링 간격 정의가 있습니다.
또한 텔레메트리 서브스크립션은 어떤 모델 및 컨테이너/경로를 통해 분석 레이어로 스트리밍될 데이터를 생성할지를 정의합니다. 이러한 정의는 비즈니스 목적과 관련된 정보에 영향을 미칩니다. 두 기술 모두 정의된 샘플링 속도로 구조화된 데이터를 생성하기 때문에 이 센서 경로의 MDT 정의는 SNMP를 통해 검색할 OID를 정의하는 아날로그입니다.
EDT는 Event Driven Telemetry의 약자로, 구조에 Yang 모델을 기반으로 합니다. 주요 차이점은 수집 및 데이터 스트림에 대한 트리거가 정기적인 간격이 아니라 임계값 교차, 링크 이벤트, 하드웨어 오류 등과 같은 특정 이벤트라는 것입니다.
모델 기반 텔레메트리 및 이벤트 기반 텔레메트리를 사용하는 이벤트의 비교는 다음과 같습니다.
팁: 이 그림에서는 MDT를 사용하는 중복 메시지를 표시하지만, EDT를 사용하는 변경 사항을 나타내는 메시지만 표시합니다.
텔레메트리는 최대한 안정적이어야 하므로, TCP(Transmission Control Protocol) 기반 전송을 사용하여 인프라와 분석 레이어 간에 세션 지향 소켓을 사용하는 것이 합리적입니다. 그러면 이 레이어는 세션을 만들기 위한 컬렉터를 구현해야 합니다.
텔레메트리를 사용할 때 두 가지 주요 접근 방식이 있으며 3-way-handshake 초기 흐름에서 서로 다릅니다.
全球排名第一오피스타
참고: 전화 접속 모드에서는 인프라 측에서 세션 설정이 시작되며, 이는 네트워크 요소에 관심 센서를 구성해야 함을 의미합니다. 그러나 전화 접속 방식을 사용하면 컬렉터가 설정 단계에서 특정 센서 경로를 요청해야 하므로 네트워크 요소에 대한 컨피그레이션이 간소화됩니다.TCP
TCP는 네트워크 요소와 텔레메트리 컬렉터 간의 연결 지향 세션을 만드는 가장 간단한 방법입니다. 데이터 스트림은 라우터에서 컬렉터로 시작하며, 이 컬렉터는 안정성 확보를 위해 ACK를 라우터로 다시 전송합니다.
gRPC
gRPC(Google Protocol RPC)는 (Hypertext Transfer Protocol/2)를 통해 작동하므로 세션 자체가 설정 시 형성되어야 하며 기본적으로 컬렉터 측에서 속도 제어를 허용합니다.
gNMI/gNOI
gRPC gNMI(Network Management Interface)는 Google에서 개발한 gRPC 네트워크 관리 프로토콜입니다. gNMI는 네트워크 디바이스의 컨피그레이션을 설치, 조작 및 삭제할 수 있는 메커니즘을 제공하며 운영 데이터도 볼 수 있습니다. gNMI를 통해 제공되는 콘텐츠는 YANG을 이용하여 모델링할 수 있다.
gNMI는 gRPC-HTTP/2를 사용하여 연결을 설정하고, 네트워크 요소와 NMS 간에 양방향 채널을 제공하며, 이는 텔레메트리 컬렉터일 수도 있지만 디바이스를 관리하기 위한 인터페이스 및 기능도 제공합니다.
이 프로토콜에서 지원하는 작업 사이에 요청된 정보, 성공 또는 오류 메시지를 반환하는 gNMI Get, gNMI Set을 찾을 수 있습니다.
는 gNMI와 동일한 통신 채널을 사용하지만 ping, 재부팅, SSL 인증서 변경, 지우기 등과 같이 컨피그레이션 자체와 관련이 없는 일반 작업을 허용하는 마이크로서비스 모음입니다.
Yang 모델은 데이터의 구조, 계층 구조 및 데이터의 모든 리프 노드 유형을 정의합니다. 그러나 모델링은 이 데이터를 직렬화하는 방법을 나타내지 않습니다. 이 프로세스는 구조화된 데이터에서 TCP 연결(원시 TCP, gRPC, gNMI 등)을 통해 전송할 바이트 스트림으로의 변환을 제어합니다.
참고: 이 프로세스는 데이터를 인코딩해야 하는 네트워크 요소에 동일한 메커니즘으로 구현되어야 하며, 컬렉터는 이 데이터를 디코딩해야 합니다.JSON
첫 번째 인코딩 메커니즘은 네이티브 JSON() 형식입니다. 잘 알려져 있지만 메시지 크기 측면에서 비효율적인 문자열로 표시된 모든 키가 포함되어 있으므로 사람 지향적입니다. JSON을 사용하면 구문 분석이 용이하고 다음 예제처럼 텍스트 기반으로 읽기가 용이하다는 이점이 있습니다.
GPB-KV
Google Protocol Buffers-Key Value (GPB-KV) Encoding 형식은 프로토콜 버퍼를 사용하여 Yang 모델의 특정 요소를 가리키는 메시지를 사용하기 때문에 자체 설명 GPB라고도 합니다. 이는 하나의 .proto 파일만 목적을 인코딩/디코딩하는 데 필요하며 데이터의 키 자체는 자체 설명 문자열에 있음을 의미합니다.
GPB
마지막으로, 컴팩트 GPB라고도 하는 Google Protocol Buffers(GPB)는 이 접근 방식을 한 단계 더 적용하며 .proto 파일이 구조의 모든 키를 매핑해야 하므로 모든 것이 이진 값으로 전송되므로 메시지 크기 측면에서 훨씬 더 효율적입니다. 그러나 인프라/컬렉터에서 지원하는 모든 Yang 모델과 관련된 모든 .proto 파일을 컴파일해야 한다는 단점이 있습니다.
모델 기반 텔레메트리 데이터 스트리밍에 사용되는 핵심 구성 요소는 다음과 같습니다.
세션
센서 경로
서브스크립션
전송 및 인코딩
앞에서 설명한 대로 세션 옵션은 다이얼 인 또는 다이얼 아웃이 될 수 있습니다. IOS XR에서 컨피그레이션을 구축하기 위해
다이얼 아웃 모드의 경우 라우터는 서브스크립션을 기반으로 대상에 대한 세션을 시작하며, 이 프로세스에는 다음 단계가 포함되어야 합니다.
대상 그룹 생성
센서 그룹 생성
구독 만들기
전화 접속 구성 확인
대상 그룹을 만들려면 컬렉터의 IPv4(Internet Protocol Version 4)/IPv6(Internet Protocol Version 6) 주소와 이 애플리케이션을 서비스할 포트를 알아야 합니다. 또한 네트워크 디바이스 및 컬렉터에서 동의해야 하는 프로토콜 및 인코딩을 지정해야 합니다.
마지막으로, 컬렉터 네트워크 주소와 통신하는 데 사용되는 VRF(Virtual Routing and Forwarding)를 지정해야 할 수 있습니다.
다음으로, 다이얼 아웃 컨피그레이션의 예를 보여 줍니다.
telemetry model-driven
destination-group DG1
vrf MGMT
address-family ipv4 192.168.122.20 port 5432
encoding self-describing-gpb
protocol tcp
!
!
인코딩 옵션은 다음과 같이 표시됩니다.
RP/0/RP0/CPU0:C8000-1(config-model-driven-dest-addr)#encoding ?
gpb GPB encoding
json JSON encoding
self-describing-gpb Self describing GPB encoding ← Also known as GPB-KV
RP/0/RP0/CPU0:C8000-1(config-model-driven-dest-addr)#encoding
프로토콜 옵션은 다음과 같습니다.
RP/0/RP0/CPU0:C8000-1(config-model-driven-dest-addr)#protocol ?
grpc gRPC
tcp TCP
udp UDP
RP/0/RP0/CPU0:C8000-1(config-model-driven-dest-addr)#protocol grpc ?
gzip gRPC gzip message compression
no-tls No TLS
tls-hostname TLS hostname
RP/0/RP0/CPU0:C8000-1(config-model-driven-dest-addr)#protocol tcp ?
RP/0/RP0/CPU0:C8000-1(config-model-driven-dest-addr)#protocol udp ?
packetsize UDP packet size
RP/0/RP0/CPU0:C8000-1(config-model-driven-dest-addr)#protocol udp
TCP 프로토콜은 간단하며 IPv4/IPv6 주소에 연결된 포트 설정만 필요합니다. ( Datagram Protocol)는 연결이 없으므로 대상 그룹 상태는 항상 활성 상태가 됩니다.
선택적인 gzip 키워드를 사용하여 gRPC의 압축을 수행할 수 있습니다. gRPC는 기본적으로 TLS를 사용하므로 이 사용을 위해 인증서를 라우터에 로컬로 설치해야 합니다. 이 동작은 no-tls 키워드 컨피그레이션에 의해 재정의될 수 있습니다. 마지막으로 tls-hostname 키워드를 사용하여 인증서 용도로 다른 호스트 이름을 지정할 수 있습니다.
다음으로, 센서 그룹 섹션을 추가하여 관심 센서 경로를 표시해야 합니다. 이 섹션은 단순하지만 센서 경로 자체가 필터링을 통해 CPU(Central Processing Unit) 및 대역폭과 같은 여러 리소스를 최적화할 수 있다는 것을 아는 것이 중요합니다.
telemetry model-driven
sensor-group SG1
sensor-path Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization
sensor-path Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface[interface-name=’Mgmt*’]/data-rate
!
!
참고: 센서 경로에 필요한 형식은 <model-name>:<container-path>입니다.
이 문서에서는 레거시 접근 방식에서 “리프”를 나타내는 OID를 사용한 SNMP 기반 모니터링에서 동일한 “리프”와 일치하는 XPATH로 표시되는 YANG 모델로의 매핑을 보여줍니다.
최종 컨피그레이션 단계는 서브스크립션을 구성하여 센서 그룹을 텔레메트리 스트리밍을 위한 케이던스와 대상 그룹으로 연결해야 합니다.
telemetry model-driven
subscription SU1
sensor-group-id SG1 sample-interval 5000
destination-id DG1
!
!
이 예제에서는 이전 컬렉션의 끝을 기준으로 하는 샘플링 간격 5000밀리초(5초)를 사용합니다. 이 동작을 변경하려면 strict-timer 옵션으로 sample-interval 키워드를 변경할 수 있습니다.
확인을 위해 서브스크립션 상태를 다루는 다음 명령을 사용할 수 있습니다. 이 방법을 사용하면 센서 그룹 및 대상 그룹 정보도 처리할 수 있습니다.
RP/0/RP0/CPU0:C8000-1#sh telemetry model-driven subscription SU1
Wed Nov 18 15:38:01.397 UTC
Subscription: SU1
————-
State: ACTIVE
Sensor groups:
Id: SG1
Sample Interval: 5000 ms
Heartbeat Interval: NA
Sensor Path: Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface[interface-name=’Mgmt*’]/data-rate
Sensor Path State: Resolved
Sensor Path: Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization
Sensor Path State: Resolved
Destination Groups:
Group Id: DG1
Destination IP: 192.168.122.10
Destination Port: 5432
Destination Vrf: MGMT(0x60000001)
Encoding: self-describing-gpb
Transport: tcp
State: Active
TLS : False
Total bytes sent: 636284346
Total packets sent: 4189
Last Sent time: 2020-11-18 15:37:58.1700077650 +0000
Collection Groups:
——————
Id: 9
Sample Interval: 5000 ms
세계랭킹1위오피스타 Heartbeat Interval: NA
Heartbeat always: False
Encoding: self-describing-gpb
Num of collection: 1407
Collection time: Min: 4 ms Max: 13 ms
Total time: Min: 8 ms Avg: 10 ms Max: 20 ms
Total Deferred: 0
Total Send Errors: 0
Total Send Drops: 0
Total Other Errors: 0
No data Instances: 1407
Last Collection Start:2020-11-18 15:37:57.1699545994 +0000
Last Collection End: 2020-11-18 15:37:57.1699555589 +0000
Sensor Path: Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/data-rate
Id: 10
Sample Interval: 5000 ms
Heartbeat Interval: NA
Heartbeat always: False
Encoding: self-describing-gpb
Num of collection: 1391
Collection time: Min: 178 ms Max: 473 ms
Total time: Min: 247 ms Avg: 283 ms Max: 559 ms
Total Deferred: 0
Total Send Errors: 0
Total Send Drops: 0
Total Other Errors: 0
No data Instances: 0
Last Collection Start:2020-11-18 15:37:58.1699805906 +0000
Last Collection End: 2020-11-18 15:37:58.1700078415 +0000
Sensor Path: Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization
RP/0/RP0/CPU0:C8000-1#
전화 접속 모드에서 컬렉터는 네트워크 요소에 대한 연결을 시작합니다. 그런 다음 컬렉터에서 서브스크립션을 구축할 관심을 표시해야 합니다.
컨피그레이션에는 다음 단계가 있습니다.
gRPC 서비스 사용
센서 그룹 설정
확인
gRPC 서비스를 활성화하려면 컨피그레이션이 다음으로 표시됩니다.
!
grpc
vrf MGMT
port 57400
no-tls
address-family dual
!
VRF 및 TCP 포트를 포함하여 옵션은 간단합니다. 기본적으로 gRPC는 TLS를 사용하지만 no-tls 키워드로 비활성화할 수 있습니다. 마지막으로, 주소군 듀얼 옵션은 IPv4 및 IPv6를 사용하여 연결을 허용합니다.
다음으로, 다이얼인을 사용하려면 센서 그룹을 로컬로 정의해야 합니다. 이는 나중에 컬렉터에서 서브스크립션을 정의하는 데 사용됩니다.
telemetry model-driven
sensor-group SG3
sensor-path Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization세계 랭킹 1 위오피스타포털 사이트
sensor-path Cisco-IOS-XR-fib-common-oper:fib-statistics/nodes/node/drops
!
!
이 단계에서는 다이얼 인 모드의 컨피그레이션이 완료되었으며, 컬렉터 자체는 gRPC를 사용하여 라우터에 서브스크립션을 만들 수 있습니다. 확인을 위해 다이얼 아웃 모드와 동일한 접근 방식을 사용할 수 있습니다.
RP/0/RP0/CPU0:C8000-1#sh telemetry model-driven subscription anx-1605878175837
Fri Nov 20 13:58:37.894 UTC
Subscription: anx-1605878175837
————-
State: ACTIVE
Sensor groups:
Id: SG3
Sample Interval: 15000 ms
Heartbeat Interval: NA
Sensor Path: Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization
Sensor Path State: Resolved
Sensor Path: Cisco-IOS-XR-fib-common-oper:fib-statistics/nodes/node/drops
Sensor Path State: Resolved
Destination Groups:
Group Id: DialIn_1003
Destination IP: 192.168.122.10
Destination Port: 46974
Compression: gzip
Encoding: json
Transport: dialin
State: Active
TLS : False
Total bytes sent: 71000035
Total packets sent: 509
Last Sent time: 2020-11-20 13:58:32.1030932699 +0000
Collection Groups:
——————
Id: 5
Sample Interval: 15000 ms
Heartbeat Interval: NA
Heartbeat always: False
Encoding: json
Num of collection: 170
Collection time: Min: 273 ms Max: 640 ms
Total time: Min: 276 ms Avg: 390 ms Max: 643 ms
Total Deferred: 0
Total Send Errors: 0
Total Send Drops: 0
Total Other Errors: 0
No data Instances: 0
Last Collection Start:2020-11-20 13:58:32.1030283276 +0000
Last Collection End: 2020-11-20 13:58:32.1030910008 +0000
Sensor Path: Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization
Id: 6
Sample Interval: 15000 ms
Heartbeat Interval: NA
Heartbeat always: False
Encoding: json
Num of collection: 169
Collection time: Min: 15 ms Max: 33 ms
Total time: Min: 17 ms Avg: 22 ms Max: 33 ms
Total Deferred: 0
Total Send Errors: 0
Total Send Drops: 0
Total Other Errors: 0
No data Instances: 0
Last Collection Start:2020-11-20 13:58:32.1030910330 +0000
Last Collection End: 2020-11-20 13:58:32.1030932787 +0000
Sensor Path: Cisco-IOS-XR-fib-common-oper:fib-statistics/nodes/node/drops
RP/0/RP0/CPU0:C8000-1#
팁: 다이얼 인 모드의 라우터에서는 케이던스, 인코딩, 컬렉터 IP 또는 전송이 하드코딩되지 않습니다.
기존 SNMP에서 텔레메트리 모델로 마이그레이션하려면 다음 사항을 포함해야 합니다.
XPATH로 MIB 마이그레이션
텔레메트리로의 트랩 마이그레이션
보안 고려 사항
이를 위해 특정 기능에 매핑할 수 있는 자체 계층 구조(적어도 상위 수준)를 사용하여 MIB를 분류할 수 있습니다.BGP4-MIB
다음 표는 BGP 피어링 세션과 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름, 번호 및 해당 XPATH를 나타냅니다.CISCO-BGP4-MIB
다음 표는 BGP 세션 상태 및 접두사 교환과 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.CISCO 클래스 기반 QOS MIB
다음 표는 QoS(Quality of Service) 클래스/정책의 통계와 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.CISCO-ENHANCED-MEMPOOL-MIB
다음 표는 메모리 사용량과 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.CISCO-ENTITY-FRU-CONTROL-MIB
다음 표는 모니터링되는 시스템의 현장 교체 장치와 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.CISCO-ENTITY-SENSOR-MIB
다음 표는 노드의 센서 엔티티와 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.CISCO-FLASH-MIB
다음 표는 시스템의 플래시 스토리지와 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름, 번호 및 해당 XPATH를 나타냅니다.CISCO-PROCESS-MIB
다음 표는 모델 기반 텔레메트리 센서 그룹 관련 CPU 사용량 및 프로세스에 대한 리소스 할당에 대해 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.ENTITY-MIB
다음 표는 시스템의 모델 기반 텔레메트리 센서 관련 물리적 엔티티에 대해 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.IF-MIB
다음 표는 인터페이스 특성 및 카운터와 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.IP-MIB
다음 표는 IP(인터넷 프로토콜) 통계 및 운영 값과 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.IPMIB – 공통
다음 표는 IP 통계와 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.LLDP-MIB
다음 표는 모니터링되는 노드의 LLDP(Link Layer Discovery Protocol) 운영 데이터와 관련된 모델 기반 텔레메트리 센서 그룹에 대해 설정할 OID 이름, 번호 및 해당 XPATH를 나타냅니다.MPLS-TE-STD-MIB
다음 표는 관리되는 디바이스의 MPLS(Multiprotocol Label Switching) Traffic Engineering 운영 값과 세계랭킹1위오피스타관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름, 번호 및 해당 XPATH를 나타냅니다.RFC2465-MIB
다음 표는 IPv6 전역 값과 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.SNMP-MIB
다음 표는 SNMP 에이전트 자체와 관련된 모델 기반 텔레메트리 센서 그룹에 대해 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다(사용 가능한 경우).TCP-MIB
다음 표는 TCP 관련 카운터와 관련된 모델 기반 텔레메트리 센서 그룹에 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.UDP-MIB
다음 표는 UDP 관련 카운터와 관련된 모델 기반 텔레메트리 센서 그룹에서 설정할 OID 이름 및 번호와 해당 XPATH를 나타냅니다.
SNMP 트랩은 관리되는 디바이스의 동적 이벤트에 의해 트리거되는 메시지입니다. 따라서 이러한 메시지는 앞에서 다룬 EDT의 개념과 유사하게 작동합니다.
컨피그레이션 측면에서는 MDT가 EDT에 대해 동일한 구조를 허용합니다. 이는 전화 접속 또는 전화 걸기 선택 또는 기능 측면에서 텔레메트리 컬렉터의 구현에 따라 달라집니다.
SNMPv2는 인증/권한 부여 메커니즘으로 커뮤니티만 사용합니다. 그러나 앞에서 SNMP 섹션에서 다룬 것처럼 SNMPv3에서는 인증을 위한 자격 증명과 정보 보호를 위한 AES 암호화 모델을 사용할 수 있습니다.
텔레메트리 접근 방식에서 IOS XR에서는 인증서를 기반으로 gRPC/TLS 기술을 사용하여 인증을 수행할 수 있습니다. 이러한 인증서는 중앙 신뢰 지점(예: CA 서버)과 함께 사용할 수 있습니다. 신뢰 관계를 구축하는 프로세스가 끝나면 모든 텔레메트리 메시지가 gRPC 세션 내에서 전송되며, 이는 TLS로 암호화되어 SNMPv3의 동일한 이점을 제공합니다.