Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NETCONF 이벤트 알림

NETCONF 클라이언트는 NETCONF 세션에서 이벤트 알림을 구독하여 디바이스 운영 또는 관리 활동에 영향을 미칠 수 있는 이벤트에 대한 경고를 수신할 수 있습니다.

NETCONF 이벤트 알림 개요

Junos OS Evolved를 실행하는 특정 디바이스는 NETCONF 서버와 NETCONF 클라이언트 간의 비동기 이벤트 알림 서비스인 NETCONF 이벤트 알림을 지원합니다. 알림 서비스를 활성화한 후, NETCONF 서버는 이벤트가 발생할 때 알림을 구독하는 모든 NETCONF 클라이언트에 비동기적으로 이벤트 알림을 보냅니다. 클라이언트는 NETCONF 알림을 구독하여 디바이스 운영 또는 관리 활동에 영향을 미칠 수 있는 이벤트에 대한 경고를 수신할 수 있습니다.

NETCONF 서버는 다음 유형의 이벤트에 대한 알림을 보냅니다.

  • netconf-session-start- NETCONF 세션이 시작되는 시점을 나타내며, 세션을 시작한 사용자를 식별합니다.
  • netconf-session-end- NETCONF 세션이 종료되는 시점을 표시하며, 세션을 소유한 사용자와 세션이 종료된 이유를 식별합니다.
  • netconf-config-change- 관리 세션이 활성 구성에 대한 변경 사항을 커밋하는 시기를 나타내고 변경 사항에 대한 요약을 제공합니다.

지원되는 디바이스에서 NETCONF 이벤트 알림 서비스를 활성화할 수 있습니다. 지침은 NETCONF 이벤트 알림을 활성화하고 구독하는 방법을 참조하십시오. 인터리브 기능에 설명된 대로 NETCONF 클라이언트가 동일한 NETCONF 세션에서 알림을 구독하고 RPC를 전송할 수 있는 인터 리브 기능을 선택적으로 구성할 수 있습니다.

메모:

한 번에 하나의 알림 세트(NETCONF 알림 또는 텔레메트리 데이터)만 구성하고 스트리밍하는 것이 좋습니다. NETCONF 알림을 활성화하도록 디바이스를 구성하는 경우, 디바이스는 NETCONF 채널을 통해 모든 알림을 스트리밍하고 gRPC를 통해 텔레메트리 알림을 스트리밍하지 않습니다.

NETCONF 이벤트 알림을 활성화한 후, NETCONF 서버는 기능 교환에서 기능과 interleave 기능을 광고 notification 합니다.

특정 디바이스의 이벤트에 대한 알림 서비스를 구독하기 위해 NETCONF 클라이언트는 RPC를 <create-subscription> 디바이스의 NETCONF 서버로 전송하고 다음을 표시합니다.

  • <stream>- 관심 있는 이벤트의 흐름입니다.

    스트림은 일부 전달 기준과 일치하는 이벤트 알림 집합입니다. 구독은 구독 수명 동안 단일 스트림에 바인딩됩니다. 스트림은 NETCONF Junos 디바이스에서 지원되는 기본 스트림입니다. NETCONF 서버는 구독 요청이 다른 스트림에 대한 것인 경우 오류를 반환합니다. 이 매개 변수를 생략하면 디바이스는 구독 요청을 스트림에 대한 NETCONF 요청으로 처리합니다.

  • <filter>- 가능한 모든 이벤트의 서브셋을 선택하는 서브트리 필터.

    NETCONF 클라이언트가 필터를 지정하면, 서버는 필터에 의해 선택된 이벤트만 전달합니다. 클라이언트가 필터를 지정하지 않으면 서버는 모든 이벤트를 전달합니다. Junos OS Evolved는 최상위 필터만 지원하며 이 요소에 대한 XPATH 필터 사용은 지원하지 않습니다. 자세한 내용은 필터링 기능을 참조하십시오.

NETCONF 클라이언트가 이벤트 알림을 구독하면 NETCONF 서버는 알림이 발생할 때 이를 전송합니다. 알림은 NETCONF 세션이 종료될 때까지 계속됩니다.

메모:

NETCONF 클라이언트는 기본적으로 모든 이벤트 알림을 수신합니다. 사용자 권한에 따라 알림의 내용을 제한하거나 제한할 수 있는 방법은 없습니다. 이벤트와 netconf-config-change 같은 일부 이벤트에는 중요한 정보가 포함될 수 있으므로 해당 정보에 대한 읽기 액세스를 제어하는 것이 중요합니다.

NETCONF 이벤트 알림에 대한 추가 정보는 다음 RFC를 참조하십시오.

  • RFC 5277, NETCONF 이벤트 알림

  • RFC 6470, NETCONF(Network Configuration Protocol) 기본 알림

