Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

컨테이너형 RPD란?

Junos® cRPD(Containerized Routing Protocol Process)는 Linux 컨테이너화된 환경 내에서 인스턴스화된 Junos OS 라우팅 기능의 한 인스턴스입니다.

cRPD는 네트워크에 클라우드 네이티브 라우팅을 제공합니다. cRPD 소프트웨어를 Docker 컨테이너 이미지로 패키징합니다. cRPD는 그림 3과 같이 디바이스에서 IS-IS, OSPF 및 BGP를 사용하여 라우터 기능을 지원합니다.

cRPD의 이점

  • 배포 시간 단축 - 컨테이너를 사용하여 서비스 부팅 시간을 몇 분에서 몇 초로 줄임으로써 배포 속도를 높입니다.

  • 원활한 업그레이드 - 서비스 중단을 최소화하면서 소프트웨어를 업그레이드합니다.

  • 유연성—대상 규모를 지원하기 위해 최소 리소스 요구 사항으로 여러 cRPD 인스턴스를 시작합니다.

  • 안정성—Linux에서 안정적인 라우팅 소프트웨어를 제공합니다.

Linux의 rpd 개요

Junos 라우팅 프로토콜 프로세스(rpd)는 라우팅 엔진 소프트웨어 내의 소프트웨어 프로세스입니다. rpd는 디바이스에서 실행되는 라우팅 프로토콜을 제어합니다.

소프트웨어 프로세스로서 rpd는 다음과 같습니다.

  • Linux 기반 라우팅 프로토콜 스택의 중심에서 운영.

  • 모든 라우팅 프로토콜에서 학습한 라우팅 정보를 통합하는 하나 이상의 라우팅 테이블을 유지합니다.

  • 모든 프로토콜 메시지, 라우팅 테이블 업데이트를 관리하고 라우팅 정책을 구현합니다.

그림 1: Linux 아키텍처의 Network software architecture diagram: CLI for user interaction; MGD manages configuration; CFGDB stores config data; RPD handles routing protocols; external apps use gRPC; FIB Agent links RPD to kernel; BFD ensures link health; PPMD manages processes; kernel interaction via netdev and netlink. RPD

rpd 애플리케이션을 사용하여 수행할 수 있는 작업은 다음과 같습니다.

  • 소프트웨어 컨테이너에서 실행합니다. cRPD 애플리케이션은 cRR(Containerized Route Reflector)과 같은 라우팅 솔루션을 지원합니다. cRR 서비스는 독립적으로 작동해야 합니다.

  • 관리를 위한 mgd 프로세스, 구성을 위한 CLI, 링크의 활성화를 감지하기 위한 BFD, PPMD(Periodic Packet Management Process) 및 업데이트 프로토콜 세션과 상호 작용합니다.

  • 다양한 라우팅 프로토콜을 사용하여 경로 상태를 학습합니다.

  • 라우팅 정보베이스(RIB)에 전체 라우팅 정보 집합을 유지 관리하며, 라우팅 테이블로도 알려져 있습니다.

  • 구성된 모든 라우팅 프로토콜을 시작하고 모든 라우팅 메시지를 처리합니다. rpd는 라우터가 모든 라우팅 프로토콜에서 학습하는 라우팅 정보를 통합하는 하나 이상의 라우팅 테이블을 유지합니다.

  • 라우팅 프로토콜과 라우팅 테이블 사이를 이동하는 라우팅 정보를 제어하는 데 사용하는 라우팅 정책을 구현합니다. 라우팅 정책 사용하여 정보 전송을 필터링 및 제한할 수 있을 뿐만 아니라 특정 경로와 관련된 속성을 설정할 수 있습니다.

  • 로컬 선택 기준을 충족하는 경로를 포워딩 테이블로 알려진 FIB(Forwarding Information Base)에 다운로드합니다.

  • 라우팅 정보로부터 네트워크 대상에 대한 활성 경로를 결정하고 이러한 경로를 라우팅 엔진의 포워딩 테이블에 프로그래밍합니다.

  • Netlink 메시지를 통해 이름, 주소, 최대 전송 단위(MTU) 설정 및 링크 상태와 같은 인터페이스 속성을 알아봅니다.

Docker 개요

cRPD는 Docker를 지원하는 모든 Linux 배포 시스템에서 실행됩니다.

Docker는 모든 Linux 서버에서 실행할 수 있는 가상 컨테이너를 생성, 관리 및 디스어셈블하는 데 사용할 수 있는 오픈 소스 소프트웨어 플랫폼입니다. Docker는 컨테이너에 애플리케이션을 패키징합니다. 모든 Linux OS에서 이러한 컨테이너를 포팅하고 사용할 수 있습니다. 컨테이너는 애플리케이션에 대한 OS 수준 가상화를 제공합니다.

컨테이너는 VM(가상 머신)이 아닙니다. 전용 CPU, 메모리, I/O 및 네트워킹으로 환경을 격리합니다.

컨테이너의 이점

  • 격리를 통한 효율성 향상 - 컨테이너는 그룹 및 네임스페이스 격리와 같은 호스트 OS Linux 커널 기능을 사용하여 여러 컨테이너가 동일한 Linux 호스트 OS에서 격리된 상태로 실행될 수 있도록 합니다. 컨테이너의 애플리케이션은 Linux 호스트 OS의 커널을 공유하기 때문에 메모리가 적습니다.

  • 스핀업(부팅) 속도 향상: 컨테이너는 VM에 비해 부팅 시간이 짧습니다. 따라서 컨테이너를 사용하여 애플리케이션을 빠르고 효율적으로 설치, 실행 및 업그레이드할 수 있습니다.

