Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

gNMI를 통한 텔레메트리 데이터 구독에 대한 지침

이 섹션에서는 gNMI 연결에서 지원하는 구독 모드에 대해 설명합니다.

gNMI 프로토콜은 텔레메트리 데이터를 구독하기 위한 RPC를 정의합니다 Subscribe . 텔레메트리 수집기는 이 RPC를 사용하여 네트워크 디바이스에서 상태 및 구성 데이터에 대한 업데이트를 요청합니다.

새 구독에 대한 요청은 하나 이상의 리소스 경로를 포함하는 메시지 내에 SubscribeRequest 캡슐화됩니다. 가입된 경로는 대상 네트워크 디바이스의 특정 데이터 인스턴스와 관련됩니다. 요청에는 OpenConfig 또는 네이티브 Junos® OS 스키마를 기반으로 하는 경로가 포함될 수 있습니다.

구독 요청에는 다음 모드 중 하나가 포함되어야 합니다.

  • ONCE - 데이터에 대한 일회성 요청.

  • POLL - 주기적인 온디맨드 데이터 검색용.

  • STREAM - 지정된 트리거에 따라 데이터를 스트리밍하는 장기 구독입니다.

모드의 STREAM 구독은 다음 하위 모드 중 하나를 지정해야 합니다.

  • ON_CHANGE - 데이터 업데이트는 데이터 항목의 값이 변경되는 경우에만 전송됩니다.

  • SAMPLE - 데이터 업데이트는 구독 요청에 지정된 간격 기간을 기준으로 샘플 간격마다 한 번씩 전송됩니다. 기본 샘플 간격은 30초입니다.

  • TARGET_DEFINED - 구독 요청을 수신하는 네트워크 디바이스는 리프별로 데이터에 가장 적합한 전송 유형을 결정합니다. 메시지 내에 지정된 경로가 이벤트 구동 데이터를 참조하는 경우 구독이 ON_CHANGE 생성될 수 있습니다. 카운터 값을 나타내는 데이터의 경우 구독을 SAMPLE 만들 수 있습니다.

    메모:

    구성 경로에 대한 구독 요청은 TARGET_DEFINED 요청으로만 처리 ON_CHANGE 됩니다.

ON_CHANGE SAMPLE 구독의 경우ONCE, 수집기는 구독 경로의 현재 상태가 포함된 초기 업데이트를 요청할 수 있습니다. 초기 동기화 업데이트는 다음과 같은 이유로 중요합니다.

  • 집진기는 해당 센서 경로에 대한 장치의 모든 필드의 현재 상태를 완전히 볼 수 있습니다.

  • 이벤트 기반 데이터(ON_CHANGE)는 다음 데이터가 발생하기 전에 수집기에 의해 한 번 이상 수신되어 수집기가 데이터 상태를 미리 인식하도록 합니다.

  • 제로 억제 기능으로 인해 일반적으로 스트리밍된 데이터에 표시되지 않는 제로 카운터 값을 포함하는 패킷 포워딩 엔진 센서도 전송됩니다. 이렇게 하면 각 라인 카드의 모든 필드를 컬렉터가 알 수 있습니다.

대상 장치는 메시지로 구독 요청에 응답합니다SubscribeResponse. 구독 요청이 초기 동기화를 요청하는 경우 대상은 데이터를 보낸 다음 플래그가 로 true설정된 응답 메시지를 sync_response 보냅니다. 초기 동기화 후 대상 장치는 구독 모드에 따라 경로에 대한 업데이트를 진행합니다.

메시지에는 라는 플래그가 SubscribeRequest 포함되어 있습니다 updates_only. 이 플래그를 로 true설정하면 대상 장치는 초기 동기화를 전송하지 않고 다음과 같이 후속 업데이트만 전송합니다.

  • 모드의 SAMPLE 구독의 경우 STREAM 업데이트는 다음 샘플 간격으로 전송됩니다.

  • 모드의 ON_CHANGE 구독의 경우 STREAM 다음 값 변경 시 업데이트가 전송됩니다.

  • 구독의 경우ONCE, SubscribeResponse 만 로 설정된 false상태로 sync_response 전송되고 구독이 닫힙니다.

  • TARGET_DEFINED 구독은 구성 경로로 ON_CHANGE 처리되며 다음 값 변경 시 업데이트가 전송됩니다.

