컨테이너형 RPD란 무엇입니까?
Junos® 컨테이너화된 라우팅 프로토콜 프로세스(cRPD)는 Linux 컨테이너화된 환경 내에서 인스턴스화된 Junos OS 라우팅 기능의 인스턴스입니다. cRPD 네트워크에 클라우드 네이티브 라우팅을 제공합니다. 주니퍼는 cRPD 소프트웨어를 Docker 컨테이너 이미지로 패키지합니다. cRPD 그림 3과 같이 디바이스에서 IS-IS, OSPF 및 BGP를 사용하여 라우터 기능을 지원합니다.
cRPD 이점
-
구축 시간 단축 - 컨테이너를 사용하여 서비스의 부팅 시간을 몇 분에서 몇 초로 단축하여 구축 속도를 높이십시오.
-
원활한 업그레이드 — 최소한의 서비스 중단으로 소프트웨어를 업그레이드하십시오.
-
유연성 - 최소 리소스 요구 사항으로 여러 cRPD 인스턴스를 실행하여 목표 규모를 지원합니다.
-
안정성 - Linux에서 안정적인 라우팅 소프트웨어를 제공합니다.
Linux의 rpd 개요
Junos 라우팅 프로토콜 프로세스(rpd)는 라우팅 엔진 소프트웨어 내의 소프트웨어 프로세스입니다. rpd는 디바이스에서 실행되는 라우팅 프로토콜을 제어합니다.
소프트웨어 프로세스인 rpd:
-
Linux 기반 라우팅 프로토콜 스택의 중심에서 작동합니다.
-
하나 이상의 라우팅 테이블을 유지하여 모든 라우팅 프로토콜에서 학습한 라우팅 정보를 통합합니다.
-
모든 프로토콜 메시지를 관리하고, 업데이트를 라우팅 테이블, 라우팅 정책을 구현합니다.

rpd 애플리케이션을 사용하여 다음을 수행할 수 있습니다.
-
소프트웨어 컨테이너에서 실행됩니다. cRPD 애플리케이션은 컨테이너화된 경로 리플렉터(cRR)와 같은 라우팅 솔루션을 지원합니다. cRR 서비스는 독립적으로 작동해야 합니다.
-
관리를 위한 mgd 프로세스, 구성을 위한 CLI, 링크의 생계를 감지하는 BFD, PPMD(Periodic Packet Management Process) 및 업데이트 프로토콜 세션과 상호 작용합니다.
-
다양한 라우팅 프로토콜을 사용하여 경로 상태를 학습합니다.
-
라우팅 테이블라고도 하는 라우팅 정보 베이스(RIB)에서 전체 라우팅 정보 집합을 유지합니다.
-
구성된 모든 라우팅 프로토콜을 시작하고 모든 라우팅 메시지를 처리합니다. rpd는 하나 이상의 라우팅 테이블을 유지하여 라우터가 모든 라우팅 프로토콜에서 학습한 라우팅 정보를 통합합니다.
-
라우팅 프로토콜과 라우팅 테이블 간에 이동하는 라우팅 정보를 제어하는 라우팅 정책 구현합니다. 라우팅 정책 사용하여 정보 전송을 필터링 및 제한하고 특정 경로와 관련된 속성을 설정할 수 있습니다.
-
로컬 선택 기준을 충족하는 경로를 포워딩 테이블라고도 하는 FIB(Forwarding Information Base)로 다운로드합니다.
-
라우팅 정보에서 네트워크 목적지에 대한 활성 경로를 결정하고 이러한 경로를 라우팅 엔진 포워딩 테이블 프로그래밍합니다.
-
이름, 주소, 최대 전송 단위(MTU) 설정, Netlink 메시지를 통한 링크 상태와 같은 인터페이스 속성을 학습합니다.
Docker 개요
cRPD Docker를 지원하는 모든 Linux 배포 시스템에서 실행됩니다.
Docker는 모든 Linux 서버에서 실행할 수 있는 가상 컨테이너를 생성, 관리 및 디스어셈블하는 데 사용할 수 있는 오픈 소스 소프트웨어 플랫폼입니다. Docker는 애플리케이션을 컨테이너로 패키지합니다. 모든 Linux OS에서 이러한 컨테이너를 포트하고 사용할 수 있습니다. 컨테이너는 애플리케이션에 대한 OS 수준 가상화를 제공합니다.
컨테이너는 가상 머신(VM)으로 작동하지 않습니다. 전용 CPU, 메모리, I/O 및 네트워킹 기능을 제공하여 가상 환경을 분리하는 것이 아니라
컨테이너의 이점
-
격리를 통한 효율성 향상 - 컨테이너는 그룹 및 네임스페이스 분리와 같은 호스트 OS Linux 커널 기능을 사용하여 동일한 Linux 호스트 OS에서 여러 컨테이너를 격리하여 실행할 수 있도록 합니다. 컨테이너에 있는 애플리케이션은 Linux 호스트 OS의 커널을 공유하므로 메모리가 적습니다.
-
스핀업(부팅) 속도 증가 - 컨테이너는 VM에 비해 부팅하는 데 걸리는 시간을 줄입니다. 따라서 컨테이너를 사용하여 애플리케이션을 빠르고 효율적으로 설치, 실행 및 업그레이드할 수 있습니다.
그림 2 는 일반적인 Docker 컨테이너 환경에 대한 개요를 제공합니다.

