Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

자동화 스크립트의 세션 프로토콜 이해

Junos XML 관리 프로토콜은 주니퍼 네트웍스의 독점 프로토콜로, Junos OS를 실행하는 디바이스에서 정보를 요청하고 디바이스를 구성하는 데 사용됩니다. NETCONF XML 관리 프로토콜은 라우팅, 스위칭 또는 보안 디바이스에 대한 구성 정보를 요청하고 변경하는 데 사용되는 표준입니다. NETCONF 프로토콜은 RFC 6241, NETCONF 구성 프로토콜에 정의되어 있으며, 이는 http://www.ietf.org/rfc/rfc6241.txt 에서 확인할 수 있습니다.

jcs:open() 디바이스와의 연결을 설정하기 위해 SLAX 및 XSLT 스크립트에서 사용되는 이 기능에는 Junos OS를 실행하는 디바이스의 Junos XML 프로토콜 서버 또는 SSH를 통한 NETCONF 서비스가 활성화된 디바이스의 NETCONF 서버로 세션을 생성하는 옵션이 포함됩니다. Junos OS 릴리스 11.4 이전에는 이 기능이 Junos OS를 실행하는 디바이스에서 Junos XML 프로토콜 서버와의 세션만 지원했습니다. NETCONF 세션에 대한 추가 지원을 통해 자동화 스크립트가 멀티벤더 환경에서 디바이스를 구성하고 관리할 수 있습니다.

jcs:open() 함수는 다음 세션 프로토콜 유형을 지원합니다.

  • junoscript—Junos OS를 실행하는 라우팅, 스위칭 또는 보안 디바이스에서 Junos XML 프로토콜 서버와의 세션. 이 세션 유형은 Junos OS 실행 디바이스를 구성하거나 디바이스 구성 또는 작업에 대한 정보를 요청하는 데 사용되는 Junos XML 프로토콜 및 Junos XML API에 정의된 작업을 지원합니다. 이것이 기본 세션 유형입니다.

  • netconf—SSHv2 연결을 통한 라우팅, 스위칭 또는 보안 디바이스의 NETCONF XML 프로토콜 서버와의 세션. SSH를 통한 NETCONF 서비스에 대해 연결이 이루어지는 디바이스를 활성화해야 합니다. SSH를 통한 NETCONF는 RFC 4742, SSH(Secure SHell)를 통한 NETCONF 구성 프로토콜 사용에 설명되어 있으며, 이 내용은 http://www.ietf.org/rfc/rfc4742.txt 에서 확인할 수 있습니다.

  • junos-netconf—Junos OS를 실행하는 라우팅, 스위칭 또는 보안 디바이스의 SSHv2 연결을 통해 NETCONF XML 프로토콜 서버와의 독점 세션.

Junos OS를 실행하는 디바이스의 NETCONF 서버에는 에 http://xml.juniper.net/netconf/junos/1.0 정의된 추가 기능이 있습니다. 이러한 디바이스의 NETCONF 서버는 NETCONF XML 프로토콜 운영, 대부분의 Junos XML 프로토콜 운영 및 Junos XML API에 정의된 태그 요소를 지원합니다. Junos OS를 junos-netconf 실행하는 디바이스가 있는 세션의 경우netconf, NETCONF XML 관리 프로토콜 개발자 가이드에 설명된 대로 기본 NETCONF XML 프로토콜 작업과 구성 기능을 위해 Junos XML 프로토콜에서 사용할 수 있는 확장만 사용해야 합니다.

세션 프로토콜을 지정할 때의 함수 구문 jcs:open() 은 다음과 같습니다.

SLAX 구문

XSLT 구문

session-options 매개 변수는 세션 형식 및 연결 매개 변수를 지정하는 XML 노드 집합입니다. 세션 유형은 , netconf, 또는 junos-netconf의 세 가지 값 junoscript중 하나입니다. 세션 유형을 지정하지 않으면 기본값은 junoscriptJunos OS를 실행하는 디바이스에서 Junos XML 프로토콜 서버와의 세션을 여는 입니다. 노드 세트의 형식은 다음과 같습니다.

사용자 이름을 지정하지 않고 연결에 필요한 경우 스크립트는 스크립트를 실행하는 사용자의 로컬 이름을 사용합니다. 및 <password> 요소는 <passphrase> 동일한 용도로 사용됩니다. 암호 또는 암호 요소를 지정하지 않고 인증에 필요한 경우 연결 중인 디바이스에서 스크립트를 실행하는 동안 암호 또는 암호 요소에 대한 메시지가 표시되어야 합니다.

참고:

Junos OS Evolved jcs:open() 를 실행하는 디바이스는 기능을 사용하여 로컬 또는 원격 연결을 설정할 때 암호 없는 로그인만 지원합니다. Junos OS에서 지원하는 것처럼 암호를 함수 인수로 제공하거나 대화형 암호를 사용하는 것을 지원하지 않습니다. 로컬 또는 원격 연결을 적용하려면 암호 없는 로그인을 통해 이 기능을 실행하지 않으면 인증 문제가 발생할 수 있습니다.

선택적으로 및 junos-netconf 세션에 대한 netconf 서버 포트 번호를 지정할 수 있습니다. 기본 NETCONF 서버 포트 번호는 830입니다. 또는 junos-netconf 세션 jcs:open() 에 대한 netconf 포트 번호를 지정하지 않으면 포트 830을 사용하여 NETCONF 서버에 연결합니다. 그러나 포트 번호를 지정하는 경우 은(는) jcs:open() 대신 지정된 포트에 연결합니다. 포트 번호를 지정해도 항상 SSH 포트 22를 통해 설정되는 세션에는 junoscript 영향을 주지 않습니다.

SSH 연결을 특정 라우팅 인스턴스 내에서 시작하도록 리디렉션하려면 또는 routing-instance 요소와 라우팅 인스턴스 이름을 포함합니다instance. 라우팅 인스턴스는 계층 수준에서 구성해야 [edit routing-instances] 합니다. 원격 디바이스는 해당 라우팅 인스턴스에 대한 라우팅 테이블을 사용하거나 해당 라우팅 인스턴스에서 구성된 인터페이스 중 하나에서 연결할 수 있어야 합니다. 및 routing-instance 요소는 instance 동일한 용도로 사용됩니다.

특정 연결에 대한 프로토콜을 확인하려면 확장 함수를 호출 jcs:get-protocol(connection) 하고 연결 핸들을 인수로 전달합니다. 이 함수는 세션 유형에 따라 "junoscript", "netconf" 또는 "junos-netconf"를 반환합니다.

NETCONF 서버와의 세션 설정 중에 클라이언트 애플리케이션과 NETCONF 서버는 각각 NETCONF 사양에 정의되거나 독점 확장으로 게시된 작업 또는 기능 중에서 지원하는 작업 또는 기능을 지정하기 위해 태그 요소를 내보냅니다<hello>. 및 junos-netconf 세션에서는 netconf 확장 함수를 호출하여 jcs:get-hello(connection) NETCONF 서버의 세션 기능을 검색할 수 있습니다.

예를 들어, Junos OS를 실행하는 일반적인 디바이스의 NETCONF 서버는 다음과 같은 기능을 반환할 수 있습니다.