25.10. IPsec 암호화 구성
IPsec이 활성화되면 OVN-Kubernetes 클러스터 네트워크의 노드 간 모든 pod-to-pod 네트워크 트래픽은 IPsec 전송 모드로 암호화됩니다.
IPsec은 기본적으로 비활성화되어 있습니다. 클러스터를 설치한 후 또는 동안 활성화할 수 있습니다. 클러스터 설치 후 IPsec을 활성화해야 하는 경우 IPsec ESP IP 헤더의 오버헤드를 고려하여 먼저 클러스터 MTU의 크기를 조정해야 합니다.
다음 문서에서는 클러스터 설치 후 IPSec를 활성화 및 비활성화하는 방법을 설명합니다.
25.10.1. 사전 요구 사항
-
IPsec ESP 헤더의 추가 오버헤드를 허용하기 위해 클러스터 MTU 크기를
46
바이트로 단축했습니다. 클러스터가 사용하는 MTU 크기 조정에 대한 자세한 내용은 클러스터 네트워크의 MTU 변경을 참조하십시오.
25.10.2. IPsec에서 암호화하는 네트워크 트래픽 흐름 유형
IPsec을 활성화하면 포드 간 다음 네트워크 트래픽 흐름만 암호화됩니다.
- 클러스터 네트워크의 서로 다른 노드에 있는 pod 간 트래픽
- 호스트 네트워크의 포드에서 클러스터 네트워크의 포드로의 트래픽
다음 트래픽 흐름은 암호화되지 않습니다.
- 클러스터 네트워크의 동일한 노드에 있는 pod 간 트래픽
- 호스트 네트워크의 포드 간 트래픽
- 클러스터 네트워크의 포드에서 호스트 네트워크 포드로의 트래픽
암호화되거나 암호화되지 않은 흐름은 다음 다이어그램에 설명되어 있습니다.
25.10.2.1. IPsec이 활성화된 경우 네트워크 연결 요구 사항
OpenShift Container Platform 클러스터 구성 요소가 통신할 수 있도록 시스템 간 네트워크 연결을 구성해야 합니다. 각 시스템에서 클러스터에 있는 다른 모든 시스템의 호스트 이름을 확인할 수 있어야 합니다.
프로토콜 | 포트 | 설명 |
---|---|---|
UDP |
| IPsec IKE 패킷 |
| IPsec NAT-T 패킷 | |
ESP | 해당 없음 | IPsec 캡슐화 보안 페이로드(ESP) |
25.10.3. 암호화 프로토콜 및 IPsec 모드
사용된 암호화 암호는 AES-GCM-16-256
입니다. 무결성 검사 값(ICV)은 16
바이트입니다. 키 길이는 256
비트입니다.
사용된 IPsec 모드는 전송 모드입니다. 즉, ESP(Encapsulated Security Payload) 헤더를 원래 패킷의 IP 헤더에 추가하고 패킷 데이터를 암호화하여 엔드 투 엔드 통신을 암호화하는 모드입니다. OpenShift Container Platform은 현재 pod-to-pod 통신에 IPsec tunnel 모드를 사용하거나 지원하지 않습니다.
25.10.4. 보안 인증서 생성 및 교체
CNO(Cluster Network Operator)는 암호화에 IPsec에서 사용하는 자체 서명된 X.509 인증 기관(CA)을 생성합니다. 각 노드의 CSR(인증서 서명 요청)은 CNO에서 자동으로 충족됩니다.
CA는 10년 동안 유효합니다. 개별 노드 인증서는 5년간 유효하며 4년 6개월 경과 후 자동으로 교체됩니다.
25.10.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":{ }}}}}'
검증
OVN-Kubernetes 컨트롤 플레인 Pod의 이름을 찾으려면 다음 명령을 입력합니다.
$ oc get pods -l app=ovnkube-master -n openshift-ovn-kubernetes
출력 예
NAME READY STATUS RESTARTS AGE ovnkube-master-fvtnh 6/6 Running 0 122m ovnkube-master-hsgmm 6/6 Running 0 122m ovnkube-master-qcmdc 6/6 Running 0 122m
다음 명령을 실행하여 cluste에서 IPsec이 활성화되었는지 확인합니다.
$ oc -n openshift-ovn-kubernetes rsh ovnkube-master-<XXXXX> \ ovn-nbctl --no-leader-only get nb_global . ipsec
다음과 같습니다.
<XXXXX>
- 이전 단계에서 Pod의 임의 문자 시퀀스를 지정합니다.
출력 예
true
25.10.6. IPsec 암호화 비활성화
클러스터 관리자는 클러스터 설치 후 IPsec을 활성화한 경우에만 IPsec 암호화를 비활성화할 수 있습니다.
클러스터를 설치할 때 IPsec을 활성화한 경우 이 절차를 통해 IPsec을 비활성화할 수 없습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
cluster-admin
권한이 있는 사용자로 클러스터에 로그인합니다.
프로세스
IPsec 암호화를 비활성화하려면 다음 명령을 입력합니다.
$ oc patch networks.operator.openshift.io/cluster --type=json \ -p='[{"op":"remove", "path":"/spec/defaultNetwork/ovnKubernetesConfig/ipsecConfig"}]'
-
선택 사항: IP 패킷의 IPsec ESP 헤더에서 오버헤드가 더 이상 없으므로 클러스터 MTU 크기를
46
바이트까지 늘릴 수 있습니다. 클러스터에서 IPsec이 비활성화되어 있는지 확인합니다.
$ oc -n openshift-ovn-kubernetes -c nbdb rsh ovnkube-master-<XXXXX> \ ovn-nbctl --no-leader-only get nb_global . ipsec
다음과 같습니다.
<XXXXX>
- 이전 단계에서 Pod의 임의 문자 시퀀스를 지정합니다.
출력 예
false