목차/05. Active-Active 모드·Geo Cluster

05Active-Active 모드·Geo ClusterActive-Active 모드·Geo Cluster

앞 장의 HA·Load Sharing은 멤버들이 같은 네트워크에 모여 있다 고 전제했습니다. 하지만 실무에서는 멤버를 서로 다른 지역·사이트·클라우드 가용 영역 에 흩어 두고 싶을 때가 많습니다. 본사와 재해 복구 센터에 하나씩, 혹은 AWS의 서로 다른 가용 영역(availability zone)에 하나씩 두는 식입니다. 이렇게 지리적으로 떨어진 멤버를 하나의 클러스터로 묶는 두 가지 모드가 Active-Active 모드Geo Cluster 입니다. 이 장은 두 모드의 개념·전제 조건·한계, 그리고 새 클러스터를 만드는 절차와 기존 클러스터를 전환하는 절차를 원문 그대로 빠짐없이 풀어 둡니다.

Active-Active 모드

Active-Active 모드는 R80.40에서 도입되었습니다. 이 모드는 Cluster Member들이 서로 다른 지리적 위치(다른 사이트, 다른 클라우드 가용 영역)에 놓인 클러스터를 위해 설계되었습니다. 핵심은 각 멤버의 인터페이스 IP가 서로 다른 네트워크에 있다 는 점입니다 — Sync 인터페이스까지 포함해서 그렇습니다. 일반 HA처럼 같은 서브넷을 공유하지 않습니다.

동작 방식은 이렇습니다. 각 Cluster Member는 자기에게 라우팅된 모든 트래픽을 검사하고, 기록한 연결(connection)을 동료 멤버에게 동기화 합니다. 여기서 반드시 짚어야 할 점이 있습니다. Active-Active는 트래픽을 멤버 간에 분산하지 않 습니다. Load Sharing이 아니라는 뜻입니다. 트래픽은 라우팅이 각 멤버로 보내 주는 대로 들어와 처리되므로, 관리자가 각 멤버의 부하를 직접 모니터링 해야 합니다(클러스터 모니터링·문제 해결).

전제 조건과 옵션

Active-Active를 쓰려면 다음을 알아 두어야 합니다.

  • 관리 서버(Management Server)와 ClusterXL 모두 R80.40 이상 에서만 Active-Active 모드를 구성할 수 있습니다.
  • 앞서 말했듯 Active-Active는 트래픽의 Load Sharing을 제공하지 않 으므로, 관리자가 각 멤버의 부하를 직접 살펴야 합니다(클러스터 모니터링·문제 해결).
  • Cluster Control Protocol(CCP) 암호화가 켜져 있어야 합니다 — 이것이 기본값입니다(CCP 설정 구성).
  • CCP를 Layer 2에서 동작 하도록 구성할 수도 있습니다.
  • 각 Cluster Member에서 Dynamic Routing(동적 라우팅)을 켜 면, 해당 멤버가 그 사이트의 Area 또는 Autonomous System에서 라우터로 동작합니다. 이 경우 동적 라우팅을 구성한 인터페이스마다 BFD(Bidirectional Forwarding Detection, ip-reachability-detection)를 반드시 활성화 해야 합니다.

한계

다음 한계가 Active-Active 모드에 적용됩니다.

  • 지원되는 Software Blade·기능은 다음으로 한정 됩니다 — Firewall, IPS, NAT(Hide behind IP address, Static NAT), Application Control, URL Filtering, Content Awareness, Anti-Spam and Email Security, Anti-Bot, Anti-Virus.
  • 멤버는 최대 4대 까지 지원됩니다.
  • VSX는 지원되지 않 습니다.
  • 모든 Multi-Portal은 지원되지 않 습니다(예: Mobile Access Portal, Identity Awareness Captive Portal, Data Loss Prevention Portal).
  • 같은 "쪽(side)"에 속한 인터페이스 이름은 모든 Cluster Member에서 같아야 합니다.
  • 클러스터 객체 속성의 Network Management 페이지에서 클러스터 인터페이스를 골라 Edit 했을 때, Network Type 필드에서 온프레미스든 클라우드(예: AWS, Azure)든 Cluster + Sync 선택은 지원되지 않 습니다.
  • 같은 Network Management 페이지에서 클러스터 인터페이스를 Edit 했을 때, Topology 섹션에서는 클러스터 인터페이스에 대해 다음 두 옵션만 지원 됩니다.
    • Override > Network defined by routes (기본값).
    • Override > Specific > 해당 Network 객체 또는 Network Group 객체 선택.
  • Dynamic Routing을 켜면 동적 라우팅을 구성한 인터페이스마다 BFD(ip-reachability-detection)를 활성화 해야 합니다.
  • ClusterXL 객체 속성의 NAT 창에서 Hide internal networks behind the Gateway's external IP 옵션은 지원되지 않습니다.
  • 같은 NAT 창의 Hide behind the gateway 옵션도 지원되지 않습니다.

