Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NETCONF Java 툴킷을 사용하여 운영 작업 수행

디바이스 객체 메서드를 사용하여 RPC 및 운영 명령 실행

NETCONF Java 툴킷 Device 객체에는 원격 디바이스에서 정보를 요청하고 운영 작업을 수행하는 메서드가 있습니다. 적절한 경우 메서드는 다양한 형식을 사용하도록 오버로드됩니다.

RPC 실행

RPC(원격 프로시저 호출)를 실행하려면 개체에서 Device 메서드를 호출합니다executeRPC(). 메서드는 executeRPC() 개체, net.juniper.netconf.XML 개체 또는 org.w3c.dom.Document 개체를 인수로 받아들이 String 도록 오버로드됩니다. RPC는 NETCONF 서버에 의해 처리되며, RPC 응답을 XML 객체로 반환합니다.

메서드 구문은 다음과 같습니다.

다음 코드 조각은 문자열 인수를 사용하여 Junos XML API get-chassis-inventory RPC를 실행합니다. RPC는 get-chassis-inventory Junos OS 명령줄 인터페이스(CLI)의 운영 모드 명령과 동일합니다 show chassis hardware .

운영 모드 명령 실행

운영 모드 명령을 실행하여 Junos OS를 실행하는 디바이스에서 정보를 요청하거나 운영 작업을 수행하려면 객체에서 Device 메서드를 호출 runCliCommand() 하십시오. 이 runCliCommand() 방법은 Junos OS 운영 모드 명령을 원격 디바이스의 NETCONF 서버로 보냅니다. 인수는 Junos OS CLI에 입력하는 운영 모드 명령을 나타내는 문자열입니다. RPC는 RPC 응답을 반환하는 NETCONF 서버에 의해 처리됩니다. Junos OS 릴리스 11.4부터 반환 문자열은 Junos OS CLI에서 볼 수 있는 것과 동일한 ASCII 형식의 출력입니다. 이전 버전의 Junos OS를 실행하는 디바이스의 경우 반환 문자열에 Junos XML 태그 요소가 포함됩니다.

메서드 구문은 다음과 같습니다.

다음 코드 조각은 CLI 운영 모드 명령을 show chassis hardware Junos OS를 실행하는 디바이스의 NETCONF 서버로 보냅니다.

예: 운영 요청 RPC 실행을 위한 NETCONF Java 애플리케이션

이 NETCONF Java 툴킷 프로그램은 RPC를 실행하여 디바이스에서 운영 정보를 얻은 다음 표준 출력으로 인쇄합니다. 이 예제는 기본 NETCONF Java 툴킷 프로그램을 생성하고 실행하기 위한 지침 예제로 사용됩니다.

요구 사항

  • NETCONF Java 툴킷은 구성 관리 서버에 설치됩니다.

  • 클라이언트 애플리케이션은 NETCONF 서버가 상주하는 디바이스에 로그인할 수 있습니다.

  • SSH를 통한 NETCONF 서비스는 NETCONF 서버가 상주하는 디바이스에서 활성화됩니다.

개요

NETCONF Java 툴킷을 사용하여 원격 디바이스에서 운영 정보를 요청할 수 있습니다. 다음 예제에서는 Junos OS를 실행하는 디바이스에서 Junos XML API의 운영 요청을 실행하기 위해 NETCONF Java 툴킷 프로그램을 생성하는 방법을 보여줍니다. 이 예제에서는 코드를 컴파일하고, 프로그램을 실행하고, 결과를 확인하는 방법도 설명합니다.

구성

Java 프로그램 만들기

단계별 절차

운영 요청에 대한 코드가 포함된 Java 프로그램 파일을 구성하려면 다음을 수행하십시오.

  1. 파일에 설명이 포함된 이름을 지정합니다.

    파일 이름은 클래스 이름과 동일해야 합니다. 이 예제에서 파일 및 클래스의 이름은 GetChassisInventory입니다.

  2. 적절한 import 문과 클래스 선언 및 Java 메소드 main()에 대한 코드를 포함합니다.

  3. 에서 main()개체를 만들고 Device 메서드를 호출합니다 connect() .

    이렇게 하면 NETCONF 서버와 SSHv2를 통해 기본 NETCONF 세션이 생성됩니다. 특정 디바이스에 연결하고 인증하기 위해 적절한 인수로 코드를 업데이트해야 합니다.

    객체를 설정하면 Device 디바이스에서 NETCONF 작업을 수행할 수 있습니다. NETCONF 작업에 해당하는 사용 가능한 방법의 전체 목록은 NETCONF Java 툴킷 Javadocs를 참조하십시오.

  4. executeRPC() 운영 요청 RPC 명령을 인수로 사용하여 메서드를 호출합니다.

    이 예에서는 Junos XML API get-chassis-inventory RPC를 사용합니다. XML로 반환되는 회신은 변수에 저장됩니다 rpc_reply .

  5. RPC 회신에 대한 작업을 수행하는 코드를 추가합니다.

    다음 코드는 NETCONF 서버의 응답을 문자열로 변환하여 화면에 출력합니다.

  6. 장치를 닫고 장치 개체의 메서드를 호출하여 close() 리소스를 해제합니다.