NETCONF 이벤트 알림 형식

NETCONF 이벤트 알림은 올바른 형식의 XML 문서입니다. NETCONF 서버는 내부 이벤트를 수신하면 최상위 <notification> 요소와 <eventTime> 하위 요소가 있는 적절한 XML 인코딩으로 변환합니다. 알림에 포함된 실제 콘텐츠는 이벤트에 따라 다릅니다.

구독 요청에는 특정 유형의 알림에 대한 필터가 포함될 수 있습니다. 구독 요청에 필터가 포함된 경우, 사용자 정의 필터가 이벤트 스트림의 각 알림에 적용되고 NETCONF 서버는 일치하는 이벤트만 클라이언트에 전달합니다.

다음 샘플 이벤트 알림에는 이벤트가 포함되어 있습니다 netconf-config-change . 알림은 이벤트 타임스탬프, 커밋 타임스탬프, 구성 변경 사항을 커밋한 사용자 및 해당 변경 사항에 대한 요약을 캡처합니다.

다음 알림에는 샘플 netconf-session-startnetconf-session-end 이벤트가 포함됩니다.

인터리브 기능

기본적으로 NETCONF 클라이언트가 NETCONF 세션에서 이벤트 알림을 구독한 후에는 클라이언트도 동일한 세션에서 RPC를 전송할 수 없습니다. 인터리브 기능을 통해 NETCONF 클라이언트 및 서버는 알림에 사용되는 동일한 NETCONF 세션 내에서 RPC와 RPC 응답을 계속 교환할 수 있습니다. 인터리브 기능은 알림을 위한 전용 NETCONF 세션이 필요하지 않기 때문에 전체 NETCONF 세션 수를 줄입니다. 이 기능을 지원하는 디바이스에서 인터리빙 기능을 사용하려면 계층 수준에서 문을 [edit system services netconf notification] 구성해야 interleave 합니다.

NETCONF 클라이언트는 NETCONF 세션 또는 NETCONF 세션의 기본 전송 세션(예: 또는 <kill-session> 작업)을 종료하여 구독을 <close-session> 종료합니다. 인터리브 기능을 활성화하면 클라이언트가 동일한 세션 내에서 작업을 실행하여 <close-session> 세션을 종료할 수 있습니다. 인터리브 기능을 활성화하지 않으면 클라이언트가 다른 세션에서 작업을 실행하는 <kill-session> 등의 방법으로 세션을 종료할 수 있습니다.

필터링 기능

NETCONF 클라이언트가 이벤트 알림을 구독하면 클라이언트가 스트림의 모든 이벤트 알림을 구독하거나 클라이언트가 이벤트 알림의 하위 집합을 구독할 수 있습니다. 이벤트 알림의 하위 집합을 구독하기 위해 클라이언트는 RPC에 <create-subscription> 선택적 <filter> 요소를 포함합니다. 구독 요청에 필터가 포함된 경우, 필터는 이벤트 스트림의 각 알림에 적용되고 NETCONF 서버는 일치하는 이벤트만 클라이언트에 전달합니다. 그렇지 않으면 서버는 모든 이벤트를 전달합니다.

<filter> 작업의 파라미터 형식은 <create-subscription> 다른 NETCONF 작업의 파라미터 형식과 filter 유사합니다. 원하는 이벤트 알림을 선택하는 하위 트리 필터를 포함합니다. 그러나 작업의 경우<create-subscription>, Junos 디바이스는 동봉된 알림의 최상위 요소와 일치하는 하위 트리 필터만 지원합니다(예<netconf-config-change>: ). 필터는 스트림의 알림에 적용되며 래퍼의 <notification> 콘텐츠에 대해서만 적용됩니다.

메모:

Junos 디바이스는 XPath를 사용하여 알림을 필터링하는 것을 지원하지 않습니다.

특정 알림을 필터링할 때는 태그에 적절한 네임스페이스를 포함해야 합니다. 네임스페이스를 지정하지 않으면 이벤트 알림이 필터와 일치하지 않아 NETCONF 서버가 알림을 전달하지 않습니다. 다음 예에서 구독 요청은 모든 NETCONF 이벤트 알림의 하위 집합을 반환합니다. 필터는 이벤트와 <oc-ifl-event> 이벤트만 <netconf-config-change> 선택하여 전달합니다.

NETCONF 이벤트 알림 활성화 및 구독 방법