새 ClusterXL을 Active-Active 모드로 구성하기

1단계 — Cluster Member 설치. ClusterXL Cluster Member들을 설치합니다(자세한 내용은 R82 Installation and Upgrade Guide 참고).

2단계 — (선택) 동적 라우팅. 각 Cluster Member에서 Dynamic Routing을 켜면 해당 사이트의 Area 또는 Autonomous System에서 라우터로 동작합니다.

3단계 — 관리 서버 연결. SmartConsole로 Management Server에 접속합니다.

4단계 — Gateways & Servers. 왼쪽 탐색 패널에서 Gateways & Servers 를 클릭합니다.

5단계 — 새 Cluster 객체 만들기. 다음 중 한 방법으로 새 Cluster 객체를 만듭니다.

  • 상단 툴바에서 New > Cluster > Cluster.
  • 좌측 상단에서 Objects 메뉴 > More object types > Network Object > Gateways and Servers > Cluster > New Cluster.
  • 우측 상단에서 Objects Pane > New > More > Network Object > Gateways and Servers > Cluster > Cluster.

Check Point Security Gateway Cluster Creation 창이 뜨면 반드시 Classic Mode 를 클릭 합니다.

6단계 — General Properties. 왼쪽 트리에서 General Properties 를 클릭합니다.

  • IPv4 Address 필드에 0.0.0.0 주소를 입력 합니다.
  • Network Security 탭에서 IPsec VPN 을 해제 합니다.
  • 지원되는 Software Blade 목록은 sk181128의 Known Limitation PMTR-70255를 참고합니다.

7단계 — Cluster Members. 왼쪽 트리에서 Cluster Members 를 클릭하고 멤버를 추가합니다.

  1. Add > New Cluster Member 를 클릭하면 Cluster Member Properties 창이 열립니다.
  2. Name 필드에 첫 번째 Cluster Member 객체의 이름을 넣습니다.
  3. 이 멤버의 주 물리 IP 주소를 구성합니다. IPv4 Address ·IPv6 Address 필드에는 멤버의 First Time Configuration Wizard에서 Management Connection 페이지에 설정했던 것과 같은 IPv4·IPv6 주소 를 넣습니다. Security Management Server 또는 Multi-Domain Server가 이 IP에 접속할 수 있어야 합니다.
  4. Communication 을 클릭합니다.
  5. One-time password ·Confirm one-time password 필드에 멤버의 First Time Configuration Wizard에서 입력했던 것과 같은 Activation Key 를 넣습니다.
  6. Initialize 를 클릭합니다.
  7. Close, 이어서 OK 를 클릭합니다.
  8. 위 a~h 단계를 반복해 다음 Cluster Member를 추가합니다.

만약 Trust State 필드에 Trust established 가 표시되지 않 으면 다음을 따릅니다.

  1. 해당 Cluster Member의 명령줄에 접속합니다.
  2. 멤버와 Management Server 사이에 물리적 연결이 있는지(예: ping이 통하는지) 확인합니다.
  3. 다음을 실행합니다.
   
  1. 메뉴에서 다음 옵션 번호를 입력합니다.
   Secure Internal Communication
   
  1. 화면 안내에 따라 Activation Key를 변경합니다.
  2. SmartConsole에서 Reset 을 클릭합니다.
  3. cpconfig 메뉴에서 입력한 것과 같은 Activation Key를 넣습니다.
  4. SmartConsole에서 Initialize 를 클릭합니다.

