네트콘프
NETCONF![]() |
네트워크 구성 프로토콜(Network Configuration Protocol, NETCONF)은 IETF에 의해 개발되고 표준화된 네트워크 관리 프로토콜이다.NETCONF 워킹 그룹에서[1] 개발되어 2006년 12월에 RFC 4741로[2] 발행되었으며 이후 2011년 6월에 개정되어 RFC 6241로 발행되었다.[3]NETCONF 프로토콜 규격은 인터넷 표준 트랙 문서다.
NETCONF는 네트워크 장치의 구성을 설치, 조작 및 삭제하는 메커니즘을 제공한다.그것의 운영은 RPC 계층 위에서 실현된다.NETCONF 프로토콜은 프로토콜 메시지뿐만 아니라 구성 데이터에 대해 XML(Extensible Markup Language) 기반 데이터 인코딩을 사용한다.프로토콜 메시지는 보안 전송 프로토콜 위에서 교환된다.
NETCONF 프로토콜은 4개의 계층으로 개념적으로 분할될 수 있다.
- 내용 계층은 구성 데이터와 통지 데이터로 구성된다.
- 운영 계층은 구성 데이터를 검색하고 편집하기 위한 일련의 기본 프로토콜 작업을 정의한다.
- 메시지 계층은 원격 프로시저 호출(RPC) 및 알림을 인코딩하는 메커니즘을 제공한다.
- 보안 전송 계층은 클라이언트와 서버 사이에 안전하고 신뢰할 수 있는 메시지 전송을 제공한다.
NETCONF 프로토콜은 일부 주요 장비 공급업체에 의해 라우터 및 스위치와 같은 네트워크 장치에 구현되었다.NETCONF의 한 가지 특별한 강점은 다수의 장치가 포함된 트랜잭션을 사용한 강력한 구성 변경을 지원하는 것이다.
역사
IETF는 1980년대 후반에 SNMP(Simple Network Management Protocol)를 개발하여 매우 인기 있는 네트워크 관리 프로토콜로 판명되었다.21세기 초에는 원래 의도했던 것에도 불구하고 SNMP는 네트워크 장비를 구성하는 데 사용되지 않고 주로 네트워크 모니터링에 사용된다는 것이 명백해졌다.2002년 6월, 인터넷 아키텍처 위원회와 IETF 네트워크 관리 커뮤니티의 주요 구성원들이 네트워크 운영자들과 함께 모여 상황을 논의하였다.이 회의의 결과는 RFC 3535에 기록되어 있다.알고 보니 각 네트워크 운영자는 주로 다른 독점 명령줄 인터페이스(CLI)를 사용하여 장치를 구성하고 있었다.이것은 BER 인코딩 SNMP와는 반대로 텍스트 기반이라는 사실 등 운영자들이 좋아하는 여러 가지 특징을 가지고 있었다.또한 많은 장비 공급업체들은 SNMP를 통해 자신의 장치를 완전히 구성할 수 있는 옵션을 제공하지 않았다.운영자들이 일반적으로 박스 관리를 돕기 위해 스크립트 쓰는 것을 좋아하기 때문에 SNMP CLI가 부족하다는 것을 알게 되었다.ng 여러 가지 방법으로가장 주목할 만한 것은 출력의 예측 불가능한 특성이었다.출력의 내용과 형식은 예측할 수 없는 방식으로 변경되기 일쑤였다.
이 무렵 주니퍼 네트워크는 XML 기반의 네트워크 관리 방식을 사용해 왔다.이것은 IETF에 제출되었고 더 넓은 지역사회와 공유되었다.집합적으로, 이 두 사건은 2003년 5월에 IETF를 NETCONF 워킹그룹으로 이끌었다.이 작업 그룹은 네트워크 구성 프로토콜에 대한 작업을 허가받았는데, 이는 네트워크 운영자와 장비 공급자의 요구에 더 잘 부합할 것이다.기본 NETCONF 프로토콜의 첫 번째 버전은 2006년 12월에 RFC 4741로 발행되었다.몇 개의 연장이 후속 연도에 발표되었다(2008년 7월 RFC 5277의 공지, 2009년 12월 RFC 5717의 부분 잠금, 2011년 6월 RFC 6243의 기본값, 2012년 2월 RFC 6470의 시스템 알림, 2012년 3월 RFC 6536의 액세스 제어).기본 NETCONF 프로토콜의 개정판은 2011년 6월에 RFC 6241로 발행되었다.
프로토콜 계층
내용
NETCONF 운영의 내용은 잘 짜여진 XML. 대부분의 콘텐츠는 네트워크 관리와 관련된다.이어서 자바스크립트 객체 표기법(JSON)에서의 인코딩 지원도 추가되었다.
NETMOD 워킹 그룹은 운용 데이터, 구성 데이터, 통지 및 운용의 의미론적 정의를 위한 "인간 친화적" 모델링 언어의 정의 작업을 완료하였으며, YANG은 RFC 6020(버전 1)과 RFC 7950(버전 1.1)에 정의되어 있으며, RFC 6991에서 발견된 "공통 YANG 데이터 유형"과 함께 정의된다.
2010년 여름 동안, NETMOD 작업 그룹은 SNMP 모델링 언어와의 호환성에 관한 작업뿐만 아니라 핵심 구성 모델(시스템, 인터페이스, 라우팅)에 관한 작업을 위해 재차트를 하였다.
운영
기본 프로토콜은 다음과 같은 프로토콜 연산을 정의한다.
작전 | 설명 |
---|---|
<겟> | 실행 중인 구성 및 장치 상태 정보 검색 |
<get-config> | 지정된 구성 데이터스토어의 전부 또는 일부 검색 |
<편집-구성> | 컨텐츠 생성, 삭제, 병합 또는 교체를 통해 구성 데이터스토어 편집 |
<복사-구성> | 전체 구성 데이터스토어를 다른 구성 데이터스토어에 복사 |
<삭제-구성> | 구성 데이터스토어 삭제 |
<잠금> | 디바이스의 전체 구성 데이터스토어 잠금 |
<<unlock>> | 이전에 <잠금> 작업을 통해 얻은 구성 데이터스토어 잠금 해제 |
<밀착형> | NETCONF 세션의 정상 종료 요청 |
<킬레오> | NETCONF 세션 강제 종료 |
기본 NETCONF 기능은 NETCONF 기능의 정의에 의해 확장될 수 있다.구현이 지원하는 추가 프로토콜 기능 집합은 세션 설정의 기능 교환 부분 동안 서버와 클라이언트 간에 전달된다.필수 프로토콜 특성은 가정되기 때문에 기능 교환에 포함되지 않는다.RFC 4741은 :xpath 및 :validate를 포함한 많은 선택적 기능을 정의한다.RFC 6241은 RFC 4741을 방출한다는 점에 유의한다.
비동기 이벤트 알림 구독 및 수신을 지원하는 기능이 RFC 5277에 게시되어 있다.이 문서는 실시간 구독을 만들고 재생 구독을 만들 수 있는 <구독-구독> 작업을 정의한다.그런 다음 <통보> 구성을 사용하여 비동기적으로 통보가 전송된다.또한 :interleave 기능을 정의하는데, 이 기능은 기본 :notification 기능으로 지원될 경우 가입이 활성화되어 있는 동안 다른 NETCONF 운영의 처리를 용이하게 한다.
실행 중인 구성의 부분 잠금을 지원하는 기능은 RFC 5717에 정의되어 있다.이를 통해 여러 세션이 실행 중인 구성 내에서 겹치지 않는 하위 트리를 편집할 수 있다.이 기능이 없으면 전체 구성에 사용할 수 있는 유일한 잠금이 있다.
NETCONF 프로토콜을 감시하는 기능은 RFC 6022에 정의되어 있다.이 문서에는 NETCONF 데이터스토어, 세션, 잠금 및 NETCONF 서버 관리를 용이하게 하는 통계에 대한 정보를 포함하는 데이터 모델이 포함되어 있다.또한 NETCONF 클라이언트가 NETCONF 서버에서 지원하는 데이터 모델을 검색하는 방법을 정의하고, 이를 검색하는 <get-schema> 작업을 정의한다.
메시지
NETCONF 메시지 계층은 인코딩을 위한 간단하고 전송에 독립적인 프레임 메커니즘을 제공한다.
- RPC 호출(<rpc> 메시지),
- RPC 결과(<rpc-reply> 메시지) 및
- 이벤트 알림(<메시지>).
모든 NETCONF 메시지는 제대로 구성된 XML 문서다.RPC 결과는 메시지 ID 속성에 의해 RPC 호출에 연결된다.NETCONF 메시지는 파이프라인으로 연결할 수 있다. 즉, 클라이언트는 먼저 RPC 결과 메시지를 기다릴 필요 없이 여러 RPC를 호출할 수 있다.RPC 메시지는 RFC 6241에 정의되어 있고 통보 메시지는 RFC 5277에 정의되어 있다.
운송
- SSH(Secure Shell)를 통한 NETCONF 프로토콜: rfc:6242
- 상호 X.509 인증을 사용하는 TLS(Transport Layer Security)를 통한 NETCONF 프로토콜: rfc:7589
참고 항목
- 양
- Stefan Wallin (2014-10-18). NETCONF Tutorial (YouTube). Stockholm: tail-f. Archived from the original on 2021-12-21.
- 네트워크 관리
- 구성 관리
- 네트워크 모니터링
- XML 스키마
참조
- ^ "Network Configuration Working Group". IETF.
- ^ Enns, Rob (2006). NETCONF Configuration Protocol (Technical report). IETF. doi:10.17487/RFC4741. RFC4741.
- ^ Enns, Rob; Björklund, Martin; Schönwälder, Jürgen; Bierman, Andy (2011). Network Configuration Protocol (NETCONF) (Technical report). IETF. doi:10.17487/RFC6241. RFC6241.