Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS를 실행하는 디바이스를 위해 YANG에서 사용자 지정 RPC 생성

주니퍼 네트웍스는 Junos OS 운영 명령에 대한 원격 절차 호출(RPC)을 정의하는 YANG 모듈을 제공합니다. Junos OS 릴리스 16.1R3부터는 Junos OS를 실행하는 지원 디바이스에 대한 사용자 지정 RPC를 정의하는 YANG 데이터 모델을 생성할 수도 있습니다. 사용자 지정 RPC를 생성하면 입력 파라미터 및 작업을 정밀하게 정의할 수 있으며, 해당 디바이스에서 특정 운영 작업에 대한 출력 필드와 형식을 지정할 수 있습니다. 사용자 지정 YANG RPC로 운영 명령 계층을 확장할 때 RPC의 처리기 역할을 하는 작업 스크립트도 제공해야 합니다. RPC 정의는 RPC를 실행할 때 호출되는 작업 스크립트를 참조합니다.

이 주제에서는 Junos OS를 실행하는 디바이스에 대한 사용자 지정 RPC를 정의하는 YANG 모듈을 생성하는 일반적인 단계를 간략하게 설명합니다. RPC 작업 스크립트 생성 및 RPC의 CLI 출력 사용자 지정에 대한 자세한 내용은 Junos 디바이스의 YANG RPC에 대한 작업 스크립트 생성RPC 출력 형식 지정을 위한 Junos OS YANG 확장 이해를 참조하십시오.

이 섹션에서는 Junos OS를 실행하는 디바이스에 대한 RPC를 정의하는 YANG 모듈에 대한 일반적인 템플릿을 제공합니다. 템플릿 다음에는 템플릿의 다양한 섹션과 문에 대한 자세한 설명이 나옵니다.

RPC는 모듈 내에서 정의됩니다. 모듈 이름은 설명적이어야 하며 해당 모듈에 포함된 RPC의 범용을 나타내야 하며 모듈 네임스페이스는 고유해야 합니다.

참고:

RFC 6020, YANG - NETCONF(Network Configuration Protocol)를 위한 데이터 모델링 언어에 따라 모듈이 상주하는 파일의 모듈 이름과 기본 이름이 동일해야 합니다. 예를 들어 모듈 이름이 get-if-info인 경우 모듈의 파일 이름은 get-if-info.yang이어야 합니다.

모듈은 Junos OS DDL 확장 모듈을 가져오고 접두사를 정의해야 합니다. 확장 모듈에는 Junos OS를 실행하는 디바이스에서 실행되는 RPC 정의에 필요한 YANG 확장이 포함되어 있습니다.

참고:

Junos OS 릴리스 17.4R1부터 Junos OS YANG 모듈은 모듈 이름, 파일 이름 및 네임스페이스에 대한 새로운 명명 규칙을 사용합니다.

모듈의 RPC 중 하나가 포맷된 ASCII 출력을 렌더링하는 경우, 모듈은 Junos OS ODL 확장 모듈을 가져오고 접두사를 정의해야 합니다. ODL 확장 모듈은 CLI에서 해당 RPC에 대한 작동 명령을 실행하거나 텍스트 형식으로 RPC 출력을 요청할 때 출력을 렌더링하는 방법을 정확하게 지정하는 데 사용하는 YANG 확장을 정의합니다.

모듈을 담당하는 조직과 모듈에 대한 설명을 포함합니다.

모듈 내에서 각각 고유한 이름을 가진 하나 이상의 RPC를 정의할 수 있습니다. RPC 이름은 RPC를 원격으로 실행하는 데 사용되므로 RPC의 용도를 명확하게 나타내야 합니다. RPC 목적은 명령문에서 description 더 명확히 할 수 있습니다. RPC에 대한 CLI 명령도 정의하는 경우 CLI는 해당 명령 목록에 대한 상황에 맞는 도움말에 RPC 설명을 표시합니다.

RPC 정의 내에서 Junos OS DDL 확장 문인 , action-executescript 문을 정의합니다command. 명령문은 command Junos OS CLI에서 RPC를 실행하는 데 사용하는 운영 명령을 정의합니다. RPC를 원격으로 실행하려면 요청 태그에 RPC 이름을 사용합니다.

문과 script 하위 문은 action-execute 모든 RPC에 대해 정의되어야 합니다. 하위 문은 script RPC를 실행할 때 호출되는 작업 스크립트의 이름을 정의합니다. 각 RPC에 대해 하나의 작업 스크립트만 정의해야 합니다.

참고:

Junos OS 릴리스 17.3부터 문은 action-execute 의 하위 문 command입니다. 이전 릴리스 action-execute 에서는 및 command 문이 동일한 수준에 배치되고 문은 command 선택 사항입니다.

  • Junos OS 릴리스 17.3 이상에서 명령문과 하위 명령문을 정의합니다 command .

  • Junos OS 릴리스 17.2 및 이전 버전에서는 및 script 문을 정의 action-execute 하고, 선택적으로 문을 정의합니다command.

참고:

또는 request system yang update 명령을 실행하여 request system yang add YANG 모듈 및 작업 스크립트를 신규 또는 기존 YANG 패키지의 일부로 디바이스에 추가해야 합니다. 따라서 명령문에 대한 조치 스크립트의 경로가 아닌 이름만 제공하면 됩니다junos:script.

참고:

작업 스크립트가 Python으로 작성된 경우 스크립트가 실행될 각 디바이스의 계층 수준에서 또는 language python3 문을 [edit system scripts] 구성 language python 하여 디바이스가 서명되지 않은 Python 스크립트를 실행할 수 있도록 해야 합니다.

