Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

오프 디바이스 JET 애플리케이션 개발

개요

JET를 사용하여 오프 디바이스에서 실행되는 애플리케이션을 개발할 수 있습니다. 이를 통해 네트워크의 모든 디바이스에서 JET의 이점을 활용할 수 있습니다. 개발 용이성을 위해 선택한 언어로 장치 끄기 애플리케이션을 작성할 수 있습니다. 장치 끄기 애플리케이션을 개발하려면 다음을 수행합니다.

  1. IDL 파일을 다운로드하여 컴파일합니다.

  2. 선택한 언어를 사용하여 애플리케이션을 개발합니다.

  3. 애플리케이션을 패키지화합니다.

  4. 외부 서버에 애플리케이션 패키지를 구축하거나 JET VM에서 직접 애플리케이션을 실행합니다.

그림 1 은 오프 디바이스 애플리케이션 개발 워크플로우를 보여줍니다.

그림 1: 오프 디바이스 JET 애플리케이션 워크플로우 Off-Device JET Application Workflow

애플리케이션 개발 및 패키지

애플리케이션을 전환하기 전에 JET VM 설정 의 지침에 따라 JET VM을 설정하고 IDL 파일을 다운로드해야 합니다.

  1. 원하는 언어로 사용할 프로토 정의 파일을 컴파일합니다.

    이 예에서는 Python을 사용하고 있습니다. 관리, 인증 및 공통 기반 유형 API를 위해 파일을 컴파일합니다.

    지정된 각 API에 대해 Python 및 gRPC 모듈을 컴파일했습니다.

  2. 선택한 언어를 사용하여 애플리케이션을 개발합니다.

    C 또는 C++ 모듈에 의존하는 애플리케이션을 개발하거나 서명된 애플리케이션을 개발하는 경우 JET 애플리케이션 개발에 JET VM을 사용해야 합니다.

    참고:

    Junos OS 릴리스 21.1R1 및 Junos OS Evolved Release 22.3R1부터 Python 2.7은 더 이상 지원되지 않습니다. Python 3 대신 사용하십시오.

    클라이언트측 스텁이 생성되면 스텁을 사용하여 애플리케이션을 작성할 수 있습니다. gRPC 클라이언트 측 스텁 생성, 스텁을 사용하여 애플리케이션 작성 및 선택한 언어로 IDL 파일에서 코드를 생성하는 것에 대한 자세한 내용은 https://www.grpc.io/docs/ 참조하십시오.

  3. JSON을 사용하여 애플리케이션을 패키지화합니다. 자세한 내용은 패키지 JET 애플리케이션을 참조하십시오.

애플리케이션 구축 준비

외부 서버 또는 JET VM에서 직접 애플리케이션을 실행하십시오. 외부 서버에 애플리케이션을 구축하기 전에 Junos OS와 JET 상호 작용을 구성해야 합니다.

Junos OS와 JET 상호 작용 구성

오프 디바이스 애플리케이션을 실행하려면 Junos OS 또는 Junos OS Evolved에서 request-response 구성을 활성화해야 합니다. 요청 응답 서비스를 사용할 때 클라이언트 애플리케이션은 요청을 발행하고 Junos 서버의 응답을 동기적으로 대기합니다. 이 섹션을 사용하여 SSL(Secure Sockets Layer) 모드에서 실행되는 요청 응답 서비스에 대한 JET 서비스 프로세스(jsd)를 구성합니다. 이를 통해 보안을 강화하고 SSL 기반 API 연결을 지원합니다.

참고:

