24.9. IPsec 암호화 구성

IPsec을 사용하면 OVN-Kubernetes 클러스터 네트워크의 노드 간 모든 pod-to-pod 네트워크 트래픽은 IPsec 전송 모드로 암호화됩니다.

IPsec은 기본적으로 비활성화되어 있습니다. 클러스터를 설치하는 동안 또는 설치 후 활성화할 수 있습니다. 클러스터 설치에 대한 자세한 내용은 OpenShift Container Platform 설치 개요 를 참조하십시오. 클러스터 설치 후 IPsec을 활성화해야 하는 경우 먼저 IPsec ESP IP 헤더의 오버헤드를 고려하여 클러스터 MTU의 크기를 조정해야 합니다.

다음 문서에서는 클러스터 설치 후 IPSec를 활성화 및 비활성화하는 방법을 설명합니다.

24.9.1. 사전 요구 사항

  • IPsec ESP 헤더의 추가 오버헤드를 허용하기 위해 클러스터 MTU 크기가 46 바이트로 줄였습니다. 클러스터가 사용하는 MTU 크기 조정에 대한 자세한 내용은 클러스터 네트워크의 MTU 변경을 참조하십시오.

24.9.2. IPsec에서 암호화하는 네트워크 트래픽 흐름 유형

IPsec을 활성화하면 포드 간 다음 네트워크 트래픽 흐름만 암호화됩니다.

  • 클러스터 네트워크의 서로 다른 노드에 있는 pod 간 트래픽
  • 호스트 네트워크의 포드에서 클러스터 네트워크의 포드로의 트래픽

다음 트래픽 흐름은 암호화되지 않습니다.

  • 클러스터 네트워크의 동일한 노드에 있는 pod 간 트래픽
  • 호스트 네트워크의 포드 간 트래픽
  • 클러스터 네트워크의 포드에서 호스트 네트워크 포드로의 트래픽

암호화되거나 암호화되지 않은 흐름은 다음 다이어그램에 설명되어 있습니다.

IPsec 암호화 및 암호화되지 않은 트래픽 흐름

24.9.2.1. IPsec이 활성화된 경우 네트워크 연결 요구 사항

OpenShift Container Platform 클러스터 구성 요소가 통신할 수 있도록 시스템 간 네트워크 연결을 구성해야 합니다. 각 시스템에서 클러스터에 있는 다른 모든 시스템의 호스트 이름을 확인할 수 있어야 합니다.

표 24.11. 모든 시스템 간 통신에 사용되는 포트

프로토콜포트설명

UDP

500

IPsec IKE 패킷

4500

IPsec NAT-T 패킷

ESP

해당 없음

IPsec Encapsulating Security Payload (ESP)

24.9.3. 암호화 프로토콜 및 IPsec 모드

사용된 암호화 암호는 AES-GCM-16-256 입니다. 무결성 검사 값(ICV)은 16 바이트입니다. 키 길이는 256 비트입니다.

사용된 IPsec 모드는 전송 모드 입니다. ESP(Encapsulated Security Payload) 헤더를 원래 패킷의 IP 헤더에 추가하고 패킷 데이터를 암호화하여 엔드 투 엔드 통신을 암호화하는 모드입니다. OpenShift Container Platform은 현재 pod-to-pod 통신을 위해 IPsec CloudEvent 모드를 사용하거나 지원하지 않습니다.

24.9.4. 보안 인증서 생성 및 교체

CNO(Cluster Network Operator)는 암호화에 IPsec에서 사용하는 자체 서명된 X.509 인증 기관(CA)을 생성합니다. 각 노드의 CSR(인증서 서명 요청)은 CNO에서 자동으로 충족됩니다.

CA는 10년 동안 유효합니다. 개별 노드 인증서는 5년간 유효하며 4년 6개월 경과 후 자동으로 교체됩니다.

24.9.5. IPsec 암호화 활성화

클러스터 관리자는 클러스터 설치 후 IPsec 암호화를 활성화할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 클러스터에 로그인합니다.
  • IPsec ESP 헤더의 오버헤드를 허용하도록 클러스터 MTU의 크기가 46 바이트로 줄였습니다.

프로세스

  • IPsec 암호화를 활성화하려면 다음 명령을 입력합니다.

    $ oc patch networks.operator.openshift.io cluster --type=merge \
    -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"ipsecConfig":{ }}}}}'

24.9.6. IPsec이 활성화되었는지 확인

클러스터 관리자는 IPsec이 활성화되어 있는지 확인할 수 있습니다.

검증

  1. OVN-Kubernetes 컨트롤 플레인 Pod의 이름을 찾으려면 다음 명령을 입력합니다.

    $ oc get pods -n openshift-ovn-kubernetes | grep ovnkube-master

    출력 예

    ovnkube-master-4496s        1/1     Running   0          6h39m
    ovnkube-master-d6cht        1/1     Running   0          6h42m
    ovnkube-master-skblc        1/1     Running   0          6h51m
    ovnkube-master-vf8rf        1/1     Running   0          6h51m
    ovnkube-master-w7hjr        1/1     Running   0          6h51m
    ovnkube-master-zsk7x        1/1     Running   0          6h42m

  2. 클러스터에서 IPsec이 활성화되어 있는지 확인합니다.

    $ oc -n openshift-ovn-kubernetes -c nbdb rsh ovnkube-master-<XXXXX> \
      ovn-nbctl --no-leader-only get nb_global . ipsec

    다음과 같습니다.

    <XXXXX>
    이전 단계의 Pod에 대한 임의의 문자 시퀀스를 지정합니다.

    출력 예

    true

24.9.7. IPsec 암호화 비활성화

클러스터 관리자는 클러스터 설치 후 IPsec을 활성화한 경우에만 IPsec 암호화를 비활성화할 수 있습니다.

참고

클러스터를 설치할 때 IPsec을 활성화한 경우 이 절차를 사용하여 IPsec을 비활성화할 수 없습니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 클러스터에 로그인합니다.

프로세스

  1. IPsec 암호화를 비활성화하려면 다음 명령을 입력합니다.

    $ oc patch networks.operator.openshift.io/cluster --type=json \
      -p='[{"op":"remove", "path":"/spec/defaultNetwork/ovnKubernetesConfig/ipsecConfig"}]'
  2. 선택 사항: IP 패킷의 IPsec ESP 헤더에서 더 이상 오버헤드가 없으므로 클러스터 MTU의 크기를 46 바이트로 늘릴 수 있습니다.

24.9.8. 추가 리소스