Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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

요약 주니퍼 클라우드 네이티브 라우터 솔루션은 JCNR 컨트롤러, JCNR vRouter 및 JCNR-CNI를 비롯한 여러 구성 요소로 구성됩니다. 이 주제는 주니퍼 클라우드 네이티브 라우터의 구성 요소에 대한 간략한 개요를 제공합니다.

JCNR 구성 요소

주니퍼 클라우드 네이티브 라우터는 주로 JCNR 컨트롤러 컨트롤 플레인, JCNR vRouter DPDK 포워딩 플레인 및 Kubernetes 통합을 위한 JCNR-CNI의 세 가지 구성 요소를 기반으로 합니다. 모든 JCNR 구성 요소는 컨테이너로 배포됩니다.

그림 1은 Kubernetes 클러스터 내부의 주니퍼 클라우드 네이티브 라우터 구성 요소를 보여줍니다

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

JCNR 컨트롤러

JCNR 컨트롤러는 Junos cRPD(Containerized Routing Protocol Daemon)를 실행하는 클라우드 네이티브 라우터 솔루션의 컨트롤 플레인입니다. 스테이트풀셋으로 구현됩니다. 컨트롤러는 클라우드 네이티브 라우터의 다른 요소와 통신합니다. 구축 시 컨트롤러에 설정한 구성, 정책 및 규칙은 구현을 위해 다른 구성 요소(주로 JCNR vRouter)에 전달됩니다.

예를 들어, 거부 규칙으로 L2 액세스 목록을 구성하기 위해 컨트롤러에서 방화벽 필터(ACL)가 지원됩니다. 컨트롤러는 vRouter 에이전트를 통해 구성 정보를 JCNR vRouter로 보냅니다.

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

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

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

  • DPDK 지원 vRouter에서 관리하는 물리적 기능(PF), 가상 기능(VF), virtio, 액세스 및 트렁크 인터페이스에서 VLAN 태그가 지정된 하위 인터페이스의 구성을 지원합니다.

  • 브리지 도메인, VLAN 및 가상 스위치의 구성을 지원합니다.

  • 주로 BGP, IS-IS, OSPF와 함께 라우팅 프로토콜을 사용하여 코어 네트워크에 대한 DPDK 애플리케이션 연결성을 보급합니다.

  • 클러스터 내부 및 외부에 포드의 L3 네트워크 연결성 정보를 배포합니다.

  • L2 방화벽에 대한 구성을 유지합니다.

  • vRouter-agent를 통해 vRouter에 구성 정보를 전달합니다.

  • 라이선스 키 정보를 저장합니다.

  • 릴리스 23.2부터 BGP 스피커로 작동하여 다른 BGP 스피커와 피어 관계를 구축하여 라우팅 정보를 교환합니다.

구성 옵션

배포 중에 JCNR 구성을 사용자 정의할 수 있습니다 .

구축 후에는 PyEZ와 함께 NETCONF 프로토콜을 사용하여 컨트롤러를 구성하는 것이 좋습니다. NETCONF를 통해 SSH 또는 연결할 수 있습니다. 마지막으로, Kubernetes 명령을 사용하여 JCNR 컨트롤러 CLI에 액세스하여 클라우드 네이티브 라우터를 구성할 수도 있습니다.

JCNR v라우터

JCNR vRouter는 고성능 데이터 경로 구성 요소입니다. Linux 커널에서 Linux 브리지 또는 OVS(Open vSwitch) 모듈의 대안입니다. 사용자 공간 프로세스로 실행되며 DPDK(Data Plane Development Kit) 라이브러리와 통합됩니다. vRouter 포드는 vrouter-agent, vrouter-agent-dpdk 및 vrouter-telemetry-exporter의 세 가지 컨테이너로 구성됩니다.

JCNR vRouter 기능:

  • 레이어 3 가상 사설망으로 라우팅을 수행합니다.

  • L2 전달을 수행합니다.

  • 고성능 DPDK 기반 포워딩을 지원합니다.