및 메시지의 SubscribeRequest 내용은 gnmi.proto 파일에 정의되어 있습니다.SubscribeResponse 구독 RPC 및 구독 모드에 대한 자세한 내용은 gNMI 사양: 텔레메트리 업데이트 구독에서 gNMI 사양을 참조하십시오.

메모:

구성 경로에는 다음과 같은 제약이 있습니다.

  • POLL 구독은 지원되지 않습니다.

  • 접두사 경로는 업데이트 메시지에 포함되지 않습니다.

  • gNMI 응답은 , , , comment/annotate및 와 같은 active/inactive주니퍼 특정 메타데이터 작업에 대해 지원되지 않습니다protect/unprotect. insert before/after 이는 메시지에 나타날 수 있지만 유효하지 않습니다.

  • 에서 지원되지 않는 매개 변수에는 SubscribeRequest , heartbeat_level, , allow_aggregationqos이 포함됩니다suppress_redundant.

  • PROTO 인코딩은 유일하게 지원되는 인코딩입니다.

  • 메시지의 SubscribeRequest 확장은 지원되지 않습니다

  • 구독 경로 필터링은 키 수준에서만 지원됩니다.

  • 다음 커밋 변형은 및 TARGET_DEFINED 구독에 대해 ON_CHANGE 지원되지 않습니다.

    commit at, commit prepare/activate일괄 커밋 등이 포함됩니다.
  • 커밋은 에서 지원되지 않습니다.

    edit dynamic 모드를 edit private 편집하거나 구성합니다.
  • 현재 상태 컨테이너에 대한 업데이트 메시지는 전송되지 않습니다.

  • 식별자 또는 키에 대해 구성된 리프가 하나만 있는 구독 목록은 업데이트 메시지를 생성하지 않을 수 있습니다.

gNMI를 통한 "ON CHANGE" 센서 지원 활성화

Junos OS 릴리스 16.1부터 주니퍼 장비에서 외부 컬렉터로 텔레메트리 데이터를 내보낼 수 있는 OpenConfig 운영 상태 및 카운터의 주기적인 스트리밍이 제공됩니다. 필요한 모든 정보를 수집하고 기준 "스냅샷"을 만드는 데는 유용하지만 주기적 스트리밍은 시간이 중요한 임무에는 덜 유용합니다. 작동 상태가 변경될 때만 정보를 수신하도록 외부 수집기에 대한 ON_CHANGE 스트리밍을 구성합니다.

ON_CHANGE 스트리밍을 지원하기 위해 네트워크 요소에서 구성을 수정하고 검색하기 위해 gRPC gNMI(Network Management Interface)라는 새로운 사양이 구현됩니다. 또한 gNMI 사양을 사용하여 네트워크 요소에서 데이터 수집 시스템으로의 텔레메트리 스트림을 생성하고 제어할 수 있습니다. 새 gNMI 사양을 사용하면 하나의 gRPC 서비스 정의가 구성 및 원격 분석을 위해 네트워크 요소에서 단일 구현을 제공할 수 있습니다. 또한 네트워크 관리 시스템(NMS)이 통합 텔레메트리 및 구성 RPC를 통해 디바이스와 상호 작용할 수 있습니다.

Junos 파일 패키지(junos-telemetry-interface)에는 gNMI 지원을 위한 gnmi.proto 파일 및 GnmiJuniperTelemetryHeader.proto 주니퍼 확장이 포함되어 있습니다.

이 기능을 지원하는 RPC에 대한 정보는 gNMI Proto 파일 버전 0.4.0(지원되는 버전) 및 릴리스된 사양에 있습니다