RPC 작업에 대한 입력 매개 변수는 선택적 input 문 내에 정의됩니다. RPC를 실행하면 Junos OS는 RPC의 작업 스크립트를 호출하고 모든 입력 매개 변수를 스크립트에 전달합니다.

참고:

Junos OS 릴리스 19.2R1부터 사용자 지정 YANG RPC는 Junos OS CLI에서 RPC 명령을 실행할 때 유형의 empty 입력 매개 변수를 지원합니다. 이전 릴리스에서 유형의 empty 입력 매개 변수는 NETCONF 또는 Junos XML 프로토콜 세션에서 RPC를 실행할 때만 지원됩니다.

선택적 output 문은 출력 매개 변수를 RPC 작업에 동봉합니다. 문에는 하나의 최상위 루트 컨테이너가 output 포함될 수 있습니다. 루트 컨테이너의 이름과 RPC 이름을 상호 연결하는 것이 좋습니다. 예를 들어 RPC 이름이 get-xyz-information인 경우 컨테이너 이름은 xyz-information. 문에 대한 하위 문은 output output RPC의 노드 아래에 있는 노드를 정의합니다. XML 출력에서 이는 요소 아래의 XML 요소로 변환됩니다 <rpc-reply> .

루트 컨테이너 내에서 및 container 문을 포함할 leaf 수 있습니다. 리프 문은 해당 컨테이너의 RPC 출력에 포함된 데이터를 설명합니다.

기본적으로 RPC 출력 형식은 XML입니다. 또한 CLI에서 해당 RPC에 대한 운영 명령을 실행하거나 텍스트 형식으로 RPC 출력을 요청할 때 표시되는 형식화된 ASCII 출력을 정의할 수 있습니다.

참고:

Junos OS 릴리스 17.3부터 사용자 지정 RPC에 대한 CLI 형식은 확장 문 내에 junos-odl:format 정의됩니다. 이전 릴리스에서는 CLI 형식이 명령문을 포함하는 junos-odl:cli-format 컨테이너를 사용하여 정의됩니다.

  • Junos OS 릴리스 17.3부터는 Junos OS ODL 확장 문인 문을 정의 junos-odl:format 하여 CLI 형식을 정의합니다.

  • Junos OS 릴리스 17.3 이전에는 명령문을 포함하는 junos-odl:cli-format 하위 컨테이너 내에서 지정된 컨테이너에 대한 CLI 형식을 정의합니다.

CLI 형식을 정의하는 문 또는 컨테이너 내에서 Junos OS ODL 확장 모듈에 정의된 문을 사용하여 RPC의 CLI 출력을 사용자 지정할 수 있습니다. 형식화된 ASCII 출력 렌더링에 대한 자세한 내용은 Junos OS를 실행하는 디바이스에서 YANG RPC 출력 사용자 지정을 참조하십시오. 또한 특정 컨테이너의 데이터가 RPC의 CLI 출력에서 내보내지는 시기를 규정할 수도 있습니다. 동일한 RPC에 대해 서로 다른 수준의 출력을 구성하는 방법에 대한 자세한 내용은 Junos 디바이스용 사용자 지정 YANG RPC에서 서로 다른 수준의 출력 정의를 참조하십시오.

Junos OS를 실행하는 디바이스에서 RPC를 사용하려면 다음을 수행합니다.

  • 장치에 모듈 및 작업 스크립트 다운로드Download the module and action script to the device
  • 또는 request system yang update 운영 명령을 실행하여 request system yang add 신규 또는 기존 YANG 패키지에 파일을 추가합니다
  • RPC 실행
    • CLI에서 RPC를 실행하려면 문에서 정의한 junos:command 명령을 실행합니다.
    • RPC를 원격으로 실행하려면 RPC 요청 작업에서 RPC 이름을 사용합니다.
참고:

Junos OS 릴리스 17.3R1부터는 사용자 지정 YANG 데이터 모델을 디바이스에 로드할 때 필요한 Junos OS 확장 모듈을 명시적으로 로드할 필요가 없습니다. 이전 릴리스에서는 모듈을 사용하는 모든 패키지에 대해 Junos OS 확장 모듈을 로드해야 합니다.

문에 의해 정의된 명령을 실행하여 CLI에서 RPC를 실행하면 디바이스는 RPC에 junos:command 의해 정의된 CLI 형식으로 RPC 출력을 표시합니다. RPC가 CLI 형식을 정의하지 않는 경우, 기본적으로 CLI에서 해당 RPC에 대한 출력이 표시되지 않습니다. 그러나 명령에 필터를 추가하여 | display xml CLI에서 해당 RPC에 대한 XML 출력을 계속 표시할 수 있습니다.

YANG RPC에 대한 자세한 내용은 RFC 6020, YANG - NETCONF(Network Configuration Protocol)를 위한 데이터 모델링 언어 및 관련 RFC를 참조하십시오.

릴리스 기록 테이블
릴리스
설명
19.2R1
Junos OS 릴리스 19.2R1부터 사용자 지정 YANG RPC는 Junos OS CLI에서 RPC 명령을 실행할 때 유형의 empty 입력 매개 변수를 지원합니다.
17.3R1
Junos OS 릴리스 17.3부터 문은 action-execute 의 하위 문 command입니다.
17.3R1
Junos OS 릴리스 17.3부터 사용자 지정 RPC에 대한 CLI 형식은 확장 문 내에 junos-odl:format 정의됩니다.
17.3R1
Junos OS 릴리스 17.3R1부터는 사용자 지정 YANG 데이터 모델을 디바이스에 로드할 때 필요한 Junos OS 확장 모듈을 명시적으로 로드할 필요가 없습니다.