결과

전체 프로그램은 다음과 같습니다.

Java 프로그램 컴파일 및 실행

단계별 절차

소스 코드를 컴파일하고 실행 가능한 프로그램을 만들려면 Java 컴파일러가 필요합니다.

구성 관리 서버에서 코드를 컴파일하고 프로그램을 실행하려면 다음을 수행합니다.

  1. GetChassisInventory.java 파일을 컴파일합니다.

  2. GetChassisInventory 프로그램을 실행합니다.

확인

프로그램 실행 확인

목적

GetChassisInventory 프로그램이 올바르게 실행되는지 확인합니다.

행동

프로그램이 성공적으로 실행되면 연결이 설정되고 지정된 디바이스와 NETCONF 세션이 생성됩니다. 프로그램은 RPC를 get-chassis-inventory NETCONF 서버로 전송하고, 서버는 태그 요소에 동봉 <rpc-reply> 된 요청된 운영 정보로 응답합니다. 프로그램이 응답을 표준 출력으로 인쇄합니다. 다음은 간결성을 위해 일부 출력이 생략된 샘플 RPC 응답입니다.

문제 해결

NETCONF 예외 문제 해결

문제

NETCONF 예외가 발생하고 다음과 같은 오류 메시지가 표시됩니다.

SSH를 통한 NETCONF는 NETCONF 서버가 상주하는 디바이스에서 활성화되지 않거나 다른 포트에서 활성화될 수 있습니다.

용액

NETCONF 서버가 상주하는 디바이스에서 SSH를 통한 NETCONF를 활성화했는지 확인합니다. 예제 프로그램이 인수에 Device 특정 포트 번호를 지정하지 않기 때문에 NETCONF 세션은 기본 NETCONF-over-SSH 포트 830에 설정됩니다. Junos OS를 실행하는 디바이스의 기본 포트에서 NETCONF over SSH가 활성화되어 있는지 확인하려면 원격 디바이스에서 다음 운영 모드 명령을 입력합니다.

구성 계층이 netconf 없는 경우 구성 모드에서 다음 문을 발행하여 기본 포트에서 SSH를 통한 NETCONF를 활성화합니다.

구성 계층이 netconf 기본 포트 이외의 포트를 지정하는 경우, 개체 생성자 인수에 Device 새 포트 번호를 포함합니다. 예를 들어, 다음 디바이스는 포트 12345에서 SSH를 통한 NETCONF용으로 구성됩니다.

연결 문제를 해결하려면 인수에 Device 새 포트 번호를 포함합니다.

예: CLI 명령 실행을 위한 NETCONF Java 애플리케이션

이 NETCONF Java 툴킷 프로그램은 지정된 Junos OS 운영 모드 명령을 NETCONF 서버로 전송하여 Junos OS를 실행하는 디바이스에서 정보를 요청하거나 운영 작업을 수행하는 방법을 보여줍니다 runCLICommand() .

요구 사항

  • Junos OS를 실행하는 라우팅, 스위칭 또는 보안 디바이스.

  • NETCONF Java 툴킷은 구성 관리 서버에 설치됩니다.

  • 클라이언트 애플리케이션은 NETCONF 서버가 상주하는 디바이스에 로그인할 수 있습니다.

  • SSH를 통한 NETCONF 서비스는 NETCONF 서버가 상주하는 디바이스에서 활성화됩니다.

개요

NETCONF Java 툴킷 Device 클래스에는 Junos OS CLI 운영 모드 명령을 받아 NETCONF 서버에서 처리할 수 있는 XML의 동등한 RPC로 변환하는 메서드가 포함되어 runCliCommand() 있습니다. 이 runCLICommand() 메서드는 Junos OS CLI에 입력하는 운영 모드 명령을 나타내는 문자열을 인수로 사용합니다.

다음 예제에서는 Junos OS를 실행하는 디바이스에서 명령을 실행합니다 show chassis hardware . 메서드의 반환 값은 문자열입니다. Junos OS 릴리스 11.4부터 반환 문자열은 Junos OS CLI에서 볼 수 있는 것과 동일한 ASCII 형식의 출력입니다. 이전 버전의 Junos OS를 실행하는 디바이스의 경우 반환 문자열에 Junos XML 태그 요소가 포함됩니다.

구성

Java 프로그램 작성

단계별 절차

Java 프로그램 파일을 구성하려면 다음을 수행합니다.

  1. 파일에 설명이 포함된 이름을 지정합니다.

    파일 이름은 클래스 이름과 동일해야 합니다. 이 예제에서 파일 및 클래스의 이름은 ExecuteCLICommand입니다.

  2. 파일에 코드를 추가하고 원격 호스트 IP 주소, 사용자 이름, 암호 및 <rpc-reply> 태그 요소와 같은 환경별 변수를 업데이트합니다.

    ExecuteCLICommand.java 프로그램에 대한 전체 Java 코드가 여기에 표시됩니다.