gNMI 서비스의 텔레메트리 RPC subscribe 는 ON_CHANGE 스트리밍을 지원합니다. RPC subscribe 를 사용하면 클라이언트가 데이터 트리 내의 특정 경로에 대한 값을 보내도록 대상에 요청할 수 있습니다. 값은 스트리밍되거나(STREAM), 수명이 긴 채널에서 일회성으로 전송되거나(POLL), 검색으로 일회성으로 전송되는(ONCE) 수 있습니다.

샘플 빈도가 0인 최상위 컨테이너를 구독하는 경우, ON_CHANGE 지원이 있는 리프는 이벤트를 기반으로 스트리밍됩니다. 다른 리프는 스트리밍되지 않습니다.

메모:

디바이스가 ON_CHANGE로 스트리밍되는 노드 또는 SAMPLE인 노드를 결정하게 하려면 수집기가 sample_interval로 TARGET_DEFINED 구독해야 합니다.

gNMI를 통해 "TARGET_DEFINED" 구독 모드 활성화

Junos OS 릴리스 20.2R1은 MX5, MX10, MX40, MX80, MX104, MX150, MX204, MX240, MX480, MX960, MX2008, MX2010, MX2020, MX10003, MX10008 및 MX10016 라우터에서 gRPC gNMI(Network Management Interface) 서비스를 통한 TARGET_DEFINED 구독 모드에 대한 지원을 추가합니다.

gNMI 구독을 사용하는 외부 컬렉터는 센서 데이터가 전달되는 방법을 결정합니다.

  • STREAMING 모드는 지정된 간격으로 DUT에서 센서 데이터를 주기적으로 스트리밍합니다.

  • ON_CHANGE 모드는 데이터 값이 변경될 때만 DUT에서 센서 데이터에 대한 업데이트를 보냅니다.

  • 새로 지원되는 TARGET_DEFINED 모드(하위 모드 0)는 DUT에 관련 모드(STREAMING 또는 ON_CHANGE)를 선택하여 센서 데이터의 각 요소(리프)를 외부 수집기에 전달하도록 지시합니다. 외부 콜렉터가 서브모드가 0인 센서에 대한 구독을 DUT로 보내면 DUT가 응답하여 센서 구독을 활성화하여 주기적 스트리밍에 ON_CHANGE 업데이트가 포함되지 않도록 합니다. DUT는 적격한 ON_CHANGE 이벤트가 발생할 때마다 수집기에 알립니다.

구독은 수집기가 구독 요청에서 달리 지정하지 않는 한 기본적으로 30초의 주기적 스트리밍 빈도로 설정됩니다.

아래 JSON(JavaScript Object Notation) 파일은 샘플 gNMI 구독을 보여줍니다. TARGET_DEFINED 모드는 리소스(센서) 경로 /interfaces/interface[name='lo0']/state에 대해 을(를) 사용하여 submode=0 설정됩니다.

Junos 파일 패키지(junos-telemetry-interface)에는 gNMI 지원을 위한 gnmi.proto 파일 및 GnmiJuniperTelemetryHeader.proto 주니퍼 확장이 포함되어 있습니다.

자세한 내용은 여기에서 gNMI 사양 및 gNMI 프로토콜 파일을 참조하십시오.

gNMI를 통해 "INITIAL_SYNC" 구독 모드 활성화

Junos OS 릴리스 20.2R1부터 gNMI 서비스를 사용하는 패킷 포워딩 엔진 센서의 INITIAL_SYNC 통계를 지원할 수 있습니다. 이 기능은 MX960, MX2008, MX2010, MX2020, PTX1000 및 PTX5000 라우터에 적용됩니다. 라우터의 주니퍼 네트웍스® PTX10000 라인, 주니퍼 네트웍스® QFX5100 스위치 및 주니퍼 네트웍스® QFX5200 스위치도 이러한 지원을 제공합니다.

Junos OS Evolved 릴리스 20.4R1부터 gNMI 서비스를 사용하는 패킷 포워딩 엔진 센서의 INITIAL_SYNC 통계를 지원할 수 있습니다. ® 주니퍼 네트웍스 QFX5130-32CD 스위치에는 이 지원 기능이 포함되어 있습니다.