8단계 — ClusterXL and VRRP. 왼쪽 트리에서 ClusterXL and VRRP 를 클릭합니다.

  • Select the cluster mode and configuration 섹션에서 Active-Active 를 선택 합니다.
  • Tracking 섹션에서 알맞은 옵션을 고릅니다.
  • (선택) Use State Synchronization 을 선택합니다. 이렇게 하면 멤버들이 자기가 검사한 연결 정보를 서로 동기화 합니다.
  • (선택) Start synchronizing [ ] seconds after connection initiation 을 선택하고 값을 넣습니다. 이 옵션은 R80.20 이상 클러스터에서만 쓸 수 있습니다. 수명이 짧은 연결(short-lived connection)의 동기화 가 클러스터 성능을 떨어뜨리는 것을 막기 위해, 연결이 시작되고 일정 시간이 지난 뒤부터 동기화를 시작하도록 설정할 수 있습니다. 범위: 2~60초, 기본값: 3초 입니다.

9단계 — 모드 적용. OK 를 클릭해 새 클러스터 모드로 클러스터 객체 속성을 갱신합니다.

10단계 — 객체 다시 열기. 클러스터 객체를 다시 열어 구성을 이어 갑니다.

11단계 — Network Management. 왼쪽 트리에서 Network Management 를 클릭합니다.

  • 상단에서 Get Interfaces > Get Interfaces With Topology 를 클릭합니다.
  • 각 인터페이스를 선택해 Edit 합니다.
  • 왼쪽 트리에서 General 페이지를 클릭합니다.
  • General 섹션의 Network Type 필드에서 알맞은 유형을 고릅니다.
    • 클러스터 트래픽 인터페이스는 Cluster 를 선택합니다. IPv4 필드에는 더미 IP 주소 0.0.0.0 / 24 가 자동으로 설정됩니다.
  • 클러스터 동기화 인터페이스는 Sync 를 선택합니다.
  • 연결된 네트워크 사이로 트래픽을 전달하지 않는 인터페이스는 Private 를 선택합니다.
  • Member IPs 섹션에서 각 Cluster Member의 IPv4 주소와 Net Mask가 정확한지 확인합니다.
  • Topology 섹션에서 Leads To ·Security Zone 필드 설정이 맞는지 확인합니다. 클러스터 인터페이스에는 다음 옵션만 지원 됩니다(Known Limitation PMTR-70260).
    • Override > Network defined by routes (기본값).
    • Override > Specific > 해당 Network 객체 또는 Network Group 객체 선택.

12단계OK 를 클릭합니다.

13단계 — SmartConsole 세션을 Publish 합니다.

14단계 — 알맞은 Access Control Policy 를 구성하고 설치합니다.

15단계 — 알맞은 Threat Prevention Policy 를 구성하고 설치합니다.

16단계 — 상태 확인. 클러스터 상태를 살핍니다(클러스터 상태 보기). 예를 들면 다음과 같이 나옵니다.

Member1> show cluster state
Cluster Mode:   Active Active with IGMP Membership

ID           Unique Address   Assigned Load   State    Name
1 (local)    11.22.33.245     N/A             ACTIVE   Member1
2            11.22.33.246     N/A             ACTIVE   Member2

Active PNOTEs: None
... ... ...
Member1>

기존 ClusterXL을 Active-Active 모드로 바꾸기

이미 운영 중인 클러스터를 Active-Active로 전환할 때의 절차입니다.

1단계 — SmartConsole로 Management Server에 접속합니다.

2단계 — 왼쪽 탐색 패널에서 Gateways & Servers 를 클릭합니다.

3단계 — 기존 ClusterXL 객체를 엽니다.

4단계 — 왼쪽 트리에서 ClusterXL and VRRP 를 클릭합니다.

5단계Select the cluster mode and configuration 섹션에서 Active-Active 를 선택 합니다.

6단계 — (필수) OK 를 클릭해 새 클러스터 모드로 클러스터 객체 속성을 갱신합니다.

7단계 — 클러스터 객체를 다시 열어 구성을 이어 갑니다.

8단계 — 동기화 설정. 왼쪽 트리에서 다시 ClusterXL and VRRP 를 클릭합니다.

  • Tracking 섹션에서 알맞은 옵션을 고릅니다.
  • (선택) Use State Synchronization 을 선택합니다. 멤버들이 검사한 연결 정보를 서로 동기화하게 됩니다.
  • (선택) Start synchronizing [ ] seconds after connection initiation 을 선택하고 값을 넣습니다(R80.20 이상에서만 사용 가능). 수명 짧은 연결의 동기화가 성능을 해치는 것을 막기 위해, 연결 시작 후 일정 시간 뒤부터 동기화를 시작합니다. 범위: 2~60초, 기본값: 3초.