Java 프로그램 컴파일 및 실행

단계별 절차

소스 코드를 컴파일하고 실행 가능한 프로그램을 만들려면 Java 컴파일러가 필요합니다.

구성 관리 서버에서 코드를 컴파일하고 프로그램을 실행하려면 다음을 수행합니다.

  1. ExecuteCLICommand.java 파일을 컴파일합니다.

  2. ExecuteCLICommand 프로그램을 실행합니다.

확인

프로그램 실행 확인

목적

ExecuteCLICommand 프로그램이 올바르게 실행되는지 확인합니다.

행동

프로그램이 성공적으로 실행되면 연결을 설정하고 지정된 디바이스와 NETCONF 세션을 생성합니다. 이 프로그램은 Junos OS CLI 운영 모드 명령을 show chassis hardware RPC로 변환하고 RPC를 NETCONF 서버로 보냅니다. 서버는 태그 요소에 포함된 <rpc-reply> 요청된 운영 정보로 응답합니다. 프로그램은 RPC 응답을 구문 분석하고 결과 섀시 인벤토리를 인쇄합니다. 다음 샘플 출력은 주니퍼 네트웍스 m7i 라우터에서 가져온 것입니다.

Junos OS 릴리스 11.4 이상 릴리스를 실행하는 디바이스에서 출력은 CLI의 출력과 동일한 ASCII 형식 텍스트로 표시됩니다.

Junos OS 릴리스 11.3 또는 이전 릴리스를 실행하는 디바이스에서는 출력에 Junos XML 태그 요소가 포함됩니다.

예: 구성 요소 온도 인쇄를 위한 NETCONF Java 애플리케이션

이 NETCONF Java 툴킷 프로그램은 Junos OS를 실행하는 디바이스에 있는 구성 요소의 이름과 해당 온도를 인쇄합니다.

요구 사항

  • Junos OS를 실행하는 라우팅, 스위칭 또는 보안 디바이스.

  • NETCONF Java 툴킷은 구성 관리 서버에 설치됩니다.

  • 클라이언트 애플리케이션은 NETCONF 서버가 상주하는 디바이스에 로그인할 수 있습니다.

  • SSH를 통한 NETCONF 서비스는 NETCONF 서버가 상주하는 디바이스에서 활성화됩니다.

개요

다음 예제에서는 Junos OS를 실행하는 디바이스에서 운영 모드 명령과 show chassis environment 동일한 Junos XML API get-environment-information RPC를 실행합니다. 프로그램은 RPC 응답을 구문 분석하고, 온도를 나열하는 모든 구성요소에 대해 구성요소 이름과 해당 온도를 인쇄합니다.

RPC 요청에 대한 get-environment-information RPC 응답 형식은 다음과 같습니다.

회신을 구문 분석하기 위해 프로그램은 메서드를 사용하여 findNodes() 개체 목록을 org.w3c.dom.Node 반환합니다. 각 <environment-item> 노드에 대해 프로그램은 자식 노드 목록을 가져옵니다. 온도 요소가 자식 노드 목록에 있는 경우 프로그램은 해당 환경 항목의 이름과 온도를 인쇄합니다.

구성

Java 프로그램 작성

단계별 절차

Java 프로그램 파일을 구성하려면 다음을 수행합니다.

  1. 파일에 설명이 포함된 이름을 지정합니다.

    파일 이름은 클래스 이름과 동일해야 합니다. 이 예제에서 파일 및 클래스의 이름은 ShowTemps입니다.

  2. 파일에 코드를 추가하고 원격 호스트 IP 주소, 사용자 이름, 암호 및 <rpc-reply> 태그 요소와 같은 환경별 변수를 업데이트합니다.

    ShowTemps.java 프로그램에 대한 전체 Java 코드가 여기에 표시됩니다.

Java 프로그램 컴파일 및 실행

단계별 절차

소스 코드를 컴파일하고 실행 가능한 프로그램을 만들려면 Java 컴파일러가 필요합니다.

구성 관리 서버에서 코드를 컴파일하고 프로그램을 실행하려면 다음을 수행합니다.

  1. ShowTemps.java 파일을 컴파일합니다.

  2. ShowTemps 프로그램을 실행합니다.

확인

결과 확인

목적

ShowTemps 프로그램이 올바르게 실행되는지 확인하십시오.

행동

프로그램이 성공적으로 실행되면 연결이 설정되고 지정된 디바이스와 NETCONF 세션이 생성됩니다. 그런 다음 프로그램은 Junos XML API get-environment-information RPC를 실행하고, RPC 응답을 구문 분석하고, 하위 노드를 <temperature>포함하는 모든 환경 항목을 인쇄합니다.

다음 샘플 출력은 주니퍼 네트웍스 m7i 라우터에서 나온 것입니다.