현재 JET는 인증서 교환을 위해 TLS(Transport Layer Security) 버전 1.2를 지원하고 여러 암호화 알고리즘을 지원하지만 상호 인증을 지원하지는 않습니다. 즉, 클라이언트는 서버를 인증할 수 있지만 서버는 SSL/TLS 인증서를 사용하여 클라이언트를 인증할 수 없습니다. 클라이언트 인증의 경우 인증 서비스 API의 LoginCheck() 절차를 사용합니다.

  1. 인증서 이름을 로컬로 추가 및 구성하여 jsd가 SSL을 사용할 수 있도록 합니다. 인증서는 RSA 인증서여야 합니다. ECDSA 및 DSA SSL 인증서는 지원되지 않습니다.

    이 방법은 xnm-ssl과 같은 Junos OS의 다른 SSL 기반 서비스와 동일합니다. 인증서 생성 중에 사용자가 지정한 인증서 이름 입력을 계속 추적합니다. 다음 섹션에서 Python 애플리케이션 예제의 옵션에 사용할 HOST_OVERRIDE 것입니다. 이 예에서는 인증서 이름이 입니다 router.

    참고:

    인증서가 동일한 식별자를 통해 업데이트되면 변경 사항이 jsd에 반영되지 않습니다. jsd 계층에서 새 식별자를 사용하여 인증서를 구성하거나 변경 사항을 반영하기 위해 jsd 재시작을 수행해야 합니다.

  2. SSL 인증서 .펨 파일을 Junos 장비에 복사합니다.

    예를 들어:

  3. Junos 디바이스의 키체인에 인증서를 로드합니다. 예를 들어, SSL 인증서의 로컬 이름이 다음과 같은 경우를 sslcert예로 들어 보겠습니다.

  4. 로드된 인증서에 대한 SSL 지원을 활성화합니다.

    예를 들어:

  5. (선택사항) SSL을 사용할 특정 IP 주소 또는 포트를 지정합니다. SSL은 해당 주소 또는 포트를 보안 채널로 만듭니다.

    주소를 0.0.0.0으로 설정하면 디바이스는 모든 포트에서 SSL을 사용합니다. 예를 들어, 모든 포트의 gRPC 단말 장치와 기본 TCP 포트 51051에서 SSL을 지원하려면 다음을 수행합니다.

  6. jsd에 연결할 수 있는 요청 응답에 대한 최대 동시 연결 수를 지정합니다. 개수가 높을수록 클라이언트의 성능에 미치는 영향이 높아질 수 있습니다.

    SSL 모드에서 실행되는 요청 응답 서비스에 대해 jsd를 구성했습니다. JET 오프 디바이스 애플리케이션을 구축할 준비가 되었습니다.

  7. 사용할 스크립트를 지정합니다.

    참고:

    Junos OS Release 21.1R1 및 Junos OS Evolved Release 22.3R1부터 Python 2.7은 더 이상 지원되지 않으며 set system scripts language python 명령문은 사용되지 않습니다. 대신 명령문을 set system scripts language python3 사용합니다.

예: Python JET 애플리케이션

이 예제를 사용하여 Python으로 작성된 오프 디바이스 JET 애플리케이션을 개발하십시오. gRPC에서 지원하는 다른 언어에도 동일한 지침을 따를 수 있습니다. 이 Python JET 애플리케이션은 XML 형식으로 명령을 get-system-uptime-information 실행합니다.

이 예 HOST_OVERRIDE 에서 옵션은 인증서 생성 중에 지정한 인증서 이름을 사용합니다. 애플리케이션 구축 준비를 참조하십시오.

참고:

주니퍼 네트웍스는 XML 개방 및 폐쇄 태그를 표시하기 위해 다음과 같은 두 가지 양식을 모두 지원합니다. <xml-tag/> <xml-tag></xml-tag>

Junos OS 릴리스 18.4R1 이상

Junos OS Release 18.4R1 이상에서 사용 중인 경우 이 섹션에 나와 있는 Python 애플리케이션 예제를 가이드로 사용합니다.

Python 3을 사용하여 애플리케이션을 작성하는 경우 스크립트의 예외 블록에 PASS 키워드를 포함하십시오.

Junos OS 릴리스 이전 18.4R1

18.4R1 이전에 Junos OS 릴리스를 사용하는 경우 이 섹션의 Python 애플리케이션 예제를 가이드로 사용합니다.