9단계 — Network Management. 왼쪽 트리에서 Network Management 를 클릭합니다.

  • 각 인터페이스를 선택해 Edit 하고, 왼쪽 트리에서 General 페이지를 클릭합니다.
  • General 섹션의 Network Type 필드에서 알맞은 유형을 고릅니다.
    • 클러스터 트래픽 인터페이스는 ClusterIPv4 필드에 더미 IP 0.0.0.0 / 24 가 자동 설정됩니다.
  • 클러스터 동기화 인터페이스는 Sync — 동기화 네트워크는 하나만 지원하며, 이중화가 필요하면 Bond 인터페이스를 씁니다. 클라우드 배포(예: AWS, Azure)에서는 Cluster + Sync 선택이 지원되지 않습니다.
    • 트래픽을 전달하지 않는 인터페이스는 Private 를 선택합니다.
  • Member IPs 섹션에서 각 멤버의 IPv4 주소와 Netmask가 맞는지 확인합니다.
  • Topology 섹션에서:
    1. Leads To ·Security Zone 필드 설정이 맞는지 확인합니다.
    2. Modify 를 클릭합니다.
    3. Leads To 섹션에서 Override 를 선택했다면, 클러스터 인터페이스에는 다음 옵션만 지원 됩니다(Known Limitation PMTR-70260) — Override > Network defined by routes(기본값), Override > Specific > 해당 Network/Network Group 객체.
    4. Anti-Spoofing 섹션에서 Perform Anti-Spoofing based on interface topology 옵션을 반드시 해제 합니다.
    5. OK 를 클릭합니다.

10단계OK 를 클릭합니다.

11단계 — SmartConsole 세션을 Publish 합니다.

12단계 — 알맞은 Access Control Policy 를 구성하고 설치합니다.

13단계 — 알맞은 Threat Prevention Policy 를 구성하고 설치합니다.

14단계 — 클러스터 상태를 살핍니다(클러스터 상태 보기). show cluster state 출력은 새 클러스터 구성 때와 같은 형태로 두 멤버가 모두 ACTIVE 로 표시됩니다.

동적 라우팅 페일오버(Dynamic Routing Failover)

Active-Active 모드에서 동적 라우팅과 함께 장애가 일어났을 때의 동작입니다.

  • Sync 인터페이스에 문제가 생기면(인터페이스 상태 또는 링크 문제):
    • 해당 멤버의 Critical Device Interfaces Active Check 가 자기 상태를 "problem" 으로 보고합니다.
    • 각 Cluster Member는 동료 멤버의 상태를 LOST 로 보고합니다.
  • clusterXL_admin down 명령을 실행하면(clusterXL_admin 스크립트):
    • 해당 멤버의 Critical Device admin_down 이 자기 상태를 "problem" 으로 보고합니다.
    • 명령을 실행한 멤버는 자기 상태를 DOWN 으로 보고합니다.

어떤 Cluster Member의 클러스터 상태가 DOWN 이 되면, 그 멤버는 동적 라우팅 트래픽 처리를 멈춰 다음 홉 라우터(next hop router)가 라우팅 테이블을 갱신하도록 강제 합니다. 그 결과 일시적인 네트워크 단절이 생길 수 있습니다. 동적 라우팅 프로토콜이 라우팅 테이블을 갱신하고 변경을 전파하는 데 시간이 걸리기 때문입니다.

Geo Cluster

Geo Cluster 는 R81.20에서 도입된, 클라우드 환경의 ClusterXL High Availability 모드 입니다. 이 모드는 Cluster Member들이 서로 다른 클라우드 가용 영역(availability zone)에 위치 한 클러스터를 위해 설계되었습니다.

동작은 일반 HA와 같은 원리입니다. 각 Cluster Member는 자기에게 라우팅된 모든 트래픽을 검사하고, 기록한 연결을 동료 멤버에게 동기화 합니다. 또한 각 멤버가 자기 클러스터 상태와 동료 멤버의 상태를 함께 감시 하다가, 클러스터 장애가 나면 페일오버 합니다.

클라우드에서의 실제 배포 방법은 CloudGuard Network for AWS Cross Availability Zone Cluster Deployment Guide 를 참고하세요.

정리하면, 같은 네트워크 안에 모인 묶음이 HA·Load Sharing이라면, 지역·사이트·클라우드 가용 영역을 가로지르는 묶음이 Active-Active와 Geo Cluster 입니다.