외부 수집기가 INITIAL_SYNC(gnmi-submode 2)가 있는 센서에 대한 구독 요청을 보내면 호스트는 해당 리소스 경로 아래의 지원되는 모든 대상 리프(필드)를 현재 값이 있는 수집기로 한 번 이상 보냅니다. 이러한 통계를 수집하면 다음과 같은 이유로 유용합니다.

  • 집진기는 해당 센서 경로에 대한 장치의 모든 필드의 현재 상태를 완전히 볼 수 있습니다.

  • 이벤트 기반 데이터(ON_CHANGE)는 다음 이벤트가 발생하기 전에 적어도 한 번 수집기에 도착합니다. 이 접근 방식을 사용하면 수집기가 다음 이벤트가 발생하기 전에 데이터 상태를 인식할 수 있습니다.

  • 일반적으로 스트리밍된 데이터에 나타나지 않는 0 카운터 값(0 억제)을 가진 패킷 포워딩 엔진 센서는 한 번 이상 전송됩니다. 이 접근 방식을 통해 컬렉터는 소스라고 하는 각 라인 카드의 모든 필드를 볼 수 있습니다.

INITIAL_SYNC 하위 모드에서는 디바이스가 수집기에 하나 이상의 복사본을 보내야 하지만 둘 이상을 보내는 것은 허용됩니다.

구독은 구독 요청에서 수집기가 달리 지정하지 않는 한 30초의 주기적 스트리밍 빈도로 기본 설정됩니다.

아래 JSON(JavaScript Object Notation) 파일은 샘플 gNMI 구독을 보여줍니다. INITIAL_SYNC 모드는 리소스(센서) 경로 /interfaces/에 대해 을(를) 사용하여 gnmi_submode 2 설정됩니다. 은gnmi_mode(는) 으로 0설정됩니다. 프로토콜 인코딩은 GBP에 대해 로 2 설정됩니다.

Junos 파일 패키지(junos-telemetry-interface)에는 gNMI 지원을 위한 gnmi.proto 파일 및 GnmiJuniperTelemetryHeader.proto 주니퍼 확장이 포함되어 있습니다.

자세한 내용은 여기에서 gNMI 사양 및 gNMI 프로토콜 파일을 참조하십시오.

gNMI 텔레메트리 사양 gNMI 프로토콜 정의

예제

다음 예는 protobuf 형식의 gNMI 클라이언트 및 대상 디바이스에서 수행한 구독 요청 및 응답을 보여줍니다.

예: ONCE 모드

다음 예는 protobuf 형식으로 gNMI 클라이언트에서 전송된 구독 요청을 보여줍니다. 서브스크립션 모드는 이고 ONCE OpenConfig 리소스 경로는 /system/aaa/authentication/users입니다.

대상은 일회성 업데이트로 응답합니다.

예: ON_CHANGE

다음 예제에서는 하위 모드를 사용하는 ON_CHANGE 모드의 STREAM 구독 요청을 보여 줍니다. OpenConfig 리소스 경로는 /system/aaa/authentication/users/user[username="test1"]입니다.

서브스크립션 요청 시 OpenConfig 구성은 다음과 같습니다.

예제 응답 메시지는 구성 경로에 대한 값과 로 설정된 플래그를 sync_response 보여줍니다.true

가입된 경로에 대해 다음과 같은 구성 변경이 이루어집니다.

  • 에 대한 test1사용자 이름을 추가합니다.

  • 에 대한 test1암호를 삭제합니다.

대상 장치는 이에 대한 응답으로 다음 업데이트를 보냅니다.

예: SAMPLE

다음 예제에서는 모드 및 SAMPLE 하위 모드의 STREAM 구독 요청을 보여 줍니다. OpenConfig 리소스 경로는 /system/aaa/authentication/users/user[username="test1"]입니다.

서브스크립션 요청 시 OpenConfig 구성은 다음과 같습니다.

예제 응답 메시지는 플래그가 로 true 설정된 상태로 sync_response 전송된 초기 업데이트와 5초 간격으로 전송된 후속 업데이트를 보여줍니다.