cRPD 어떻게 작동합니까?
Docker를 시작할 때 기본 브리지 네트워크( 브리지라고도 함)가 자동으로 생성되고 별도의 지정이 없는 한 컨테이너가 이를 연결합니다. 이 브리지 네트워크를 사용하여 동적 포트를 할당할 필요 없이 동일한 호스트에서 여러 컨테이너를 실행할 수 있습니다.
브리지를 사용하면 동일한 브리지 네트워크에 연결된 컨테이너가 통신할 수 있는 동시에 브리지 네트워크에 연결되어 있지 않은 컨테이너로부터 격리할 수 있습니다.
브리지 모드에서:
-
컨테이너는 브리지를 통해 호스트 네트워크 스택에 연결됩니다.
-
여러 컨테이너가 동일한 브리지에 연결되고 서로 통신합니다.
-
브리지는 호스트 OS 네트워크 인터페이스에 연결할 때 외부 통신을 지원합니다.

컨테이너를 사용하여 RPD 애플리케이션을 구축할 때 FIB는 기본 OS 커널에서 학습한 네트워크 인터페이스가 Linux 컨테이너의 RPD로 전송되는 것을 노출합니다. RPD는 모든 네트워크 인터페이스에 대해 학습하고 모든 네트워크 인터페이스에 대한 경로 상태를 추가합니다. 시스템에서 추가 Docker 컨테이너가 실행 중인 경우 호스트에서 직접 실행되는 모든 컨테이너와 애플리케이션이 동일한 네트워크 인터페이스 및 상태에 액세스할 수 있습니다. cRPD 로컬 경로 선택 기준을 충족하는 경로를 FIB로 전달합니다.
경로 리플렉터
cRPD 구축하여 BGP 경로 리플렉션과 같은 컨트롤 플레인 전용 서비스를 제공할 수 있습니다.
cRR은 다른 온네트워크 서버 하드웨어에서 호스팅됩니다. 애플리케이션은 경로 리플렉션 서비스를 사용하여 학습된 연결성 정보를 사용합니다. 경로 리플렉션 네트워킹 서비스는 애플리케이션을 호스팅하는 동일한 하드웨어 또는 컨트롤러에 의존하지 않고 독립적으로 작동해야 합니다.
라우팅 엔진 커널
라우팅 엔진 소프트웨어는 라우터 기능을 제어하는 여러 소프트웨어 프로세스와 모든 프로세스 간의 통신을 가능하게 하는 커널로 구성됩니다.
라우팅 엔진 커널은 다음을 제공합니다.
-
라우팅 테이블과 라우팅 엔진 포워딩 테이블 연결합니다.
-
패킷 전달 엔진 통신. 커널은 패킷 전달 엔진 포워딩 테이블 복사본을 라우팅 엔진 기본 카피와 동기화합니다.
호스트 Linux 커널은 FIB를 저장하며, 여기서 모든 경로와 다음 홉 정보가 패킷 전달을 위해 저장됩니다.
rpd는 Linux에서 기본적으로 실행되며 Netlink를 사용하여 Linux 커널과 프로그램 경로 정보를 공유합니다. Netlink는 커널과 사용자 공간 프로세스 간의 통신과 다양한 사용자 공간 프로세스 간의 통신에 사용되는 Linux 커널 인터페이스입니다. cRPD 사용자 공간 프로세스의 예입니다.
다음을 위해 Netlink 메시지를 사용할 수 있습니다.
-
Linux 커널에서 rpd에 의해 생성된 FIB 상태를 프로그래밍하거나 설치합니다.
-
구성 및 관리를 위해 mgd 및 CLI와 상호 작용합니다.
-
ppmd를 사용하여 프로토콜 세션을 유지합니다.
-
BFD를 사용하여 생계를 감지합니다.
cRPD 지원되는 기능
cRPD 다음 기능을 지원합니다.
-
Linux Containers(LXC)의 BGP 경로 리플렉터
-
BGP 추가 경로, multipath, Graceful Restart Helper 모드
-
BGP, OSPF, OSPFv3, IS-IS 및 정적 프로토콜
-
BMP, BFD 및 Linux FIB
-
ECMP(Equal-cost multipath)
-
프로그래밍 가능한 RPD(PRPD)용 JUNIPER JET(Extension Toolkit)
-
Junos OS CLI
-
개방형 인터페이스 NETCONF 및 SSH를 사용한 관리
-
IPv4 및 IPv6 라우팅
-
MPLS 라우팅
라이센스
소프트웨어 기능을 활성화하려면 라이선스가 cRPD. cRPD 라이선스에 대한 자세한 내용은 cRPD 지원되는 기능, cRPD Flex 라이선스 cRPD 관리를 참조하십시오.