FortiGate HA 환경에서 ARP 동기화 확인 방법
HA Failover 이후 통신 장애를 예방하기 위한 실무 점검 가이드
FortiGate를 Active-Passive HA 환경으로 운영하다 보면 장애 조치(Failover)는 정상적으로 완료되었지만 일부 사용자만 인터넷이 되지 않거나 특정 서버와의 통신이 실패하는 사례를 종종 경험하게 됩니다.
라우팅도 정상입니다.
방화벽 정책도 정상입니다.
세션도 정상적으로 생성됩니다.
그런데 일부 단말에서만 통신이 되지 않는다면 가장 먼저 확인해야 하는 항목 중 하나가 ARP 관련 동작입니다.
많은 엔지니어가 "HA에서 ARP 테이블이 동기화되지 않았다."라고 표현하지만, 실제 FortiGate의 동작 방식은 조금 다릅니다.
FortiGate HA는 ARP 테이블 자체를 두 장비 간에 복제하는 방식이 아니라 Active 장비 변경 시 Gratuitous ARP(GARP)를 전송하여 주변 장비의 ARP Cache를 갱신하는 방식으로 동작합니다.
따라서 이번 글에서는 HA 환경에서 ARP 동작 원리와 확인 방법을 CLI 중심으로 자세히 알아보겠습니다.
FortiGate 문서를 찾아볼 때 GUI보다 CLI를 중점적으로 봐야 하는 이유
FortiGate 문서를 찾아볼 때 GUI보다 CLI를 중점적으로 봐야 하는 이유FortiGate 운영 및 장애 분석 실무 가이드네트워크 엔지니어가 FortiGate를 운영하다 보면 새로운 기능을 설정하거나 장애를 분석하
moebnoos.com

