JCNR로 서비스 체인(cSRX) 구축
이 섹션을 읽고 클라우드 네이티브 라우터로 보안 서비스 인스턴스(cSRX)를 사용자 지정하고 구축하는 방법을 알아보세요.
주니퍼 클라우드 네이티브 라우터(JCNR)를 주니퍼의 컨테이너형 SRX(cSRX) 플랫폼과 통합하여 IPsec과 같은 보안 서비스를 제공할 수 있습니다. 호스트 기반 서비스 체이닝을 사용하여 클라우드 네이티브 라우터는 동일한 Kubernetes 클러스터의 보안 서비스 인스턴스(cSRX)와 연결됩니다. cSRX 인스턴스는 L3 모드에서 포드 서비스로 실행됩니다. cSRX 인스턴스는 Helm 차트를 통해 사용자 지정 및 구축됩니다.
클라우드 네이티브 라우터를 설치할 때 또는 JCNR을 설치한 후에 주니퍼 cSRX를 구축할 수 있습니다. 사용 가능한 패키지에 대한 설명은 클라우드 네이티브 라우터 소프트웨어 다운로드 패키지를 참조하십시오.
기존 클라우드 네이티브 라우터 설치에 cSRX 설치
이 절차에 따라 기존 클라우드 네이티브 라우터 설치에 cSRX 인스턴스를 설치합니다. 이 절차를 시작하기 전에 모든 클라우드 네이티브 라우터 구성 요소가 실행 중인지 확인하십시오.
클라우드 네이티브 라우터 설치 중 cSRX 설치
cSRX 라이선스 적용 및 cSRX 구성
다음 절차에 따라 cSRX 라이선스를 적용하고 주니퍼 cSRX를 구성하십시오.
다음 단계에서는 cSRX와 클라우드 네이티브 라우터를 함께 설치하는 경우 Juniper_Cloud_Native_Router_CSRX_<release> 디렉터리에 있고, 기존 클라우드 네이티브 라우터 설치에 cSRX를 설치하는 경우 junos_csrx_<release> 디렉터리에 있다고 가정합니다.
cSRX Helm 차트 사용자 지정
cSRX 서비스 체이닝 인스턴스는 독립형 Helm 차트 또는 JCNR과 결합된 Helm 차트 중 하나인 Helm 차트를 통해 구축됩니다. 배포는 두 가지 필수 구성 요소로 구성됩니다.
-
csrx-init: 기본 cSRX 애플리케이션에 대한 구성을 준비하는 init 컨테이너입니다. 파일에서 필요한 정보를
values.yaml
추출하여 처리하고 cSRX에 대한 구성 데이터를 생성합니다. 이를 통해 메인 cSRX 애플리케이션이 유효한 최신 구성으로 시작됩니다. -
csrx: csrx는 주요 애플리케이션 컨테이너이며 cSRX 구축의 핵심 구성 요소입니다. 컨테이너에서 제공하는
csrx-init
구성에 의존하여 올바르게 작동합니다.
파일에서 다양한 구성 매개 변수를 지정하여 cSRX 구축을 values.yaml
사용자 정의할 수 있습니다. 주요 구성 옵션은 다음과 같습니다.
-
interfaceType: JCNR에 연결하기 위한 cSRX의 인터페이스 유형입니다. 로만 설정해야 합니다
vhost
. -
interfaceConfigs: 인터페이스 IP 주소, 게이트웨이 주소 및 선택적으로 경로를 정의하는 배열입니다. 인터페이스 IP는 배열의
ipSecTunnelConfigs
요소와localAddress
일치해야 합니다. 경로에는 암호 해독된 트래픽을 클라우드 네이티브 라우터 및 IPSec 게이트웨이에 대한 연결성 경로로 조정하기 위한 접두사가 포함되어야 합니다. -
ipSecTunnelConfigs: ike-phase1, 제안, 정책 및 게이트웨이 구성과 같은 IPsec 구성 세부 정보를 정의하는 어레이입니다. 트래픽 선택기에는 암호화될 것으로 예상되는 트래픽이 포함되어야 합니다.
-
jcnr_config: 클라우드 네이티브 라우터에서 cSRX로 트래픽을 조정하고 원격 IPsec 게이트웨이에서 cSRX로 IPsec 트래픽을 조정하여 보안 서비스 체인을 적용하기 위해 클라우드 네이티브 라우터에서 구성할 경로를 정의하는 어레이입니다.
다음은 독립형 cSRX 구축을 위한 기본 values.yaml입니다.
# Default values for cSRX. # This is a YAML-formatted file. # Declare variables to be passed into your templates. common: registry: enterprise-hub.juniper.net/ repository: jcnr-container-prod/ csrxInit: image: csrx-init tag: f4tgt33 imagePullPolicy: IfNotPresent resources: #limits: # memory: 1Gi # cpu: 1 #requests: # memory: 1Gi # cpu: 1 csrx: image: csrx tag: 24.2R1.14 imagePullPolicy: IfNotPresent resources: limits: hugepages-1Gi: 4Gi memory: 4Gi requests: hugepages-1Gi: 4Gi memory: 4Gi # uncomment below if you are using a private registry that needs authentication # registryCredentials - Base64 representation of your Docker registry credentials # secretName - Name of the Secret object that will be created #imagePullSecret: #registryCredentials: <base64-encoded-credential> #secretName: regcred # nodeAffinity: Can be used to inject nodeAffinity for cSRX # you may label the nodes where we wish to deploy cSRX and inject affinity accordingly #nodeAffinity: #- key: node-role.kubernetes.io/worker # operator: Exists #- key: node-role.kubernetes.io/master # operator: DoesNotExist #- key: kubernetes.io/hostname # operator: In # values: # - example-host-1 replicas: 1 interfaceType: "vhost" interfaceConfigs: #- name: eth1 # ip: 181.1.1.1/30 # should match ipSecTunnelConfigs localAddress if configured # gateway: 181.1.1.2 # gateway configuration # ip6: 181:1:1::1/64 # optional # ip6Gateway: 181:1:1::2 # optional # routes: # this field is optional # - "191.1.1.0/24" # - "200.1.1.0/24" #- name: eth2 # ip: 1.21.1.1/30 # should match ipSecTunnelConfigs localAddress if configured # gateway: 1.21.1.2 # gateway configuration # ip6: 181:2:1::1/64 # optional # ip6Gateway: 181:2:1::2 # optional # routes: # this field is optional # - "111.1.1.0/24" # - "192.1.1.0/24" ipSecTunnelConfigs: # untrust #- interface: eth1 ## section ike-phase1, proposal, policy, gateway # gateway: 171.1.1.1 # localAddress: 181.1.1.1 # authenticationAlgorithm: sha-256 # encryptionAlgorithm: aes-256-cbc # preSharedKey: "$9$zt3l3AuIRhev8FnNVsYoaApu0RcSyev8XO1NVYoDj.P5F9AyrKv8X" # trafficSelector: # - name: ts1 # localIP: 111.1.1.0/24 ## IP cannot be 0.0.0.0/0 # remoteIP: 222.1.1.0/24 ## IP cannot be 0.0.0.0/0 jcnr_config: #- name: eth1 # routes: # - "121.1.1.0/24" #csrx_flavor: specify the csrx deployment model. Corresponding values for csrx control and data cpus #must be provided based on the flavor mentioned below. Following are possible options: # CSRX-2CPU-4G # CSRX-4CPU-8G # CSRX-6CPU-12G # CSRX-8CPU-16G # CSRX-16CPU-32G # CSRX-20CPU-48G csrx_flavor: CSRX-2CPU-4G csrx_ctrl_cpu: "0x01" csrx_data_cpu: "0x02"