이 페이지의
주니퍼® 클라우드 네이티브 라우터란?
개요
주니퍼 클라우드 네이티브 라우터(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) 지원
-
컨테이너형 구축을 통한 신속한 스핀업
-
확장성이 뛰어난 솔루션
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 태깅 하위 인터페이스 구성 지원.
-
브리지 도메인 구성 지원
JCNR-vRouter는 Linux 커널의 Linux 브리지 또는 OVS(Open vSwitch) 모듈의 대안입니다. JCNR-vRouter 컨테이너가 있는 포드에도 JCNR-vRouter 에이전트 컨테이너가 있습니다. JCNR-vRouter의 기능은 다음과 같습니다.
-
L2 포워딩 수행
-
L2 속도 제한 수행
-
DPDK 기반 포워딩 사용 가능
-
L2 ACL(Access Control List) 적용
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 Pod를 사용하여 cRPD 및 vRouter에서 이벤트 로그를 수집하고 로그를 JSON 기반 알림으로 변환합니다. 알림은 파일에 로깅되며 해당 파일에서 액세스할 수 있습니다.