Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

안전한 원격 분석 수집을 위해 gRPC 전화 접속 사용

gRPC 다이얼아웃 이해

Junos OS 릴리스 22.4R1부터 JTI는 ACX 시리즈 라우터, MX 시리즈 라우터, PTX 시리즈 라우터 및 QFX 시리즈 스위치에서 원격 gRPC 다이얼아웃 지원을 지원합니다. gRPC 다이얼아웃을 사용하면 대상 디바이스(서버)가 수집기(클라이언트)와 함께 gRPC 세션을 시작합니다. 세션이 설정되면 대상은 센서 그룹 구독에 의해 지정된 텔레메트리 데이터를 수집기로 스트리밍합니다. 이는 수집기가 대상 디바이스에 대한 연결을 시작하는 gRPC 네트워크 관리 인터페이스(gNMI) 전화 접속 방법과는 대조적입니다.

gRPC 다이얼 아웃은 스트리밍 원격 분석 통계를 단순화합니다. 통계를 스트리밍하고 수집기 IP 주소로 내보내도록 대상 디바이스를 구성하면 수집기(클라이언트)에 가해지는 액세스 부담을 제거할 수 있습니다. ( 그림 1 참조).

그림 1: gRPC 다이얼아웃 gRPC Dial-Out

gRPC 전화 접속은 gRPC 전화 접속에 비해 몇 가지 이점을 제공합니다.

  • 토폴로지 외부의 위협에 대한 대상 디바이스 노출을 줄입니다.

  • 대상 장치에 대한 액세스를 단순화합니다. gRPC 전화 접속 방법을 사용하려면 수집기가 일련의 복잡한 방화벽 구성을 극복하여 대상 디바이스에 액세스해야 합니다. gRPC 전화 걸기는 그렇지 않습니다.

  • 수집기는 상태 비저장일 수 있습니다. 세션을 시작할 필요 없이 수집된 데이터를 듣고, 구독하고, 저장하기만 하면 됩니다.

  • 보안 강화를 위해 상호 암호화를 지원합니다.

