6.7. 외부 트래픽에 대한 IPsec 암호화 구성
클러스터 관리자는 IPsec을 사용하여 외부 트래픽을 암호화하려면 PKCS#12 인증서 제공을 포함하여 네트워크 인프라에 대해 IPsec을 구성해야 합니다. 이 절차에서는 Butane을 사용하여 머신 구성을 생성하므로 butane
명령이 설치되어 있어야 합니다.
머신 구성을 적용한 후 Machine Config Operator가 클러스터의 영향을 받는 노드를 재부팅하여 새 머신 구성을 롤아웃합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
로컬 컴퓨터에
butane
유틸리티를 설치했습니다. - NMState Operator가 클러스터에 설치되어 있습니다.
-
cluster-admin
권한이 있는 사용자로 클러스터에 로그인했습니다. - IPsec 끝점에 대한 기존 PKCS#12 인증서와 PEM 형식의 CA 인증서가 있습니다.
-
클러스터에서
전체
또는외부
모드에서 IPsec을 활성화했습니다. -
OVN-Kubernetes 네트워크 플러그인은 로컬 게이트웨이 모드에서 구성해야 합니다. 여기서
ovnKubernetesConfig.gatewayConfig.routingViaHost=true
.
프로세스
NMState Operator 노드 네트워크 구성 정책을 사용하여 IPsec 구성을 생성합니다. 자세한 내용은 IPsec VPN 구현으로 Libreswan을 참조하십시오.
IPsec 끝점인 클러스터 노드의 IP 주소를 확인하려면 다음 명령을 입력합니다.
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예와 같이 NMState Operator에 대한 노드 네트워크 구성 정책이 포함된
ipsec-config.yaml
이라는 파일을 생성합니다.NodeNetworkConfigurationPolicy
오브젝트에 대한 개요 는 Kubernetes NMState 프로젝트를 참조하십시오.NMState IPsec 전송 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1 1
- 정책을 적용할 호스트 이름을 지정합니다. 이 호스트는 IPsec 구성에서 왼쪽 호스트로 사용됩니다.
- 2
- 호스트에서 생성할 인터페이스의 이름을 지정합니다.
- 3
- 클러스터 측에서 IPsec 터널을 종료하는 클러스터 노드의 호스트 이름을 지정합니다. 이름은 제공된 PKCS#12 인증서의 SAN
[Subject Alternate Name]
과 일치해야 합니다. - 4
host.example.com
과 같은 외부 호스트 이름을 지정합니다. 이름은 제공된 PKCS#12 인증서의 SAN[Subject Alternate Name]
과 일치해야 합니다.- 5
10.1.2.3/32
와 같은 외부 호스트의 IP 주소를 지정합니다.
NMState IPsec 터널 구성의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 정책을 적용할 호스트 이름을 지정합니다. 이 호스트는 IPsec 구성에서 왼쪽 호스트로 사용됩니다.
- 2
- 호스트에서 생성할 인터페이스의 이름을 지정합니다.
- 3
- 클러스터 측에서 IPsec 터널을 종료하는 클러스터 노드의 호스트 이름을 지정합니다. 이름은 제공된 PKCS#12 인증서의 SAN
[Subject Alternate Name]
과 일치해야 합니다. - 4
host.example.com
과 같은 외부 호스트 이름을 지정합니다. 이름은 제공된 PKCS#12 인증서의 SAN[Subject Alternate Name]
과 일치해야 합니다.- 5
10.1.2.3/32
와 같은 외부 호스트의 IP 주소를 지정합니다.
IPsec 인터페이스를 구성하려면 다음 명령을 입력합니다.
oc create -f ipsec-config.yaml
$ oc create -f ipsec-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
각 호스트의 NSS(Network Security Services) 데이터베이스에 추가할 다음 인증서 파일을 제공합니다. 이러한 파일은 이후 단계에서 Butane 구성의 일부로 가져옵니다.
-
left_server.p12
: IPsec 엔드포인트의 인증서 번들 -
ca.pem
: 인증서에 서명한 인증 기관
-
클러스터에 인증서를 추가할 머신 구성을 생성합니다.
컨트롤 플레인 및 작업자 노드에 대한 Butane 구성 파일을 생성하려면 다음 명령을 입력합니다.
참고구성 파일에 지정하는 Butane 버전이 OpenShift Container Platform 버전과 일치해야 하며 항상
0
으로 끝나야 합니다. 예를 들면4.17.0
입니다. Butane에 대한 자세한 내용은 “Butane 을 사용하여 머신 구성 생성”을 참조하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 단계에서 생성한 Butane 파일을 머신 구성으로 변환하려면 다음 명령을 입력합니다.
for role in master worker; do butane -d . 99-ipsec-${role}-endpoint-config.bu -o ./99-ipsec-$role-endpoint-config.yaml done
$ for role in master worker; do butane -d . 99-ipsec-${role}-endpoint-config.bu -o ./99-ipsec-$role-endpoint-config.yaml done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
머신 구성을 클러스터에 적용하려면 다음 명령을 입력합니다.
for role in master worker; do oc apply -f 99-ipsec-${role}-endpoint-config.yaml done
$ for role in master worker; do oc apply -f 99-ipsec-${role}-endpoint-config.yaml done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요MCO(Machine Config Operator)는 각 머신 구성 풀에서 머신을 업데이트하므로 각 노드를 하나씩 재부팅합니다. 외부 IPsec 연결을 사용할 수 있기 전에 모든 노드가 업데이트될 때까지 기다려야 합니다.
다음 명령을 입력하여 머신 구성 풀 상태를 확인합니다.
oc get mcp
$ oc get mcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트된 노드의 상태가
UPDATED=true
,UPDATING=false
,DEGRADED=false
입니다.참고기본적으로 MCO는 풀당 한 번에 하나의 시스템을 업데이트하므로 클러스터 크기에 따라 마이그레이션에 걸리는 총 시간이 증가합니다.
IPsec 머신 구성이 성공적으로 롤아웃되었는지 확인하려면 다음 명령을 입력합니다.
IPsec 머신 구성 생성을 확인합니다.
oc get mc | grep ipsec
$ oc get mc | grep ipsec
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
80-ipsec-master-extensions 3.2.0 6d15h 80-ipsec-worker-extensions 3.2.0 6d15h
80-ipsec-master-extensions 3.2.0 6d15h 80-ipsec-worker-extensions 3.2.0 6d15h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 컨트롤 플레인 노드에 대한 IPsec 확장의 애플리케이션을 확인합니다. 예제 출력에는
2
가 표시됩니다.oc get mcp master -o yaml | grep 80-ipsec-master-extensions -c
$ oc get mcp master -o yaml | grep 80-ipsec-master-extensions -c
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 컴퓨팅 노드에 IPsec 확장의 애플리케이션을 확인합니다. 예제 출력에는
2
가 표시됩니다.oc get mcp worker -o yaml | grep 80-ipsec-worker-extensions -c
$ oc get mcp worker -o yaml | grep 80-ipsec-worker-extensions -c
Copy to Clipboard Copied! Toggle word wrap Toggle overflow