NETCONF 클라이언트가 NETCONF 세션에서 이벤트 알림을 구독하려면 먼저 디바이스에서 NETCONF 이벤트 알림 서비스를 활성화해야 합니다. 서비스가 활성화된 후, NETCONF 클라이언트는 NETCONF 서버에 구독 요청을 전송하여 이벤트 알림을 수신하도록 구독합니다. NETCONF 서버 응답은 요청이 성공했는지 여부를 나타냅니다. 요청이 성공하면 서버는 이벤트가 발생할 때와 NETCONF 세션이 종료될 때까지 NETCONF 클라이언트에 비동기 이벤트 알림을 보냅니다.

이 예에는 다음과 같은 하드웨어 및 소프트웨어가 필요합니다.

  • NETCONF 이벤트 알림 서비스를 지원하는 Junos OS Evolved 릴리스 21.2R1 이상을 실행하는 디바이스. 지원되는 장치에 대한 기능 탐색기 를 참조하십시오.

NETCONF 이벤트 알림을 활성화하고 구독하려면 다음 작업을 수행하십시오.

NETCONF 이벤트 알림 서비스 활성화

클라이언트가 NETCONF 세션에서 이벤트 알림을 구독할 수 있도록 하는 방법:

  1. 문을 구성하여 NETCONF 이벤트 알림 서비스를 활성화합니다 notification .
  2. (선택 사항) NETCONF 클라이언트가 알림을 구독하는 NETCONF 세션에서 RPC를 실행할 수 있도록 옵션을 구성합니다 interleave .
  3. 디바이스가 rfc-compliant NETCONF RFC 4741을 준수하도록 명령문을 구성합니다.
  4. (옵션) 문제 해결을 위한 NETCONF 추적 옵션을 구성합니다.

    예를 들어:

  5. 장치에서 실행 중인 응용 프로그램의 기본 포트에서 Notification Services를 사용하도록 설정합니다.

    문이 필요한 allow-clients 릴리스에서는 알림을 구독할 수 있는 클라이언트(호스트 이름 또는 IP 주소)도 지정해야 합니다.

    예를 들어:

  6. 구성을 커밋합니다.

Subscribe to Receive Event Notifications(이벤트 알림 수신을 구독합니다)

디바이스에서 NETCONF 이벤트 알림 서비스를 활성화한 후, NETCONF 클라이언트는 NETCONF 세션에서 이벤트 알림을 수신하도록 구독할 수 있습니다. NETCONF 클라이언트는 구독 요청에 다음과 같은 선택적 매개 변수를 포함할 수 있습니다.

  • <stream>—관심 있는 사건의 흐름. 기본값이자 유일하게 허용되는 값은 NETCONF입니다.

  • <filter>- 가능한 모든 이벤트의 서브셋을 선택하는 서브트리 필터입니다.

NETCONF 세션에서 이벤트 알림 구독하기:

  1. NETCONF 세션을 시작합니다.
  2. 알림 기능이 기능 교환에서 보급되는지 확인하여 디바이스에서 NETCONF 이벤트 알림 서비스가 활성화되었는지 확인합니다.
  3. create-subscription 요청을 발행하고 필요에 따라 스트림을 NETCONF 지정합니다.
    • 모든 알림을 구독하려면 매개 변수를 생략합니다 <filter> .

    • 알림의 하위 집합을 구독하려면 요소를 포함하고 관심 있는 알림에 <filter type="subtree"> 대한 하나 이상의 하위 트리 필터를 정의합니다. Junos 디바이스는 동봉된 알림의 최상위 요소와 일치하는 하위 트리 필터만 지원합니다. 특정 알림에 대한 태그에 적절한 네임스페이스를 포함해야 합니다.

      예를 들어:

  4. 구독 요청이 성공했는지 확인합니다.

    NETCONF 서버는 요청이 성공하면 반환하고, <rpc-error> 구독 요청을 완료할 수 없는 경우 요소를 반환합니다<ok/>.

    구독 요청이 성공하면 NETCONF 서버는 연결을 통해 비동기적으로 이벤트 알림을 보내기 시작합니다.

  5. 인터리브 기능이 활성화된 경우, NETCONF 클라이언트는 동일한 세션 내에서 RPC를 계속 전송할 수 있습니다.

서브스크립션 해지

NETCONF 클라이언트는 NETCONF 세션 또는 NETCONF 세션의 기본 전송 세션을 종료하여 이벤트 알림을 수신하기 위한 구독을 종료합니다.

NETCONF 세션 및 구독을 종료하려면 다음 작업 중 하나를 수행합니다.
  • 인터리브 기능이 활성화된 경우 NETCONF 세션에서 작업을 실행합니다 <close-session/> .

  • <kill-session> 외부 NETCONF 세션에서 작업을 실행하고 종료할 NETCONF 세션의 세션 ID를 지정합니다(초기 <hello> 교환 요소에 정의 <session-id> 됨).

  • NETCONF 세션의 기본 전송 세션을 종료합니다.