그림 2는 일반적인 Docker 컨테이너 환경에 대한 개요를 제공합니다.

그림 2: Docker 컨테이너 환경 Docker Container Environment

cRPD는 어떻게 작동합니까?

Docker를 시작하면 기본 브리지 네트워크( 브리지라고도 함)가 자동으로 생성되고 달리 지정되지 않는 한 컨테이너가 네트워크에 연결됩니다. 이 브리지 네트워크를 사용하면 동적 포트를 할당할 필요 없이 동일한 호스트에서 여러 컨테이너를 실행할 수 있습니다.

브리지를 사용하면 동일한 브리지 네트워크에 연결된 컨테이너가 통신할 수 있으며 브리지 네트워크에 연결되지 않은 컨테이너로부터 격리할 수 있습니다.

브리지 모드에서:

  • 컨테이너는 브리지를 통해 호스트 네트워크 스택에 연결됩니다.

  • 여러 컨테이너가 동일한 브리지에 연결되고 서로 통신합니다.

  • 브리지는 호스트 OS 네트워크 인터페이스에 연결하여 외부 통신을 가능하게 합니다.

그림 3: cRPD 개요 및 기능 Layered architecture diagram showing software stack with DevOps tools and customer apps at the top, networking protocols in the middle, Docker and customer agents below, Linux as the core, and deployment environments at the bottom.

컨테이너를 사용하여 RPD 애플리케이션을 배포할 때 FIB는 기본 OS 커널에서 학습한 네트워크 인터페이스가 Linux 컨테이너의 RPD로 전송되도록 노출합니다. RPD는 모든 네트워크 인터페이스에 대해 학습하고 모든 네트워크 인터페이스에 대한 경로 상태를 추가합니다. 추가 Docker 컨테이너가 시스템에서 실행 중인 경우 호스트에서 직접 실행되는 모든 컨테이너와 애플리케이션은 동일한 네트워크 인터페이스 및 상태 집합에 액세스할 수 있습니다. cRPD는 로컬 경로 선택 기준을 충족하는 경로를 FIB로 전달합니다.

루트 리플렉터

cRPD를 구축하여 BGP 경로 리플렉션과 같은 컨트롤 플레인 전용 서비스를 제공할 수 있습니다.

cRR은 서로 다른 네트워크 내 서버 하드웨어에서 호스팅됩니다. 애플리케이션은 경로 리플렉션 서비스를 통해 학습한 연결성 정보를 사용합니다. 경로 리플렉션 네트워킹 서비스는 애플리케이션을 호스팅하는 동일한 하드웨어 또는 컨트롤러에 의존하지 않고 독립적으로 작동해야 합니다.

라우팅 엔진 커널

라우팅 엔진 소프트웨어는 라우터 기능을 제어하는 여러 소프트웨어 프로세스와 모든 프로세스 간의 통신을 가능하게 하는 커널로 구성됩니다.

라우팅 엔진 커널은 다음을 제공합니다.

  • 라우팅 테이블과 라우팅 엔진의 포워딩 테이블 간의 링크입니다.

  • 패킷 포워딩 엔진과의 통신. 커널은 패킷 포워딩 엔진의 포워딩 테이블 사본을 라우팅 엔진의 기본 사본과 동기화합니다.

호스트 Linux 커널은 FIB를 저장합니다. 패킷 전달을 위한 모든 경로와 다음 홉 정보가 포함됩니다.

rpd는 Linux에서 기본적으로 실행되며 Netlink를 사용하여 Linux 커널과 프로그램 경로 정보를 공유합니다. Netlink는 커널과 cRPD와 같은 사용자 공간 프로세스 간의 통신을 용이하게 합니다.

Netlink 메시지를 사용하여 다음을 수행할 수 있습니다.

  • Linux 커널에서 rpd에 의해 생성된 FIB 상태를 프로그래밍하거나 설치합니다.

  • 구성 및 관리를 위해 mgd 및 CLI와 상호 작용합니다.

  • ppmd를 사용하여 프로토콜 세션을 유지합니다.

  • BFD를 사용하여 활력을 감지합니다.

cRPD에서 지원되는 기능

cRPD는 다음 기능을 지원합니다.

  • Linux 컨테이너의 BGP 경로 리플렉터(LXC)

  • BGP add-path, multipath, GR(Graceful Restart) Helper 모드

  • BGP, OSPF, OSPFv3, IS-IS, 정적 프로토콜

  • BMP, BFD 및 Linux FIB

  • ECMP(Equal-cost multipath)

  • 프로그래밍 가능한 RPD(PRPD)를 위한 Juniper Extension Toolkit(JET)

  • Junos OS CLI

  • 개방형 인터페이스, NETCONF 및 SSH를 사용한 관리

  • IPv4 및 IPv6 라우팅

  • MPLS 라우팅

라이센스

cRPD 소프트웨어 기능을 활성화하려면 라이선스가 필요합니다. cRPD 라이선스에 대한 자세한 내용은 cRPD에서 지원되는 기능, cRPD용 Flex 라이선스cRPD 라이선스 관리를 참조하십시오.