FortiGate HA에서 ARP는 어떻게 동작할까
먼저 HA 구조를 이해해야 합니다.
ISP
│
Switch
│
├── FortiGate A (Primary)
└── FortiGate B (Secondary)
평상시에는 Primary 장비가 Active 상태로 동작합니다.
모든 PC는 Gateway의 MAC 주소를 Primary 장비의 Virtual MAC 또는 HA에서 사용하는 MAC으로 학습하고 있습니다.
장애가 발생하면
Primary Down
↓
Secondary Active
↓
Secondary가 Gratuitous ARP 전송
↓
Switch와 PC의 ARP Cache 갱신
↓
통신 정상
이 순서로 동작합니다.
즉, 실제로는 ARP 테이블을 복사하는 것이 아니라 새로운 Active 장비가 자신의 MAC 정보를 네트워크에 알려주는 방식입니다.
ARP 동기화라고 부르는 이유
실무에서는 대부분 다음과 같이 표현합니다.
"ARP 동기화가 안 된 것 같습니다."
하지만 엄밀히 말하면 이는 정확한 표현은 아닙니다.
실제로는
- HA Failover 발생
- 새로운 Active 장비가 GARP 전송
- 주변 장비가 ARP Cache 갱신
이 과정이 정상적으로 수행되지 않는 것입니다.
즉, 확인해야 하는 대상은 다음 세 가지입니다.
- HA 상태
- Gratuitous ARP 전송 여부
- 주변 장비의 ARP Cache 갱신 여부
이 세 가지를 함께 확인해야 원인을 정확하게 파악할 수 있습니다.
현재 HA 상태 확인
가장 먼저 확인해야 하는 명령어입니다.
get system ha status
출력 예시는 다음과 같습니다.
Mode : HA A-P
Master : FGT-A
Slave : FGT-B
Cluster Uptime : 12 days
확인해야 하는 항목은
- 현재 Active 장비
- Secondary 상태
- Cluster 정상 여부
- Heartbeat 상태
입니다.
HA가 정상적으로 전환되지 않았다면 ARP 이전에 HA부터 점검해야 합니다.
HA 구성 정보 확인
다음 명령도 자주 사용합니다.
show system ha
확인 가능한 항목은
- Mode
- Group ID
- Priority
- Heartbeat Interface
- Session Pickup
등입니다.
설정이 정상적으로 적용되어 있는지 함께 확인하는 것이 좋습니다.
ARP 테이블 확인
현재 Active 장비의 ARP 정보를 확인합니다.
get system arp
예시입니다.
192.168.10.20
00:11:22:33:44:55
port1
여기서 확인하는 목적은
현재 Active 장비가 정상적으로 ARP를 학습하고 있는지입니다.
ARP 정보가 존재하지 않는다면 GARP 이전에 통신 자체가 이루어지지 않았을 가능성도 있습니다.
Gratuitous ARP 전송 여부 확인
가장 중요한 단계입니다.
Packet Sniffer를 실행합니다.
diagnose sniffer packet any "arp" 4
Failover를 수행하면 다음과 같은 패킷이 보입니다.
ARP Request
ARP Reply
Gratuitous ARP
Gratuitous ARP에서는
Sender IP
Target IP
가 동일하게 나타나는 특징이 있습니다.
예를 들면
Sender IP
192.168.10.1
Target IP
192.168.10.1
이러한 형태라면 GARP가 정상적으로 전송되고 있는 것입니다.
실무에서는 Failover 테스트와 동시에 Packet Sniffer를 실행하여 확인하는 경우가 많습니다.
이벤트 로그 확인
HA 이벤트도 반드시 함께 확인해야 합니다.
먼저 필터를 설정합니다.
execute log filter category 1
execute log filter field subtype event
이후 로그를 조회합니다.
execute log display
출력 예시는 다음과 같습니다.
HA failover
Primary changed
Interface up
Interface down
이 로그를 통해 HA 전환 시점과 인터페이스 상태 변화를 함께 확인할 수 있습니다.
인터페이스 상태도 함께 확인
Failover가 발생했더라도 인터페이스가 Down 상태라면 GARP가 정상적으로 전달되지 않을 수 있습니다.
get system interface physical
확인 항목은 다음과 같습니다.
- Link Status
- Speed
- Duplex
- Interface State
특히 WAN 인터페이스가 Down 상태라면 회선 자체를 점검해야 합니다.
주변 스위치도 반드시 확인해야 하는 이유
FortiGate에서 GARP를 정상적으로 전송했더라도 스위치가 새로운 MAC 정보를 학습하지 못하면 장애가 지속될 수 있습니다.
Cisco 스위치 예시입니다.
show mac address-table
또는
show mac address-table dynamic
HA 전환 이후 MAC 주소가 새로운 Active 장비로 변경되었는지 확인해야 합니다.
클라이언트 ARP Cache도 확인
Windows PC는 일정 시간 동안 기존 ARP 정보를 유지할 수 있습니다.
따라서 FortiGate가 정상적으로 GARP를 전송했더라도 일부 PC는 이전 MAC 주소를 사용할 수 있습니다.
Windows에서는
arp -a
Linux에서는
ip neigh
명령으로 현재 ARP Cache를 확인할 수 있습니다.
필요한 경우 ARP Cache를 삭제한 뒤 재학습을 유도합니다.
GUI에서도 확인할 수 있을까
GUI에서도 일부 정보를 확인할 수 있습니다.
일반적으로 다음 메뉴에서 확인 가능합니다.
- Dashboard
- Network
- System → HA
- Log & Report → Event Log
다만 FortiOS 버전에 따라 GUI 메뉴 이름과 경로가 달라질 수 있으며, 일부 정보는 GUI에서 제공되지 않을 수도 있습니다.
특히 GARP 전송 여부나 상세 패킷 분석은 GUI보다 CLI가 훨씬 정확합니다.
실제 장애 사례
한 고객사의 FortiGate Active-Passive HA 환경에서 Primary 장비 장애가 발생했습니다.
Secondary 장비는 정상적으로 Active로 전환되었습니다.
그러나 일부 PC에서만 인터넷 연결이 되지 않았습니다.
점검 결과는 다음과 같았습니다.
- HA 상태 정상
- 정책 정상
- 라우팅 정상
- 세션 정상
Packet Sniffer를 실행하여 GARP를 확인했고, FortiGate에서는 정상적으로 Gratuitous ARP를 전송하고 있었습니다.
이후 코어 스위치의 MAC Address Table을 확인하니 기존 Active 장비의 MAC 주소가 그대로 유지되고 있었습니다.
스위치의 MAC Table을 갱신한 뒤 정상적으로 새로운 Active 장비의 MAC을 학습했고, 이후 모든 PC의 통신이 복구되었습니다.
이 사례는 "HA에서 ARP 동기화가 안 된다"는 표현으로 알려지는 대표적인 상황이지만, 실제 원인은 GARP 이후 주변 장비의 ARP 및 MAC 정보가 정상적으로 갱신되지 않은 것이었습니다.
네트워크 엔지니어가 기억해야 할 핵심 CLI
HA 상태 확인
get system ha status
HA 설정 확인
show system ha
ARP 테이블 확인
get system arp
GARP 확인
diagnose sniffer packet any "arp" 4
이벤트 로그 확인
execute log display
인터페이스 상태 확인
get system interface physical
마무리
FortiGate HA 환경에서 흔히 말하는 "ARP 동기화"는 ARP 테이블을 장비 간에 복제하는 기능이 아니라, Active 장비 변경 시 Gratuitous ARP를 전송하여 주변 장비의 ARP Cache를 갱신하는 메커니즘을 의미합니다.
따라서 장애 분석 시에는 ARP 테이블만 확인해서는 충분하지 않습니다. HA 상태 확인, GARP 전송 여부 확인, 이벤트 로그 분석, 인터페이스 상태 점검, 스위치의 MAC Address Table 확인, 클라이언트 ARP Cache 확인까지 함께 수행해야 정확한 원인을 찾을 수 있습니다.
GUI에서도 기본적인 상태는 확인할 수 있지만 FortiOS 버전에 따라 메뉴 경로와 제공 정보가 달라질 수 있으므로 참고용으로 활용하는 것이 좋습니다. 실제 운영 환경에서는 CLI를 중심으로 점검하는 것이 가장 빠르고 정확한 방법입니다.