네트워크 디바이스 관리를 위한 gRPC 서비스 이해
요약 gRPC 클라이언트 애플리케이션은 gNOI 작업 및 gRIBI 서비스를 포함한 gRPC 네트워크 서비스를 사용하여 지원되는 네트워크 디바이스를 관리할 수 있습니다.
gRPC 네트워크 서비스의 이점
- 벤더에 구애받지 않는 간단한 인터페이스를 제공하여 네트워크 디바이스를 관리할 수 있습니다.
- 멀티벤더 네트워크를 대규모로 보다 쉽게 관리할 수 있습니다.
- 전송에 gRPC 원격 프로시저 호출 프레임워크를 사용하고 서비스 정의 및 인코딩에 프로토콜 버퍼를 사용하여 효율적인 전송과 빠른 처리를 제공합니다.
OpenConfig 이해
OpenConfig는 멀티벤더 네트워크 구성 및 관리를 위해 보다 동적이고 프로그래밍 가능한 방식으로 이동하기 위한 네트워킹 업계의 공동 노력입니다. OpenConfig는 벤더 중립적인 서비스 정의 및 데이터 모델을 사용하여 네트워크를 관리하고 구성할 수 있도록 지원합니다. 서비스 정의는 네트워크 디바이스에서 실행되는 공통 작업을 정의하고, 데이터 모델은 공통 네트워크 프로토콜 또는 서비스에 대한 네트워크 디바이스의 구성 및 작동 상태를 정의합니다.
멀티벤더 네트워크를 사용하는 사업자는 업계 표준 모델 및 사양을 사용함으로써 큰 이점을 얻을 수 있습니다. OpenConfig의 목표는 운영자가 단일 데이터 모델 및 작업 세트를 사용하여 OpenConfig 이니셔티브를 지원하는 모든 네트워크 디바이스를 구성하고 관리할 수 있도록 하는 것입니다. OpenConfig 워킹 그룹은 네트워크 디바이스의 구성, 운영 및 텔레메트리 스트림을 관리하기 위한 gRPC 기반 인터페이스에 대한 사양을 개발했으며, 이는 다른 기존 네트워크 관리 프로토콜에 비해 이점을 제공합니다.
gRPC 기반 서비스 개요
gRPC는 원래 Google에서 개발한 오픈 소스 RPC(원격 프로시저 호출) 프레임워크입니다. gRPC는 전송에 HTTP/2를 사용하고 최신 보안 메커니즘 및 양방향 스트리밍을 지원합니다. gRPC는 프로토콜 버퍼 데이터 형식을 사용하여 서비스를 정의하고 데이터를 인코딩합니다. 프로토콜 버퍼는 언어에 구애받지 않으며 다양한 언어에 대한 바인딩을 지원하므로 운영자가 gRPC 기반 서비스를 기존 관리 애플리케이션에 쉽게 통합할 수 있습니다.
OpenConfig 작업 그룹은 gRPC 기반 네트워크 관리 프로토콜에 대한 사양을 정의했습니다. gRPC 기반 네트워크 서비스에는 다음이 포함됩니다.
- gRPC 네트워크 관리 인터페이스(gNMI) - 구성 관리 및 스트리밍 텔레메트리를 위한 단일 서비스입니다.
- gRPC 네트워크 운영 인터페이스(gNOI) - 운영 관리를 위한 마이크로서비스 제품군입니다.
- gRPC 라우팅 정보 베이스 인터페이스(gRIBI) - 외부 애플리케이션이 대상 디바이스의 라우팅 테이블에 있는 항목을 프로그래밍 방식으로 추가하거나 제거할 수 있도록 하는 서비스입니다.
그림 1 에서는 다양한 서비스의 범위를 보여 줍니다.

