6.7. 외부 트래픽에 대한 IPsec 암호화 구성
클러스터 관리자로서 IPsec을 사용하여 외부 트래픽을 암호화하려면 PKCS#12 인증서 제공을 포함하여 네트워크 인프라에 대한 IPsec을 구성해야 합니다. 이 절차에서는 Butane을 사용하여 머신 구성을 생성하므로 butane
명령이 설치되어 있어야 합니다.
머신 구성을 적용한 후, 머신 구성 운영자는 클러스터에서 영향을 받은 노드를 재부팅하여 새로운 머신 구성을 롤아웃합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
로컬 컴퓨터에
부탄 가스
공급 시설을 설치했습니다. - 클러스터에 NMState Operator를 설치했습니다.
-
클러스터 관리자
권한이 있는 사용자로 클러스터에 로그인했습니다. - 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
[주체 대체 이름]
과 일치해야 합니다. - 4
host.example.com
과 같은 외부 호스트 이름을 지정합니다. 이름은 제공된 PKCS#12 인증서의 SAN[주체 대체 이름]
과 일치해야 합니다.- 5
- 외부 호스트의 IP 주소(예:
10.1.2.3/32)
를 지정합니다.
NMState IPsec 터널 구성 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 정책을 적용할 호스트 이름을 지정합니다. 이 호스트는 IPsec 구성에서 왼쪽 호스트 역할을 합니다.
- 2
- 호스트에 생성할 인터페이스의 이름을 지정합니다.
- 3
- 클러스터 측에서 IPsec 터널을 종료하는 클러스터 노드의 호스트 이름을 지정합니다. 이름은 제공된 PKCS#12 인증서의 SAN
[주체 대체 이름]
과 일치해야 합니다. - 4
host.example.com
과 같은 외부 호스트 이름을 지정합니다. 이름은 제공된 PKCS#12 인증서의 SAN[주체 대체 이름]
과 일치해야 합니다.- 5
- 외부 호스트의 IP 주소(예:
10.1.2.3/32)
를 지정합니다.
IPsec 인터페이스를 구성하려면 다음 명령을 입력하세요.
oc create -f ipsec-config.yaml
$ oc create -f ipsec-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
각 호스트의 네트워크 보안 서비스(NSS) 데이터베이스에 추가할 다음 인증서 파일을 제공합니다. 이러한 파일은 이후 단계에서 부탄 구성의 일부로 가져옵니다.
-
left_server.p12
: IPsec 엔드포인트에 대한 인증서 번들 -
ca.pem
: 인증서에 서명한 인증 기관
-
클러스터에 인증서를 추가하려면 머신 구성을 생성하세요.
제어 평면과 작업자 노드에 대한 Butane 구성 파일을 만들려면 다음 명령을 입력하세요.
참고구성 파일에서 지정하는 Butane 버전은 OpenShift Container Platform 버전과 일치해야 하며 항상
0
으로 끝나야 합니다. 예를 들어,4.19.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(머신 구성 운영자)가 각 머신 구성 풀의 머신을 업데이트하면서 각 노드를 하나씩 재부팅합니다. 외부 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