소개
이 문서에서는 Cisco ASA(Adaptive Security Appliance) 장애 조치 또는 FTD(Firepower Threat Defense) HA(High Availability) 쌍에서 발생하는 일반적인 스플릿 브레인 문제를 해결하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
Cisco에서는 ASA/FTD High Availability Pair(Failover)의 작동 방식에 대해 알고 있는 것이 좋습니다(장애 조치 정보).
사용되는 구성 요소
이 문서는 특정 소프트웨어 또는 하드웨어 버전으로 제한되지 않으며 장애 조치에서 지원되는 모든 ASA/FTD 구축에 적용됩니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
표기 규칙
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.
스플릿 브레인(Split-Brain)이란 무엇입니까?
스플릿 브레인(Split-brain)은 ASA/FTD HA의 유닛이 네트워크에서 서로를 탐지할 수 없으므로 둘 다 활성 역할을 수행하는 시나리오입니다. 이렇게 하면 유닛이 동일한 인터페이스 IP 주소와 MAC 주소를 가지며 네트워크에 심각한 불일치를 일으켜 서비스가 손실될 수 있습니다.
HA가 스플릿 브레인(split-brain)에 있는지 확인하려면 두 유닛 모두에서 show failover state 명령을 실행하고 두 상자가 모두 활성 상태인지 확인합니다.
스플릿 브레인 예시:
기본 단위:
ciscoasa1/act/pri# show failover state
State Last Failure Reason Date/Time
This host - Primary
Active None
Other host - Secondary
Failed Comm Failure 02:39:43 UTC Jan 10 2022
====Configuration State===
Sync Done - STANDBY
====Communication State==
보조 유닛:
ciscoasa2/act/sec# show failover state
State Last Failure Reason Date/Time
This host - Secondary
Active None
Other host - Primary
Failed Comm Failure 02:39:40 UTC Jan 10 2022
====Configuration State===
Sync Done
Sync Done - STANDBY
====Communication State==
연결된 디바이스의 활성 IP 주소에 대해 학습된 MAC 주소가 모두 동일한 유닛이 아닐 경우 스플릿 브레인(split-brain)이 중단될 수 있습니다. 예를 들어, 네트워크 토폴로지를 고려하십시오.
랩 토폴로지
VMAC는 다음과 같이 인터페이스에 할당되었으며, 이는 mac 주소 테이블을 쉽게 이해할 수 있도록 하기 위해 수행되었습니다.
Inside (G0/2) : Active MAC - 00c1.1000.aaaa
Standby MAC - 00c1.1000.bbbb
Outside (G0/4) : Active MAC - 00c1.2000.aaaa
Standby MAC - 00c1.2000.bbbb
참고: VMAC이 구성되지 않은 경우 활성 디바이스는 항상 기본 유닛 인터페이스에 대해 MAC을 사용하며 스탠바이는 보조 MAC를 사용합니다.
HA가 정상인 경우 스위치의 MAC 주소 테이블:
Switch#show mac address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
100 00c1.1000.aaaa DYNAMIC Gi1/0/5
100 00c1.1000.bbbb DYNAMIC Gi1/0/1
300 00c1.64bc.c508 DYNAMIC Gi1/0/4
300 00d7.8f38.8424 DYNAMIC Gi1/0/8
200 00c1.2000.aaaa DYNAMIC Gi1/0/7
200 00c1.2000.bbbb DYNAMIC Gi1/0/3
장애 조치 링크에 장애가 발생하면 액티브 유닛은 활성 상태를 유지하고 스탠바이 유닛은 대기 상태를 유지합니다. 유닛이 장애 조치 링크에서 세 개의 연속 HELLO 메시지를 수신하지 않을 경우, 유닛은 장애 조치 링크를 비롯한 각 데이터 인터페이스에서 LANTEST 메시지를 전송하여 피어가 응답하는지 여부를 검증합니다. ASA에서 수행하는 작업은 다른 유닛의 응답에 따라 달라집니다.
가능한 작업은 다음과 같습니다.
- ASA가 장애 조치 링크에서 응답을 수신하면 장애 조치가 수행되지 않습니다.
- ASA가 장애 조치 링크에 대한 응답을 수신하지 않지만 데이터 인터페이스에서 응답을 수신하면 유닛이 장애 조치를 수행하지 않습니다. 장애 조치 링크가 실패한 것으로 표시됩니다. 장애 조치 링크가 중단된 동안에는 유닛에서 스탠바이 유닛으로 장애 조치를 수행할 수 없으므로 최대한 빨리 장애 조치 링크를 복원해야 합니다.
- ASA가 어떤 인터페이스도 응답을 받지 못하면 스탠바이 유닛은 액티브 모드로 전환되고 다른 유닛은 실패한 것으로 분류합니다. 이것은 스플릿 브레인 시나리오로 이어질 것이다.
이 단계에서는 두 방화벽의 모든 데이터 인터페이스가 액티브 유닛처럼 작동합니다. 따라서 액티브 및 스탠바이 방화벽의 인터페이스는 동일한 IP 및 MAC 주소를 사용합니다. 그러면 포이즌 arp 항목으로 인해 일관성 없는 MAC 주소 테이블이 생성되어 중단이 발생합니다.
참고: 장애 조치 링크는 장애 조치 쌍(Failover Pair): 유닛 상태(액티브/스탠바이), hello 메시지, 네트워크 링크 상태, MAC 주소 교환, 구성 복제 및 동기화 간의 이 데이터 통신을 담당합니다.
장애 조치 문제를 사전에 대비하는 방법
스플릿 브레인(Split-brain) 상태에 대해 사전에 대비하려면
스플릿 브레인 이유
이미 언급했듯이, 장애 조치 링크 인터페이스 간의 통신이 다운될 때(단방향 또는 양방향으로) 스플릿 브레인(split-brain)이 발생합니다. 가장 일반적인 이유는 다음과 같습니다.
문제 해결 절차 - 순서도
스플릿 브레인 시나리오를 트러블슈팅하고 해결하려면 이 순서도를 사용하여 Main으로 표시된 상자에서 시작합니다. 여기서 해결할 수 없는 문제가 있습니다. 이러한 경우 Cisco 기술 지원에 대한 링크가 제공됩니다. 서비스 요청을 열려면 유효한 서비스 계약이 있어야 합니다.
참고: FTD 구축에서 이 차트의 단계는 "system support diagnostics-cli"에서 따라야 합니다.
문제 해결 흐름도
스플릿 브레인 응급 복구
스플릿 브레인(split-brain)에서 네트워크를 복구하려면 트래픽이 두 방화벽 중 하나에 도달하는지, 즉 활성 IP에 대해 학습된 MAC 주소가 모두 단일 유닛을 가리키도록 해야 합니다. 이렇게 하려면 유닛에서 장애 조치를 비활성화하거나 네트워크를 완전히 차단할 수 있습니다.
- 트래픽을 전달하지 않는 유닛에서 장애 조치 비활성화:
- ASA 플랫폼에서 CLI를 통해 컨피그레이션 터미널로 이동하고 no failover 명령을 입력합니다.
- FTD Platform의 Clish 모드에서 configure high-availability suspend 명령을 입력합니다.
- ASA의 경우 데이터 인터페이스를 종료합니다. FTD의 경우 연결된 디바이스의 인터페이스를 종료합니다. 또는 인터페이스를 물리적으로 분리할 수도 있습니다. 또한 디바이스의 전원을 끌 수 있지만, 이렇게 하면 디바이스 관리가 제한됩니다. 이 작업을 수행하는 단계에 대한 디바이스 컨피그레이션 가이드를 참조하십시오.
참고: 앞서 언급한 단계를 수행한 후에도 연결 문제가 발생하면 연결된 디바이스에 오래된 arp 항목이 있을 수 있습니다. 업스트림 및 다운스트림 디바이스에서 arp 항목을 확인합니다. 이 문제를 해결하려면 이러한 항목을 플러시하거나 작업 중인 ASA/FTD에서 문제가 있는 인터페이스 IP에 대한 패킷 패킷을 전송하도록 강제할 수 있습니다. 이렇게 하려면 enable 모드에서 명령을 실행합니다(시스템의 FTD는 diagnostics-cli를 지원) - debug menu ipaddrutl 6 <interface ip address>.
주의: 스플릿 브레인 관련 문제에 대해 TAC와 함께 지원 티켓을 열 경우 이 문서에서 "TAC 서비스 요청에 대해 수집할 데이터" 섹션에 언급된 정보를 공유하십시오.
TAC와 공유할 데이터
TAC 서비스 요청을 열어야 할 경우에 대비하여 언급된 데이터를 공유하십시오.
- ASA/FTD-HA 및 인접 디바이스와의 물리적 연결을 보여 주는 토폴로지 다이어그램(장애 조치 인터페이스 포함).
- ASA의 show tech-support 또는 FTD를 실행하는 플랫폼의 문제 해결 파일에 대한 출력입니다.
- 문제가 발생한 경우 +/- 5분 동안 Syslogs와 타임스탬프가 함께 제공됩니다.
- FXOS 문제 해결 파일(하드웨어가 FPR 어플라이언스인 경우).
FTD 또는 FXOS에 대한 문제 해결 파일을 생성하려면 Firepower Troubleshoot File Generation Procedures를 참조하십시오. TAC SR을 엽니다.