Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

주니퍼® 클라우드 네이티브 라우터란?

개요

주니퍼 클라우드 네이티브 라우터(JCNR)는 JCNR-Controller(cRPD 기반 컨트롤 플레인)와 JCNR-vRouter(DPDK 지원 포워딩/데이터 플레인)를 결합한 컨테이너 기반 소프트웨어 솔루션입니다. 클라우드 네이티브 라우터를 사용하면 향상된 포워딩 기능을 갖춘 Junos OS 기반 스위칭 제어를 사용할 수 있습니다.

Kubernetes(K8s) 컴퓨팅 호스트에서 실행되는 JCNR-컨트롤러는 컨트롤 플레인 관리 기능을 제공하며 Linux 커널 또는 DPDK 지원 JCNR-vRouter에서 제공하는 포워딩 기능을 사용합니다.

DPDK는 라이브러리와 드라이버로 구성된 오픈 소스 세트입니다. DPDK는 네트워크 인터페이스 카드(NIC)가 DMA(Direct Memory Access) 패킷을 애플리케이션의 주소 공간으로 직접 보낼 수 있도록 함으로써 빠른 패킷 처리를 지원합니다. 애플리케이션은 패킷에 대한 폴링(poll)을 통해 NIC의 오버헤드를 방지합니다. vRouter는 DPDK와 통합되어 vRouter가 커널 모듈로 실행되는 경우보다 초당 더 많은 패킷을 처리할 수 있습니다.

이 통합 솔루션에서 JCNR-Controller는 gRPC 기반 서비스를 사용하여 메시지를 교환하고 JCNR-vRouter와 통신하여 완벽하게 작동하는 클라우드 네이티브 라우터를 생성합니다. 이와 같은 긴밀한 통신을 통해 다음을 수행할 수 있습니다.

  • 패브릭 및 워크로드 인터페이스에 대해 알아보기

  • 필요에 따라 K8s pod에 대한 DPDK 또는 커널 기반 인터페이스 프로비저닝

  • Pod에 대한 IPv4 및 IPv6 주소 할당 구성

혜택

  • DPDK 기반 JCNR-vRouter를 통한 높은 패킷 포워딩 성능

  • Helm을 사용하여 다목적 컴퓨팅 디바이스에서 손쉽게 구축, 제거 및 업그레이드

  • 소프트웨어의 전체 스위칭 및 포워딩 스택

  • MAC 학습, MAC 노화, MAC 제한 및 L2 통계와 같은 기본 L2 기능

  • 관리 트래픽을 위한 L2 RU(Radio Unit)에 대한 접근성

  • 5G 밀리미터 파 DU 또는 4G DUS와 같은 물리적 DU(Distributed Unit)에 대한 L2 도달 가능성

  • VLAN 태깅

  • 브리지 도메인

  • 트렁크, 액세스 및 하위 인터페이스 포트

  • 이더넷 NIC에서 여러 가상 기능(VF)을 지원합니다.

  • 본드 VF 인터페이스 지원

  • 구성 가능한 L2 액세스 제어 목록(ACL)

  • 패브릭 인터페이스에서 송신 브로드캐스트 및 멀티캐스트 트래픽의 속도 제한

  • 박스 외 소프트웨어 기반 O-RAN(Open Radio Access Network) 지원

  • 컨테이너형 구축을 통한 신속한 스핀업

  • 확장성이 뛰어난 솔루션

그림 1: 주니퍼 클라우드 네이티브 라우터 Components of Juniper Cloud-Native Router 의 구성 요소
Kubernetes

Kubernetes(K8s)는 클러스터된 컴퓨팅 환경에서 컨테이너형 애플리케이션을 실행하기 위한 오케스트레이션 플랫폼입니다. 컨테이너형 애플리케이션의 자동 구축, 확장, 네트워킹 및 관리를 제공합니다.

K8s pod는 하나 이상의 컨테이너로 구성되며 각 pod는 애플리케이션 인스턴스를 나타냅니다. 포드는 K8s가 관리할 수 있는 가장 작은 장치입니다. 포드의 모든 컨테이너는 동일한 네트워크 이름 공간을 공유합니다.

우리는 클라우드 네이티브 라우터가 운영하는 데 필요한 인프라를 오케스트레이션하기 위해 K8s에 의존합니다. 그러나 이 설명서에서는 K8s 설치 또는 관리 지침을 제공하지 않습니다. Kubernetes 설명서는 https://kubernetes.io 참조하십시오. 현재 주니퍼 클라우드 네이티브 라우터는 K8s 클러스터를 독립형 클러스터로 구성해야 합니다. 이는 K8s 마스터 및 작업자 기능이 모두 단일 노드에서 실행된다는 것을 의미합니다.