gNMI, gNOI 및 gRIBI 서비스 개요
gNMI는 네트워크 요소의 상태 관리를 위한 단일 서비스를 제공합니다. gNMI는 일반적인 네트워크 프로토콜 또는 서비스에 대한 네트워크 디바이스의 구성 및 작동 상태를 정의하는 공급업체 중립적인 데이터 모델을 사용합니다. gNMI 클라이언트는 네트워크 디바이스의 구성을 검색 및 수정하고 운영 데이터를 스트리밍할 수 있습니다. 운영자는 관심 있는 특정 데이터 객체를 구독하여 네트워크를 모니터링합니다. gNMI는 시간에 민감한 작업에 중요한 변경 시 스트리밍도 지원합니다.
Junos 디바이스의 구성 관리 및 텔레메트리 스트리밍에 gNMI를 사용하는 방법에 대한 자세한 내용은 다음을 참조하십시오.
gNMI는 상태 관리를 처리하는 반면 gNOI는 작업 관리를 처리합니다. gNOI는 네트워크 디바이스에서 일반적인 작업을 수행하기 위한 gRPC 기반 마이크로 서비스 모음입니다. 각 서비스 정의는 관리 애플리케이션이 디바이스 재부팅, 소프트웨어 업그레이드 또는 인증서 교체와 같은 일련의 작업을 수행하기 위해 디바이스에서 실행할 수 있는 RPC(원격 프로시저 호출)를 정의합니다. 지원되는 gNOI 서비스 목록은 gNOI 서비스 개요를 참조하세요.
gRIBI는 네트워크 디바이스의 라우팅 정보 베이스(RIB, 라우팅 테이블이라고도 함)와 포워딩 정보 베이스(FIB, 포워딩 테이블이라고도 함)를 관리하기 위한 단일 서비스입니다. 관리 애플리케이션은 디바이스에서 gRIBI RPC를 실행하여 디바이스의 RIB 또는 FIB에서 경로를 검색, 추가, 수정 또는 삭제할 수 있습니다. 지원되는 gRIBI RPC에 대한 자세한 내용은 gRIBI를 참조하십시오.
gNMI, gNOI 및 gRIBI는 전송에 gRPC를 사용하며, gRPC 서버와 gRPC 클라이언트 간의 연결은 SSL 암호화 gRPC 세션을 통해 이루어집니다. 예를 들어 그림 2 는 gNOI 클라이언트와 서버 간의 간단한 연결을 보여 줍니다. 주니퍼 네트웍스는 X.509 인증서를 사용하여 디바이스 또는 애플리케이션을 인증하는 gRPC 세션에 대해 서버 전용 인증과 상호 인증을 모두 지원합니다. 인증서는 인증 기관에서 서명하거나 자체 서명할 수 있습니다.

gNMI, gNOI 및 gRIBI는 네트워크 디바이스 관리를 위한 서비스를 정의합니다. 각 서비스 정의는 프로토타입 정의 파일에서 특정 서비스에 대한 작업(RPC) 및 데이터 구조(메시지)를 정의합니다. 데이터 구조는 구조화된 데이터를 직렬화하기 위한 오픈 소스, 언어 중립적 데이터 형식인 프로토콜 버퍼를 사용하여 정의됩니다. 또는 이와 동등한 컴파일러를 사용하여 protoc
선택한 언어에 대한 proto 파일을 컴파일합니다. 관리 애플리케이션은 컴파일된 파일의 코드를 사용하여 네트워크 디바이스에서 요청된 작업을 수행할 수 있습니다. 표 1 에서는 proto 정의 파일이 포함된 gNMI, gNOI 및 gRIBI GitHub 리포지토리의 위치를 제공합니다.
인터페이스 | GitHub 리포지토리 |
---|---|
gNMI | openconfig/gnmi |
그노이 | openconfig/gnoi |
그리비 | openconfig/gribi |
gNMI, gNOI 및 gRIBI는 NETCONF 및 RESTCONF와 같은 다른 네트워크 관리 프로토콜에 대한 대안과 이점을 제공합니다. gNMI, gNOI 및 gRIBI는 gRPC 기반 서비스이고 지원되는 다양한 언어로 프로토타입 정의 파일을 컴파일할 수 있으므로 서비스를 기존 관리 애플리케이션과 쉽게 통합하여 멀티벤더 네트워크를 관리할 수 있습니다. 또한 데이터 직렬화에 프로토콜 버퍼를 사용하면 일반적으로 JSON 및 XML과 같은 다른 직렬화 형식보다 더 효율적인 전송과 더 빠른 처리가 가능합니다.