JCNR을 사용한 서비스 체인(cSRX) 구축
요약 이 섹션을 읽고 클라우드 네이티브 라우터로 보안 서비스 인스턴스(cSRX)를 사용자 지정하고 구축하는 방법에 대해 알아보십시오.
주니퍼 클라우드 네이티브 라우터(JCNR)를 주니퍼의 컨테이너화된 SRX(cSRX) 플랫폼과 통합하여 IPsec과 같은 보안 서비스를 제공할 수 있습니다. 클라우드 네이티브 라우터는 호스트 기반 서비스 체이닝을 사용하여 동일한 Kubernetes 클러스터의 보안 서비스 인스턴스(cSRX)와 연결됩니다. cSRX 인스턴스는 L3 모드에서 포드 서비스로 실행됩니다. cSRX 인스턴스는 Helm 차트를 통해 사용자 지정 및 배포됩니다.
JCNR을 설치할 때 또는 JCNR을 설치한 후에 주니퍼 cSRX를 구축할 수 있습니다. 사용 가능한 패키지에 대한 설명은 JCNR 소프트웨어 다운로드 패키지를 참조하십시오.
기존 JCNR 설치에 cSRX 설치
기존 JCNR 설치에 cSRX 인스턴스를 설치하려면 다음 절차를 따르십시오. 이 절차를 시작하기 전에 모든 JCNR 구성 요소가 가동되어 실행 중인지 확인합니다.
JCNR 설치 중 cSRX 설치
cSRX 라이선스 적용 및 cSRX 구성
다음 절차에 따라 cSRX 라이선스를 적용하고 주니퍼 cSRX를 구성하십시오.
다음 단계에서는 cSRX와 JCNR을 함께 설치하는 경우 Juniper_Cloud_Native_Router_CSRX_<release> 디렉터리에 있고, 기존 JCNR 설치에 cSRX를 설치하는 경우 junos_csrx_<release> 디렉터리에 있다고 가정합니다.
cSRX Helm 차트 사용자 지정
cSRX 서비스 체이닝 인스턴스는 Helm 차트, 독립형 Helm 차트 또는 JCNR과 결합된 Helm 차트를 통해 구축됩니다. 배포는 다음 두 가지 필수 구성 요소로 구성됩니다.
-
csrx-init: 기본 cSRX 애플리케이션에 대한 구성을 준비하는 init 컨테이너입니다. 파일에서 필요한 정보를
values.yaml
추출하고 처리한 후 cSRX에 대한 구성 데이터를 생성합니다. 이를 통해 기본 cSRX 애플리케이션이 유효한 최신 구성으로 시작됩니다. -
csrx: csrx는 주요 애플리케이션 컨테이너이자 cSRX 구축의 핵심 구성 요소입니다. 컨테이너가 올바르게 작동하려면 컨테이너에서
csrx-init
제공하는 구성에 의존합니다.
파일에서 다양한 구성 매개 변수를 지정하여 cSRX 구축을 values.yaml
사용자 지정할 수 있습니다. 주요 구성 옵션은 다음과 같습니다.
-
interfaceType: JCNR에 연결하기 위한 cSRX의 인터페이스 유형입니다. only(으)로
vhost
설정해야 합니다. -
interfaceConfigs: 인터페이스 IP 주소, 게이트웨이 주소 및 경로(선택 사항)를 정의하는 배열입니다. 인터페이스 IP는 배열의
localAddress
ipSecTunnelConfigs
요소와 일치해야 합니다. 경로에는 암호 해독된 트래픽을 JCNR로 조정하기 위한 접두사와 IPSec 게이트웨이에 대한 연결성 경로가 포함되어야 합니다. -
ipSecTunnelConfigs: ike-phase1, 제안, 정책 및 게이트웨이 구성과 같은 IPsec 구성 세부 정보를 정의하는 배열입니다. 트래픽 선택기에는 암호화될 것으로 예상되는 트래픽이 포함되어야 합니다.
-
jcnr_config: JCNR에서 cSRX로 트래픽을 조정하고 원격 IPsec 게이트웨이에서 cSRX로 IPsec 트래픽을 조정하여 보안 서비스 체인을 적용하기 위해 JCNR에서 구성할 경로를 정의하는 어레이입니다.
독립형 cSRX 구축을 위한 기본값 .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"