주니퍼 클라우드 네이티브 라우터 구성 요소

주니퍼 클라우드 네이티브 라우터 컨트롤러

JCNR-Controller(cRPD)는 주니퍼 클라우드 네이티브 라우터 솔루션의 컨트롤 플레인 부분입니다. 컨트롤러를 사용하여 클라우드 네이티브 라우터의 다른 요소와 통신합니다. 구축 시 컨트롤러에 설정한 구성, 정책 및 규칙은 구현을 위해 주로 JCNR-vRouter-agent 및 JCNR-vRouter와 같은 다른 구성 요소와 전달됩니다.

예를 들어, 액세스 제어 목록(ACL)은 JCNR-Controller에서 지원되어 거부 규칙을 통해 L2 액세스 목록을 구성합니다. JCNR-controller는 JCNR-vRouter 에이전트를 통해 구성 정보를 JCNR-vRouter로 보냅니다.

주니퍼 클라우드 네이티브 라우터 컨트롤러 기능:

  • NETCONF 프로토콜을 사용하여 외부 자동화 및 오케스트레이션 시스템에서 액세스할 수 있는 Junos OS 호환 CLI 구성 및 운영 명령을 제공합니다.

  • JCNR-vRouter를 고속 포워딩 플레인으로 지원합니다. 이를 통해 DPDK 프레임워크를 사용하여 구축된 애플리케이션은 커널을 통과하지 않고도 애플리케이션 및 JCNR-vRouter로 직접 패킷을 송수신할 수 있습니다.

  • DPDK 지원 JCNR-vRouter가 관리하는 물리적 기능(PF), 가상 기능(VF), virtio, 액세스 및 트렁크 인터페이스에 대한 VLAN 태깅 하위 인터페이스 구성 지원.

  • 브리지 도메인 구성 지원

주니퍼 클라우드 네이티브 라우터-vRouter

JCNR-vRouter는 Linux 커널의 Linux 브리지 또는 OVS(Open vSwitch) 모듈의 대안입니다. JCNR-vRouter 컨테이너가 있는 포드에도 JCNR-vRouter 에이전트 컨테이너가 있습니다. JCNR-vRouter의 기능은 다음과 같습니다.

  • L2 포워딩 수행

  • L2 속도 제한 수행

  • DPDK 기반 포워딩 사용 가능

  • L2 ACL(Access Control List) 적용

JCNR-CNI(JCNR-Container Network Interface)

JCNR-CNI는 DPDK 애플리케이션 Pod 및 클라우드 네이티브 라우터 컨트롤러와 함께 JCNR-vRouter 에이전트 및 JCNR-vRouter 에이전트 DPDK와 같이 주니퍼가 개발한 Pod를 처리하기 위해 주니퍼가 개발한 새로운 CNI입니다. JCNR-CNI는 애플리케이션 pod에 대한 네트워크 인터페이스를 프로비저닝하기 위해 각 노드에 설치된 kubernetes CNI 플러그인입니다. pod를 생성하는 동안 K8s는 Pod 인터페이스 생성 및 구성을 JCNR-CNI에 위임합니다. JCNR-CNI는 JCNR 컨트롤 플레인 및 JCNR-vrouter와 상호 작용하여 DPDK 인터페이스를 설정합니다. Pod가 제거되면 JCNR-CNI가 호출되어 K8s 및 클라우드 네이티브 라우터 구성 요소에서 Pod 인터페이스, 구성 및 관련 상태를 프로비저닝 해제합니다. JCNR-CNI는 Multus CNI와 연동하여 Pod 인터페이스를 추가 및 구성합니다.

JCNR-CNI는 다음과 같은 기능을 제공합니다.

  • IP 주소 할당, MAC 주소 할당, K8s 클러스터의 Pod 및 호스트 간 인터페이스 설정 등 K8s 포드에서 네트워킹 작업 관리

  • L2 ACL을 적용합니다. 정책은 데이터 플레인에 적용하기 위해 JCNR-vRouter로 전송됩니다.

  • 추가 및 삭제와 같은 Pod 이벤트에서 작동

  • cRPD 구성 생성

Syslog-NG

주니퍼 클라우드 네이티브 라우터는 syslog-ng Pod를 사용하여 cRPD 및 vRouter에서 이벤트 로그를 수집하고 로그를 JSON 기반 알림으로 변환합니다. 알림은 파일에 로깅되며 해당 파일에서 액세스할 수 있습니다.