통계 내보내기를 사용하려면 [edit services analytics] 계층 수준에서 및 sensor 문을 포함합니다export-profile. 내보내기 프로필에는 보고 속도, 전송 서비스(예: gRPC) 및 형식(예: gbp-gnmi)이 포함되어야 합니다. 센서 구성에는 수집기 이름(서버 이름), 내보내기 프로필 이름 및 리소스 경로가 포함되어야 합니다. 리소스 경로의 예는 /interfaces/interface[name='fxp0'입니다.

레거시 gRPC 전화 접속 연결을 위한 IP 원본 주소 구성

Junos OS Evolved 릴리스 24.2R1부터 JTI는 ACX 시리즈 라우터, PTX 시리즈 라우터 및 QFX 시리즈 스위치에서 레거시 gRPC 서비스 다이얼아웃 연결을 위한 소스 IP 주소 구성을 지원합니다. 레거시 gRPC 다이얼아웃을 지원하는 이전 릴리스에서는 원본 IP 주소를 구성할 수 있는 옵션 없이 발신 인터페이스 IP 주소가 원본 주소로 사용됩니다. 이 기능은 라우터의 지정된 IP 주소 또는 인터페이스 주소(예: loopback0 주소)에서 다이얼아웃을 보낼 수 있는 기능을 제공하는 FLEX 구축을 지원합니다.

로컬 주소를 구성하지 않으면 기본 로컬 주소가 사용됩니다.

로컬 주소를 구성하려면 다음을 수행합니다.

  1. 구성 모드에서 계층 수준으로 이동하여 [edit services analytics export-profile] 내보내기 프로필의 이름을 추가합니다( 여기 ep1).
  2. 명령문(여기서는 IPv6 주소 2000:200::20포함)을 local-address 포함합니다.

    레거시 gRPC 다이얼아웃 연결(전송 유형 grpc. IPv6 주소는 UDP 전송에서 지원되지 않습니다. UDP 전송이 구성된 경우 구성을 커밋할 때 오류가 표시됩니다.

  3. 다음 운영 모드 명령을 사용하여 로컬 주소 구성을 확인합니다.

    내보내기 파일에는 ep1 IPv6 주소가 2000:200::20 로컬 주소로 표시됩니다.

레거시 gRPC 전화 접속 연결을 위한 라우팅 인스턴스 구성

Junos OS Evolved 릴리스 24.2R1부터 JTI는 ACX 시리즈 라우터, PTX 시리즈 라우터 및 QFX 시리즈 스위치에서 레거시 gRPC 서비스 다이얼아웃 연결을 위한 라우팅 인스턴스 구성을 지원합니다.

라우팅 인스턴스를 구성하지 않으면 기본 라우팅 인스턴스가 사용됩니다.

라우팅 인스턴스를 구성하려면 다음을 수행합니다.

  1. 구성 모드에서 계층 수준으로 이동하여 [edit services analytics export-profile] 내보내기 프로필의 이름을 추가합니다( 여기 ep1).
  2. 명령문을 routing-instance 포함합니다(여기서는 라우팅 인스턴스 mgmt-1포함).

    레거시 gRPC 다이얼아웃 연결(전송 유형 grpc. UDP 전송이 구성된 경우 구성을 커밋할 때 오류가 표시됩니다.

  3. 다음 운영 모드 명령을 사용하여 라우팅 인스턴스 구성을 확인합니다.

    내보내기 파일은 ep1 라우팅 인스턴스를 로 mgmt-1표시합니다.

gRPC 터널 개요

gRPC 터널은 기본 라우팅 인스턴스 또는 구성된 라우팅 인스턴스를 통해 대상에서 TCP 클라이언트로 세션을 다이얼아웃하는 클라이언트-서버 프로토콜 역할을 합니다. 라우팅 인스턴스를 구성하도록 선택하지 않으면 gRPC 터널은 기본 라우팅 인스턴스를 사용합니다.

각 gRPC 터널 세션에 대한 원본 주소를 구성하여 터널 서버에 대한 연결을 다이얼아웃할 수 있습니다. 소스 주소를 구성하지 않으면 커널이 터널 서버에 도달할 수 있는 소스 주소를 선택합니다.

gRPC 터널에 대한 자세한 내용은 https://github.com/openconfig/grpctunnel 를 참조하세요.

gRPC 터널에는 세 가지 주요 엔터티가 있습니다.

  • Target(대상) - 네트워크 디바이스를 나타냅니다. 대상은 gRPC 클라이언트입니다.

  • Tunnel Server(터널 서버) - 구독 및 대상 등록을 관리하는 오프박스 애플리케이션인 소프트웨어 엔티티입니다. 터널 서버는 gRPC 서버입니다.

  • 터널 클라이언트 - 클라이언트 작업을 수행하는 소프트웨어 엔티티입니다. 터널 클라이언트는 터널 서버 내에 독립적일 수 있습니다. 터널 클라이언트는 gRPC 클라이언트이기도 합니다.

gRPC 터널 세션 사용의 이점:

  • 서버 측에서 연결이 설정되므로 일련의 복잡한 방화벽 구성을 극복합니다.

  • 운영 요구 사항 없이 gNMI-gNOI, SSH 또는 NETCONF-SSH와 같은 다양한 TCP 서버 애플리케이션에 액세스할 수 있습니다.

gRPC 터널 아키텍처

gRPC 터널은 TCP 기반 애플리케이션이 gRPC 메시지 내에서 통신하기 위한 일반 인프라입니다.

일반적으로 TCP 클라이언트는 TCP 서버 또는 대상에 대한 연결을 시작합니다. Junos 디바이스는 gNMI-gNOI, SSH 및 NETCONF-SSH와 같은 TCP 서버 애플리케이션을 실행하는 대상 역할을 합니다. 클라이언트가 서버에 연결할 수 없는 경우 일반적인 이유는 다음과 같습니다.

  • 서버는 인바운드 연결을 차단하는 방화벽이 있는 복잡한 방화벽 구성으로 실행됩니다.

  • 서버는 NAT(네트워크 주소 변환)를 구현하는 라우터로 실행됩니다.

  • 서버는 외부 연결을 방해하는 다른 운영 요구 사항에 직면합니다.

TCP 클라이언트가 대상에 연결할 수 없는 경우 gRPC 터널 세션을 구성하여 TCP 클라이언트와 대상 간의 연결을 설정할 수 있습니다. gRPC 터널 세션은 대상이 TCP 클라이언트에 전화를 거는 반대 방향으로 연결을 설정합니다.

gRPC 터널 세션을 사용하기 위해 grpc-tunnel 프로세스가 실행되고 모든 gRPC 터널 관련 구성이 수행되는 대상 측에 터널 클라이언트가 추가됩니다. TCP 클라이언트 측에서 터널 서버가 추가됩니다.

gRPC 터널 세션을 구성하려면 [edit system services] 계층에 구성 문을 포함해야 grpc-tunnel 합니다.

gRPC 터널 보안

gRPC 터널은 디바이스가 구성에 따라 연결을 시작하는 전화 접속 모델입니다. gRPC 터널은 TLS 인증서를 사용하는 보안 gRPC 채널에 있습니다.

예: gRPC 터널 구성

개요

이 섹션에서는 이 예제의 대상을 구성하는 데 필요한 단계를 설명합니다. gRPC 터널이 구성된 Junos 디바이스이기 때문에 목표에 초점을 맞춥니다.

요구 사항

이 예에서 사용되는 소프트웨어 및 하드웨어 구성 요소는 다음과 같습니다.

  • 라우팅 및 스위칭 디바이스용 Junos OS 또는 Junos Evolved 릴리스 22.4 이상

  • 터널 클라이언트로서의 호스트 디바이스 1개

  • 터널 서버로서의 호스트 디바이스 1개

위상수학

그림 1 은 이 예에서 사용된 토폴로지를 보여줍니다.

그림 2: gRPC 터널 설정 gRPC tunnel setup

대상 디바이스의 Junos 구성에 따라 터널 서버에 grpc-tunnel을 다이얼 아웃합니다. 대상 디바이스는 레지스터 스트림 RPC를 통해 터널 서버에 자신을 등록합니다.

클라이언트가 특정 대상에 TCP 세션을 요청하면 터널 서버는 중개자 역할을 하며 터널 서버의 위에 등록된 대상 세션에 연결합니다.

대상이 요청된 대상 유형을 지원하는 경우 디바이스는 터널 스트림 RPC라는 새 터널에 전화를 겁니다. 이렇게 하면 터널 서버를 통해 클라이언트와 대상 간에 gRPC 터널이 설정됩니다. 이제 터널 클라이언트가 대상에서 의도한 TCP 애플리케이션에 액세스할 수 있습니다.

메모:

터널 서버와 네트워크 디바이스 간에는 하나의 레지스터 스트림만 있을 수 있지만 동일한 쌍에 대해서는 여러 개의 터널 스트림이 있을 수 있습니다.

gRPC 터널 구성

CLI 빠른 구성

이 예제를 빠르게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여 넣은 다음 줄 바꿈을 제거하고, 네트워크 구성과 일치하는 데 필요한 세부 정보를 변경한 다음, 명령을 복사하여 [edit] 계층 수준에서 CLI에 붙여넣습니다.

단계별 절차

다음 단계에 따라 대상 디바이스에서 gRPC 터널을 구성합니다.

  1. gRPC-tunnel 아래에 서버를 구성합니다.

    1. 터널 서버의 IPv4 또는 IPv6 주소나 호스트 이름을 구성합니다.

    2. 터널 서버가 수신하는 포트 번호를 구성합니다.

    3. tls 문을 사용하여 자격 증명을 구성합니다.

    4. 액세스하려는 대상 응용 프로그램을 지정합니다. 사용 가능한 옵션은 , 및 입니다ssh gnmi-gnoi. netconf-ssh

  2. (선택 사항) 재시도 간격 (초)을 설정합니다. 터널 서버에 연결할 수 없는 경우 재시도 간격 후에 대상 디바이스가 연결을 다시 시도합니다.

  3. (선택 사항)

    라우팅 인스턴스를 설정합니다. 라우팅 인스턴스를 설정하지 않으면 gRPC 터널은 기본 라우팅 인스턴스를 사용합니다.
  4. (선택 사항)

    소스 주소를 설정합니다. 소스 주소를 설정하지 않으면 커널은 터널 서버에 도달할 수 있는 소스 주소를 선택합니다.
  5. (선택 사항) grpc-tunnel에서 target-string-option을 구성합니다.

    1. pattern 문을 사용하여 지원되는 옵션의 정렬된 목록을 생성합니다.

    2. custom-string 문을 사용하여 문 패턴이 옵션 중 하나로 포함될 custom 때 전송되는 사용자 지정 문자열을 정의합니다.

    3. 패턴에서 두 개 이상의 옵션을 선택한 경우 구분 기호 문을 사용합니다. 기본적으로 (파이프 기호)가 | 사용됩니다.

메모:

최대 10개의 터널 서버를 구성할 수 있습니다.

결과

대상 디바이스에 구성 결과를 표시합니다. 출력에는 이 예에 추가된 기능 구성만 반영됩니다.

변경 내역 테이블

기능 지원은 사용 중인 플랫폼 및 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인합니다.

석방
묘사
22.4R1
Junos OS 릴리스 및 Junos OS Evolved 릴리스 22.4R1부터 JTI는 ACX 시리즈 라우터, MX 시리즈 라우터, PTX 시리즈 라우터 및 QFX 시리즈 스위치에서 원격 gRPC 다이얼아웃 지원을 지원합니다.