[FortiGate] HA(High-Availability) Active-Passive로 구성하는 방법
HA(High-Availbility) 구성이란?
FortiGate는 FGCP(FortiGate Cluster Protocol)를 사용하여 이중화를 구성할 수 있습니다.
일반적으로 다운타임이 최소한으로 발생되어야 하는 시스템에서 사용되며 Active-Active, Active-Passive로 구성할 수 있습니다.
FortiGate가 Cluster를 협상하고 다른 FortiGate를 찾게되면 Hostname, HA Prriority를 제외하고 구성을 동기화합니다.
HA(High-Availbility) 필요 조건
1. FortiGate들은 Software Version과 Hardware Model이 일치해야합니다.
2. FortiGate에서 구성된 인터페이스 구성이 동일해야합니다. (VDOM, NAT or Transparent 포함)
2번은 필수는 아니지만 권장 사항으로 Cluster로 연결되는 FortiGate끼리 설정이 다른 경우에는 HA구성 시간이 오래 소요됩니다.
또한 일부 인터페이스는 HA가 구성되도 Data Input이 되어 있지 않기 때문에 구성 이후 Configuration 점검이 필요하다는 단점이 있습니다.
구성 시 주의 사항
1. HA 구성에서 Device priority는 기본값이 128입니다. (priority가 더 낮은쪽이 Passive로 동작)
만약 priority가 같은 경우에는 SerialNumber가 더 높은 쪽이 Active 역할을 가져갑니다.
2. WAN IP를 DHCP로 구성하는 경우 아이피 할당이 정상적이지 않을 수 있기 때문에 임시로 Static IP로 설정하는 것을 권장합니다.
3. ForitGate 라이선스가 양 측이 다른 경우에는 더 낮은 기능의 라이선스로 동기화됩니다.
Active-Passive 구성 (Active FortiGate)
HA를 구성하게 되면 Passive로 동작하는 FortiGate의 MGMT를 접근할 수 없습니다. (인터페이스가 다 묶이기 떄문입니다.)
Passive FortiGate를 접근하기 위해서는 구성 단계에서 Management Interface Reservation으로 MGMT를 추가합니다.
System → HA 메뉴에서 구성을 진행하면 HA 준비를 끝마칠 수 있습니다.
Cluster Settings에 대한 자세한 설명은 하기 접은글을 참고해주세요
Management Interface Reservation은 각 FortiGate에서 독립적으로 운용하기 위한 설정으로 MGMT를 추가할 수 있습니다.
(다른 인터페이스도 추가가 가능하지만 구성 상 물리적인 접근이 필요한 경우가 있다면 MGMT를 권장합니다.)
Cluster Settings
Session pickup - Active에서 Passive FortiGate로 권한이 넘어갈 때 Session Table를 전달하여 끊김을 최소화하는 기능입니다.
Session pickup은 Heartbeat Interface를 통해 발생하며 TCP/UDP 703 packet으로 통신합니다.
Monitor interfaces - 여러개의 인터페이스를 추가할 수 있으며, 1개라도 인터페이스가 다운되면 Failover를 진행합니다.
일반적으로는 전체 장애라고 판단할 수 있는 WAN, LAN 인터페이스를 지정합니다.
Heartbeat interfaces - 해당 인터페이스를 통해 Hello Packet를 주고 받으며 같은 Group으로 속해있는 Cluster를 찾게 됩니다.
Cluster를 찾아야 설정을 동기화할 수 있으며 통신을 위해 169.254.0.X라는 가상의 대역을 사용합니다.
(일반적으로 Active가 169.254.0.1를 가져가고 다음부터는 S/N가 높은 순서대로 2, 3, 4를 할당 받습니다.)
Active-Passive 구성 (Passive FortiGate)
Passive FortiGate에서는 Cluster Settings만 적용하면 바로 HA 구성을 마칠 수 있습니다.
만약 Configuration를 먼저 설정한 FortiGate가 더 낮은 Serial Number를 갖고 있다면 UPTIME를 높혀 Active를 가져가도록 합니다.
설정 이후에는 Active FortiGate에서 정상적으로 Sync가 성공한 것을 확인할 수 있습니다.
get system ha status 명령어를 통해 Active-Passive로 설정이 되었는지와 Cluster가 정상적으로 붙었는지 확인할 수 있습니다.
논리적인 Failover (Memory-based-failover)
Monitor interfaces는 물리적으로 포트가 다운 상태가 되면 Failover를 할 수 있습니다.
하지만 네트워크 장비는 CPU, Memory등으로 문제가 발생할 수 있기 때문에 그에 대한 대처 방안 마련이 필요합니다.
Memory-based-failover는 FortiGate에서 체크되는 평균 메모리가 특정 수치 이상일 때 Failover를 시작합니다.
자세한 명령어 및 설정 방법은 접은글을 확인해주세요
UTM#config system ha
UTM(ha)#set memory-based-failover enable / 메모리 사용률에 따른 HA Failover 기능 활성화
UTM(ha)#set memory-failover-threshold [Number] / Failover를 동작할 메모리 사용률 기준
UTM(ha)#set memory-failover-monitor-period [Number] / 메모리 사용률 체크 간격 (120이면 120초동안의 메모리 사용률을 본다.)
UTM(ha)#set memory-failover-sample-rate [Number] / 메모리 사용률 관찰 주기 (1이면 1초마다)
UTM(ha)#set memory-failover-flip-timeout [Number] / Failover가 발생 후 설정 시간동안 다시 Failover가 발생하지 않는다.
Active FortiGate에서 사용할 수 있는 유용한 명령어
execute ha synchronize start → 강제로 Sync를 시작할 수 있으며 Configuration이 1~2개정도 일치 되지 않을 때 사용하는 것을 권장합니다.
execute ha manage (cluster_number) → Active FortiGate에서 특정 Cluster number를 가진 FortiGate로 접근할 수 있습니다.
Cluster number는 "get system ha status"를 통해 확인 가능합니다.
diagnose sys ha reset-uptime → FortiGate의 UPTIME를 초기화하여 Failover를 진행한다. (Active는 Standby보다 UPTIME이 높습니다.)
*주의사항 → Passive FortiGate에 접근할 때 execute ssh username@heartbeat_IP 로는 접근할 수 없습니다.
👍🏻 Made by NODELINE (ssotok12@naver.com)
Thank you for reading it.