vRouter의 이점:
  • DPDK를 JCNR-vRouter에 통합.

  • 포워딩 플레인은 커널 기반 포워딩보다 더 빠른 포워딩 기능을 제공합니다.

  • 포워딩 플레인은 커널 기반 포워딩보다 확장성이 뛰어납니다.

  • 다음 NIC에 대한 지원:

    • Intel E810(Columbiaville) 제품군

    • Intel XL710(Fortville) 제품군

JCNR-CNI

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

JCNR-CNI 기능:

  • 다음과 같은 Kubernetes Pod의 네트워킹 작업을 관리합니다.

    • IP 주소 할당.

    • MAC 주소 할당.

    • Kubernetes 클러스터에서 Pod와 vRouter 간에 태그 처리되지 않은 액세스 및 기타 인터페이스를 설정합니다.

    • VLAN 하위 인터페이스 생성.

    • L3 인터페이스를 생성합니다.

  • 추가 및 삭제와 같은 Pod 이벤트에 대한 작업을 수행합니다.

  • cRPD 구성을 생성합니다.

JCNR-CNI는 Pod에서 사용하는 보조 인터페이스를 관리합니다. YAML 형식의 NAD(Network Attachment Definition) 파일의 구성을 기반으로 필요한 인터페이스를 생성합니다. JCNR-CNI는 최종 위치 또는 연결 지점으로 전달하기 전에 일부 인터페이스를 구성하고 다음과 같은 추가 인터페이스 구성 옵션을 위한 API를 제공합니다.

  • 다양한 종류의 Pod 인터페이스를 인스턴스화합니다.

  • DPDK 데이터 플레인을 활용하는 포드를 위한 virtio 기반 고성능 인터페이스를 생성합니다.

  • 리눅스 커널 네트워킹 스택을 사용하여 파드가 통신할 수 있도록 하는 veth 쌍 인터페이스를 생성한다.

  • 액세스 또는 트렁크 모드에서 포드 인터페이스 생성.

  • 포드 인터페이스를 브리지 도메인 및 가상 라우터에 연결합니다.

  • 동적 IP 주소 할당을 위한 IPAM 플러그 인을 지원합니다.

  • virtio 인터페이스에 고유한 소켓 인터페이스 할당.

  • IP 주소 할당 및 Kubernetes 클러스터에서 포드와 vRouter 간의 인터페이스 설정과 같은 포드의 네트워킹 작업 관리.

  • pod-to-pod 및 pod-to-network를 포함하여 Pod 인터페이스를 네트워크에 연결합니다.

  • 패킷 처리 오프로드를 위해 vRouter와 통합.

JCNR-CNI의 이점:

  • 향상된 포드 인터페이스 관리

  • 사용자 정의 가능한 관리 및 모니터링 기능

  • 컨트롤러 및 vRouter 구성 요소와의 긴밀한 통합을 통한 성능 향상

Pod 생성에서 JCNR-CNI의 역할:

클라우드 네이티브 라우터에서 사용할 포드를 생성하면 kubelet 으로 알려진 Kubernetes 구성 요소가 Multus CNI를 호출하여 포드 네트워킹 및 인터페이스를 설정합니다. Multus는 pod.yaml 파일의 annotations 섹션을 읽어 NAD를 찾습니다. NAD가 JCNR-CNI를 CNI 플러그인으로 가리키는 경우 Multus는 JCNR-CNI를 호출하여 Pod 인터페이스를 설정합니다. JCNR-CNI는 NAD에 지정된 대로 인터페이스를 생성합니다. 그런 다음 JCNR-CNI는 구성을 생성하여 컨트롤러에 푸시합니다.

시스템 로그-NG

주니퍼 클라우드 네이티브 라우터는 syslog-ng 포드를 사용하여 cRPD 및 vRouter에서 이벤트 로그를 수집하고 로그를 JSON 기반 알림으로 변환합니다. 알림은 파일에 기록됩니다. Syslog-ng는 데몬 세트로 실행됩니다.