본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 Firepower NGFW(Next-Generation Firewall)에 대한 클러스터 설정 트러블슈팅에 대해 설명합니다. 이 문서에서 다루는 대부분의 항목은 ASA(Adaptive Security Appliance) 클러스터 트러블슈팅에도 완전히 적용됩니다.
다음 항목에 대한 지식이 있는 것이 좋습니다(링크의 경우 관련 정보 섹션 참조).
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 지워진(기본) 컨피그레이션으로 시작되었습니다.네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
클러스터 구축의 컨피그레이션 부분은 FMC 및 FXOS 컨피그레이션 가이드에서 다룹니다.
Firepower 41xx 또는 93xx Series가 어떻게 전송 패킷을 처리하는지 이해하는 것이 중요합니다.
Firepower 어플라이언스는 트랜짓 흐름에 대한 가시성을 확보할 수 있는 여러 캡처 지점을 제공합니다.문제를 해결하고 cluster를 활성화하면 다음과 같은 주요 문제가 발생합니다.
이 다이어그램은 2유닛 클러스터(예: FP941xx/FP9300)를 보여줍니다.
비대칭 TCP 연결이 TCP SYN을 설정하는 경우 SYN/ACK 교환은 다음과 같습니다.
트래픽 전달
반환 트래픽
이 시나리오에 대한 자세한 내용은 Cluster Connection Establish Case Studies의 관련 섹션을 참조하십시오.
이 패킷 교환을 기반으로 가능한 모든 클러스터 캡처 포인트는 다음과 같습니다.
포워드 트래픽(예: TCP SYN) 캡처의 경우:
반환 트래픽(예: TCP SYN/ACK) 캡처의 경우:
클러스터 캡처를 활성화하는 방법
FXOS 캡처
이 프로세스는 FXOS 컨피그레이션 가이드에서 설명합니다.패킷 캡처
참고:FXOS 캡처는 내부 스위치 POV의 인그레스 방향에서만 수행할 수 있습니다.
데이터 플레인 캡처
모든 클러스터 멤버에 캡처를 활성화하는 권장 방법은 cluster exec 명령을 사용하는 것입니다.
3유닛 클러스터를 고려하십시오.
모든 클러스터 유닛에 활성 캡처가 있는지 확인하려면 다음 명령을 사용합니다.
firepower# cluster exec show capture
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
firepower#
Po1.201(INSIDE)의 모든 유닛에서 데이터 플레인 캡처를 활성화하려면
firepower# cluster exec capture CAPI interface INSIDE
캡처 필터를 지정하는 것이 좋습니다. 캡처 버퍼를 증가시키는 트래픽이 많을 경우 다음과 같이 지정하는 것이 좋습니다.
firepower# cluster exec capture CAPI buffer 33554432 interface INSIDE match tcp host 192.168.240.50 host 192.168.241.50 eq 80
확인
firepower# cluster exec show capture
unit-1-1(LOCAL):******************************************************
capture CAPI type raw-data buffer 33554432 interface INSIDE [Capturing - 5140 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-2-1:*************************************************************
capture CAPI type raw-data buffer 33554432 interface INSIDE [Capturing - 260 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-3-1:*************************************************************
capture CAPI type raw-data buffer 33554432 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
모든 캡처의 내용을 보려면 다음을 수행합니다. 이 출력은 매우 길어질 수 있습니다.
firepower# terminal pager 24
firepower# cluster exec show capture CAPI
unit-1-1(LOCAL):******************************************************
21 packets captured
1: 11:33:09.879226 802.1Q vlan#201 P0 192.168.240.50.45456 > 192.168.241.50.80: S 2225395909:2225395909(0) win 29200 <mss 1460,sackOK,timestamp 1110209649 0,nop,wscale 7>
2: 11:33:09.880401 802.1Q vlan#201 P0 192.168.241.50.80 > 192.168.240.50.45456: S 719653963:719653963(0) ack 2225395910 win 28960 <mss 1380,sackOK,timestamp 1120565119 1110209649,nop,wscale 7>
3: 11:33:09.880691 802.1Q vlan#201 P0 192.168.240.50.45456 > 192.168.241.50.80: . ack 719653964 win 229 <nop,nop,timestamp 1110209650 1120565119>
4: 11:33:09.880783 802.1Q vlan#201 P0 192.168.240.50.45456 > 192.168.241.50.80: P 2225395910:2225396054(144) ack 719653964 win 229 <nop,nop,timestamp 1110209650 1120565119>
unit-2-1:*************************************************************
0 packet captured
0 packet shown
unit-3-1:*************************************************************
0 packet captured
0 packet shown
추적 캡처
인그레스 패킷이 각 유닛의 데이터 플레인에 의해 처리되는 방법을 보려면 trace 키워드를 사용합니다.이는 처음 50개의 인그레스 패킷을 추적합니다.최대 1,000개의 인그레스 패킷을 추적할 수 있습니다.인터페이스에 여러 캡처가 적용된 경우 단일 패킷을 한 번만 추적할 수 있습니다.
모든 클러스터 유닛의 인터페이스 OUTSIDE에서 첫 번째 1000개의 인그레스 패킷을 추적하려면
firepower# cluster exec cap CAPO int OUTSIDE buff 33554432 trace trace-count 1000 match tcp host 192.168.240.50 host 192.168.241.50 eq www
관심 흐름을 캡처하면 각 유닛에서 관심 패킷을 추적해야 합니다.기억해야 할 중요한 것은 특정 패킷이 유닛 1-1에서는 #1 수 있지만 다른 유닛 등에서는 #2입니다.
이 예에서는 SYN/ACK가 unit-2-1의 패킷 #2이지만 unit-3-1의 패킷 #1인 것을 확인할 수 있습니다.
firepower# cluster exec show capture CAPO | include S.*ack
unit-1-1(LOCAL):******************************************************
1: 12:58:31.117700 802.1Q vlan#202 P0 192.168.240.50.45468 > 192.168.241.50.80: S 441626016:441626016(0) win 29200 <mss 1380,sackOK,timestamp 1115330849 0,nop,wscale 7>
2: 12:58:31.118341 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45468: S 301658077:301658077(0) ack 441626017 win 28960 <mss 1460,sackOK,timestamp 1125686319 1115330849,nop,wscale 7>
unit-2-1:*************************************************************
unit-3-1:*************************************************************
1: 12:58:31.111429 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45468: S 301658077:301658077(0) ack 441626017 win 28960 <mss 1460,sackOK,timestamp 1125686319 1115330849,nop,wscale 7>
로컬 유닛에서 패킷 #2(SYN/ACK)을 추적하려면
firepower# cluster exec show cap CAPO packet-number 2 trace
unit-1-1(LOCAL):******************************************************
2: 12:58:31.118341 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45468: S 301658077:301658077(0) ack 441626017 win 28960 <mss 1460,sackOK,timestamp 1125686319 1115330849,nop,wscale 7>
Phase: 1
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
MAC Access list
...
원격 유닛에서 동일한 패킷(SYN/ACK)을 추적하려면
firepower# cluster exec unit unit-3-1 show cap CAPO packet-number 1 trace
1: 12:58:31.111429 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45468: S 301658077:301658077(0) ack 441626017 win 28960 <mss 1460,sackOK,timestamp 1125686319 1115330849,nop,wscale 7>
Phase: 1
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
MAC Access list
...
CCL 캡처
CCL 링크(모든 유닛에서)에서 캡처를 활성화하려면
firepower# cluster exec capture CCL interface cluster
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
기본 숨기기
기본적으로 데이터 플레인 데이터 인터페이스에서 활성화된 캡처는 모든 패킷을 표시합니다.
다시 삽입된 패킷을 표시하지 않으려면 reinject-hide 옵션을 사용합니다.이 기능은 플로우가 비대칭인지 확인하려면 도움이 될 수 있습니다.
firepower# cluster exec capture CAPI_RH reinject-hide interface INSIDE match tcp host 192.168.240.50 host 192.168.241.50 eq 80
이 캡처는 다른 클러스터 유닛이 아닌 물리적 네트워크에서 직접 특정 인터페이스에서 실제로 수신하는 로컬 유닛을 보여줍니다.
ASP 삭제
특정 플로우에 대한 소프트웨어 삭제를 확인하려면 asp-drop 캡처를 활성화할 수 있습니다.중점을 두어야 할 삭제 이유를 모를 경우 all 키워드를 사용합니다.또한 패킷 페이로드에 관심이 없는 경우 헤더 전용 키워드를 지정할 수 있습니다.이렇게 하면 20-30배 더 많은 패킷을 캡처할 수 있습니다.
firepower# cluster exec cap ASP type asp-drop all buffer 33554432 headers-only
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
또한 ASP 캡처에 관심 있는 IP를 지정할 수 있습니다.
firepower# cluster exec cap ASP type asp-drop all buffer 33554432 headers-only match ip host 192.0.2.100 any
캡처 지우기
모든 클러스터 유닛에서 실행되는 캡처의 버퍼를 지웁니다.이렇게 하면 캡처가 중지되지 않고 버퍼만 지워집니다.
firepower# cluster exec clear capture /all
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
캡처 중지
모든 클러스터 유닛에서 활성 캡처를 정지하는 두 가지 방법이 있습니다.나중에 다시 시작할 수 있습니다.
1단계
firepower# cluster exec cap CAPI stop
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
다시 시작하려면
firepower# cluster exec no capture CAPI stop
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
2단계
firepower# cluster exec no capture CAPI interface INSIDE
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
다시 시작하려면
firepower# cluster exec capture CAPI interface INSIDE
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
캡처 수집
캡처를 내보내는 방법은 여러 가지가 있습니다.
1단계 - 원격 서버로
이렇게 하면 데이터 플레인에서 원격 서버(예: TFTP)로 캡처를 업로드할 수 있습니다. 캡처 이름은 소스 유닛을 반영하여 자동으로 변경됩니다.
firepower# cluster exec copy /pcap capture:CAPI tftp://192.168.240.55/CAPI.pcap
unit-1-1(LOCAL):******************************************************
Source capture name [CAPI]?
Address or name of remote host [192.168.240.55]?
Destination filename [CAPI.pcap]?
INFO: Destination filename is changed to unit-1-1_CAPI.pcap !!!!!!!
81 packets copied in 0.40 secs
unit-2-1:*************************************************************
INFO: Destination filename is changed to unit-2-1_CAPI.pcap !
unit-3-1:*************************************************************
INFO: Destination filename is changed to unit-3-1_CAPI.pcap !
업로드된 pcap 파일:
2단계 - FMC에서 캡처 가져오기
이 방법은 FTD에만 적용됩니다.먼저 FTD 디스크에 캡처를 복사합니다.
firepower# cluster exec copy /pcap capture:CAPI disk0:CAPI.pcap
unit-1-1(LOCAL):******************************************************
Source capture name [CAPI]?
Destination filename [CAPI.pcap]?
!!!!!
62 packets copied in 0.0 secs
expert 모드에서 /mnt/disk0/에서 /ngfw/var/common/ 디렉토리로 파일을 복사합니다.
> expert
admin@firepower:~$ cd /mnt/disk0
admin@firepower:/mnt/disk0$ sudo cp CAPI.pcap /ngfw/var/common
마지막으로, FMC에서 System > Health > Monitor 섹션으로 이동합니다.View System & Troubleshoot Details > Advanced Troubleshooting을 선택하고 캡처 파일을 가져옵니다.
캡처 삭제
모든 클러스터 유닛에서 캡처를 제거하려면 다음 명령을 사용합니다.
firepower# cluster exec no capture CAPI
unit-1-1(LOCAL):******************************************************
unit-2-1:*************************************************************
unit-3-1:*************************************************************
오프로드된 플로우
FP41xx/FP9300 흐름에서 정적으로(예: Fastpath 규칙) 또는 동적으로 HW Accelerator로 오프로드할 수 있습니다.플로우 오프로드에 대한 자세한 내용은 이 문서를 참조하십시오.
플로우가 오프로드되면 소수의 패킷만 FTD 데이터 플레인을 통과합니다.나머지는 HW Accelerator(Smart NIC)에 의해 처리됩니다.
FTD 데이터 플레인 레벨 캡처만 활성화하면 디바이스를 통과하는 모든 패킷이 표시되지 않는다는 것을 캡처 관점에서 볼 수 있습니다.이 경우 FXOS 섀시 레벨 캡처를 활성화해야 합니다.
CCL에서 캡처를 수행할 경우 클러스터 유닛이 서로 다른 유형의 메시지를 교환한다는 것을 알 수 있습니다.관심 분야:
프로토콜 |
설명 |
UDP 49495 |
클러스터 하트비트(keepalive) · L3 브로드캐스트(255.255.255.255) · 이러한 패킷은 상태 확인 보류 시간 값의 1/3에 모든 클러스터 유닛에서 전송됩니다. · 캡처에 표시된 모든 UDP 49495 패킷이 하트비트는 아닙니다. · 하트비트에 시퀀스 번호가 포함되어 있습니다. |
UDP 4193 |
클러스터 제어 프로토콜 데이터 경로 메시지 · 유니캐스트 · 이러한 패킷에는 플로우 소유자, 디렉터, 백업 소유자 등에 대한 정보(메타데이터)가 포함됩니다.예를 들면 다음과 같습니다. · 새 플로우가 생성되면 'cluster add' 메시지가 소유자로부터 디렉터로 전송됩니다. · 플로우가 종료되면 'cluster delete' 메시지가 소유자에서 디렉터로 전송됩니다. |
데이터 패킷 |
클러스터를 통과하는 다양한 트래픽 흐름에 속하는 데이터 패킷 |
클러스터 하트비트
하트비트 메시지 외에도 특정 시나리오에서 CCL을 통해 교환되는 클러스터 제어 메시지가 여러 개 있습니다.일부는 유니캐스트 메시지이고 나머지는 브로드캐스트입니다.
CLUSTER_QUIT_REASON_MASTER_UNIT_HC
유닛에서 제어 노드에서 3개의 연속 하트비트 메시지를 손실할 때마다 CCL을 통해 CLUSTER_QUIT_REASON_MASTER_UNIT_HC 메시지가 생성됩니다.메시지:
Q. CLUSTER_QUIT_REASON_MASTER_UNIT_HC의 목적은 무엇입니까?
A. 유닛-3-1(사이트-B) 관점에서, 사이트 A에서 유닛-1-1과 유닛-2-1의 연결이 모두 끊기므로 가능한 한 빨리 구성원 목록에서 제거해야 합니다. 그렇지 않으면 유닛-2-1이 구성원 목록에 있고 유닛-2-1이 연결의 디렉터가 되면 패킷이 손실되고 유닛-2-1에 대한 플로우 쿼리가 실패합니다.
CLUSTER_QUIT_REASON_UNIT_HC
제어 노드가 데이터 노드에서 연속적인 하트비트 메시지 3개를 손실할 때마다 CCL을 통해 CLUSTER_QUIT_REASON_UNIT_HC 메시지를 전송합니다.이 메시지는 유니캐스트입니다.
CLUSTER_QUIT_REASON_STRAY_MEMBER
분할 파티션이 피어 파티션과 다시 연결되면 새 데이터 노드는 상위 제어 유닛에서 분리된 멤버로 취급되며 CLUSTER_QUIT_REASON_STRAY_MEMBER를 이유로 CCP 종료 메시지를 받습니다.
CLUSTER_QUIT_MEMBER_DROPOUT
데이터 노드에 의해 생성되고 브로드캐스트로 전송되는 브로드캐스트 메시지.유닛에서 이 메시지를 수신하면 DISABLED 상태로 전환됩니다.또한 자동 다시 연결은 해제되지 않습니다.
firepower# show cluster info trace | include DROPOUT
Nov 04 00:22:54.699 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 to unit-1-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
Nov 04 00:22:53.699 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 to unit-2-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
클러스터 기록에 다음이 표시됩니다.
MASTER DISABLED Received control message DISABLE (member dropout announcement)
주요 내용
클러스터 상태 카운터를 확인하려면 다음 명령을 사용합니다.
firepower# show cluster info health details
----------------------------------------------------------------------------------
| Unit (ID)| Heartbeat| Heartbeat| Average| Maximum| Poll|
| | count| drops| gap (ms)| slip (ms)| count|
----------------------------------------------------------------------------------
| unit-2-1 ( 1)| 650| 0| 4999| 1| 0|
| unit-3-1 ( 2)| 650| 0| 4999| 1| 0|
----------------------------------------------------------------------------------
기본 열에 대한 설명
열 |
설명 |
단위(ID) |
원격 클러스터 피어의 ID |
하트비트 수 |
CCL을 통해 원격 피어에서 받은 하트비트 수 |
하트비트 삭제 |
누락된 하트비트 수입니다.이 카운터는 수신된 하트비트 시퀀스 번호를 기반으로 계산됩니다 |
평균 간격 |
수신된 하트비트의 평균 시간 간격 |
폴링 개수 |
이 카운터가 3이 되면 클러스터에서 유닛이 제거됩니다.폴링 쿼리 간격은 하트비트 간격과 동일하지만 독립적으로 실행됩니다. |
카운터를 재설정하려면 다음 명령을 사용합니다.
firepower# clear cluster info health details
Q. 하트비트 빈도를 확인하는 방법
A. 평균 간격 값을 확인합니다.
firepower# show cluster info health details
----------------------------------------------------------------------------------
| Unit (ID)| Heartbeat| Heartbeat| Average| Maximum| Poll|
| | count| drops| gap (ms)| slip (ms)| count|
----------------------------------------------------------------------------------
| unit-2-1 ( 1)| 3036| 0| 999| 1| 0|
----------------------------------------------------------------------------------
Q. FTD의 클러스터 보류 시간을 변경하려면 어떻게 해야 합니까?
A. FlexConfig 사용
Q: 스플릿 브레인 후에 제어 노드가 되는 사람은 누구입니까?
A. 우선순위가 가장 높은 단위(가장 낮은 번호):
firepower# show run cluster | include priority
priority 9
자세한 내용은 HC 실패 시나리오 1을 참조하십시오.
클러스터 HC 메커니즘 시각화
예시적 타이머:최소값과 최대값은 마지막으로 수신한 CCL 패킷 도착에 따라 다릅니다.
보류 시간 |
쿼리 검사 폴링 (빈도) |
최소 탐지 시간 |
최대 탐지 시간 |
3초(기본값) |
~1초 |
~3.01초 |
~3.99초 |
4초 |
~1.33초 |
~4.01초 |
~5.32초 |
5초 |
~1.66초 |
~5.01초 |
~6.65초 |
6초 |
~2초 |
~6.01초 |
~7.99초 |
7초 |
~2.33초 |
~7.01초 |
~9.32초 |
8초 |
~2.66초 |
~8.01초 |
~10.65초 |
이 섹션의 목표는 다음과 같습니다.
토폴로지
클러스터 구성
장치-1-1 |
장치-2-1 |
장치-3-1 |
cluster group GROUP1 |
cluster group GROUP1 |
cluster group GROUP1 |
클러스터 상태
장치-1-1 |
장치-2-1 |
장치-3-1 |
firepower# show cluster info |
firepower# show cluster info |
firepower# show cluster info |
시나리오 1
양방향의 CCL 통신 손실 최대 4초 이상
실패 전
FTD1 |
FTD2 |
FTD3 |
사이트-A |
사이트-A |
사이트-B |
제어 노드 |
데이터 노드 |
데이터 노드 |
복구 후(유닛 역할에서 변경 사항 없음)
FTD1 |
FTD2 |
FTD3 |
사이트-A |
사이트-A |
사이트-B |
제어 노드 |
데이터 노드 |
데이터 노드 |
분석
실패(CCL 통신이 손실됨)
unit-3-1의 데이터 플레인 콘솔 메시지:
firepower#
WARNING: dynamic routing is not supported on management interface when cluster interface-mode is 'spanned'.
If dynamic routing is configured on any management interface, please remove it.
Cluster unit unit-3-1 transitioned from SLAVE to MASTER
Cluster disable is performing cleanup..done.
All data interfaces have been shutdown due to clustering being disabled.
To recover either enable clustering or remove cluster group configuration.
Unit-1-1 클러스터 추적 로그:
firepower# show cluster info trace | include unit-3-1
Nov 02 09:38:14.239 [INFO]Notify chassis de-bundle port for blade unit-3-1, stack 0x000055a8918307fb 0x000055a8917fc6e8 0x000055a8917f79b5
Nov 02 09:38:14.239 [INFO]FTD - CD proxy received state notification (DISABLED) from unit unit-3-1
Nov 02 09:38:14.239 [DBUG]Send CCP message to all: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
Nov 02 09:38:14.239 [INFO]Notify chassis de-bundle port for blade unit-3-1, stack 0x000055a8917eb596 0x000055a8917f4838 0x000055a891abef9d
Nov 02 09:38:14.239 [DBUG]Send CCP message to id 1: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_REASON_UNIT_HC
Nov 02 09:38:14.239 [CRIT]Received heartbeat event 'slave heartbeat failure' for member unit-3-1 (ID: 1).
스플릿 브레인
장치-1-1 |
장치-2-1 |
장치-3-1 |
firepower# show cluster info |
firepower# show cluster info |
firepower# show cluster info |
클러스터 기록
장치-1-1 |
장치-2-1 |
장치-3-1 |
이벤트 없음 |
이벤트 없음 |
09:38:16 UTC Nov 2 2020 |
CCL 통신 복원
Unit-1-1은 현재 제어 노드를 탐지하고 unit-1-1의 우선순위가 높으므로 새 선택 프로세스를 트리거하기 위해 유닛-3-1에 CLUSTER_QUIT_REASON_STRAY_MEMBER 메시지를 보냅니다.결국 unit-3-1은 데이터 노드로 다시 연결됩니다.
분할 파티션이 피어 파티션과 다시 연결되면 데이터 노드는 상위 제어 노드에 의해 분리된 멤버로 취급되며 CLUSTER_QUIT_REASON_STRAY_MEMBER라는 이유로 CCP 종료 메시지를 받습니다.
Unit-3-1 console logs show:
Cluster unit unit-3-1 transitioned from MASTER to DISABLED
The 3DES/AES algorithms require a Encryption-3DES-AES activation key.
Detected Cluster Master.
Beginning configuration replication from Master.
WARNING: Local user database is empty and there are still 'aaa' commands for 'LOCAL'.
..
Cryptochecksum (changed): a9ed686f 8e2e689c 2553a104 7a2bd33a
End configuration replication from Master.
Cluster unit unit-3-1 transitioned from DISABLED to SLAVE
두 유닛(unit-1-1 및 unit-3-1)은 모두 클러스터 로그에 표시됩니다.
firepower# show cluster info trace | include retain
Nov 03 21:20:23.019 [CRIT]Found a split cluster with both unit-1-1 and unit-3-1 as master units. Master role retained by unit-1-1, unit-3-1 will leave then join as a slave
Nov 03 21:20:23.019 [CRIT]Found a split cluster with both unit-1-1 and unit-3-1 as master units. Master role retained by unit-1-1, unit-3-1 will leave then join as a slave
스플릿 브레인(split-brain)에 대해 생성되는 syslog 메시지도 있습니다.
firepower# show log | include 747016
Nov 03 2020 21:20:23: %FTD-4-747016: Clustering: Found a split cluster with both unit-1-1 and unit-3-1 as master units. Master role retained by unit-1-1, unit-3-1 will leave then join as a slave
Nov 03 2020 21:20:23: %FTD-4-747016: Clustering: Found a split cluster with both unit-1-1 and unit-3-1 as master units. Master role retained by unit-1-1, unit-3-1 will leave then join as a slave
클러스터 기록
장치-1-1 |
장치-2-1 |
장치-3-1 |
이벤트 없음 |
이벤트 없음 |
09:47:33 UTC Nov 2 2020 |
시나리오 2
양방향의 CCL 통신 손실 최대 3~4초
실패 전
FTD1 |
FTD2 |
FTD3 |
사이트-A |
사이트-A |
사이트-B |
제어 노드 |
데이터 노드 |
데이터 노드 |
복구 후(유닛 역할에서 변경 사항 없음)
FTD1 |
FTD2 |
FTD3 |
사이트-A |
사이트-A |
사이트-B |
제어 노드 |
데이터 노드 |
데이터 노드 |
분석
이벤트 1:제어 노드는 유닛 3-1에서 3HC를 잃고 유닛 3-1에 메시지를 보내 클러스터를 종료합니다.
이벤트 2:CCL이 매우 빠르게 복구되고 제어 노드의 CLUSTER_QUIT_REASON_STRAY_MEMBER 메시지가 원격 쪽으로 이동했습니다.Unit-3-1은 DISABLED 모드로 직접 이동하며 스플릿 브레인(split-brain)은 없습니다.
unit-1-1(제어)에서 다음을 볼 수 있습니다.
firepower#
Asking slave unit unit-3-1 to quit because it failed unit health-check.
Forcing stray member unit-3-1 to leave the cluster
unit-3-1(데이터 노드)에서 다음을 볼 수 있습니다.
firepower#
Cluster disable is performing cleanup..done.
All data interfaces have been shutdown due to clustering being disabled. To recover either enable clustering or remove cluster group configuration.
Cluster unit unit-3-1 transitioned from SLAVE to DISABLED
클러스터 유닛 유닛-3-1이 DISABLED 상태로 전환되고 CCL 통신이 복원되면 데이터 노드로 다시 조인됩니다.
firepower# show cluster history
20:58:40 UTC Nov 1 2020
SLAVE DISABLED Received control message DISABLE (stray member)
20:58:45 UTC Nov 1 2020
DISABLED ELECTION Enabled from CLI
20:58:45 UTC Nov 1 2020
ELECTION SLAVE_COLD Received cluster control message
20:58:45 UTC Nov 1 2020
SLAVE_COLD SLAVE_APP_SYNC Client progression done
20:59:33 UTC Nov 1 2020
SLAVE_APP_SYNC SLAVE_CONFIG Slave application configuration sync done
20:59:44 UTC Nov 1 2020
SLAVE_CONFIG SLAVE_FILESYS Configuration replication finished
20:59:45 UTC Nov 1 2020
SLAVE_FILESYS SLAVE_BULK_SYNC Client progression done
21:00:09 UTC Nov 1 2020
SLAVE_BULK_SYNC SLAVE Client progression done
시나리오 3
양방향의 CCL 통신 손실 최대 3~4초
실패 전
FTD1 |
FTD2 |
FTD3 |
사이트-A |
사이트-A |
사이트-B |
제어 노드 |
데이터 노드 |
데이터 노드 |
복구 후(제어 노드가 변경됨)
FTD1 |
FTD2 |
FTD3 |
사이트-A |
사이트-A |
사이트-B |
데이터 노드 |
제어 노드 |
데이터 노드 |
분석
CCL 복구
클러스터 기록
장치-1-1 |
장치-2-1 |
장치-3-1 |
19:53:09 UTC Nov 2 2020 |
19:53:06 UTC Nov 2 2020 |
19:53:06 UTC Nov 2 2020 |
시나리오 4
최대 3~4초 동안 CCL 통신 손실
실패 전
FTD1 |
FTD2 |
FTD3 |
사이트-A |
사이트-A |
사이트-B |
제어 노드 |
데이터 노드 |
데이터 노드 |
복구 후(제어 노드가 사이트를 변경함)
FTD1 |
FTD2 |
FTD3 |
사이트-A |
사이트-A |
사이트-B |
데이터 노드 |
데이터 노드 |
제어 노드 |
분석
실패
동일한 실패의 다른 맛이 있습니다.이 경우, unit-1-1은 또한 유닛-3-1에서 3HC 메시지를 받지 못했고, 새로운 keepalive가 STRAY 메시지를 사용하여 유닛-3-1을 차근차근차근 수행하려고 했지만 메시지가 유닛-3-1에 전달되지 않았습니다.
메모
5단계에서 CCL이 복구되지 않으면 사이트-A에서 FTD1이 새 제어 노드가 되고 CCL 복구 후 새 선택이 선택됩니다.
유닛 1-1의 Syslog 메시지:
firepower# show log | include 747
Nov 03 2020 23:13:08: %FTD-7-747005: Clustering: State machine notify event CLUSTER_EVENT_MEMBER_STATE (unit-3-1,DISABLED,0x0000000000000000)
Nov 03 2020 23:13:09: %FTD-4-747015: Clustering: Forcing stray member unit-3-1 to leave the cluster
Nov 03 2020 23:13:09: %FTD-7-747005: Clustering: State machine notify event CLUSTER_EVENT_MEMBER_STATE (unit-2-1,DISABLED,0x0000000000000000)
Nov 03 2020 23:13:10: %FTD-4-747015: Clustering: Forcing stray member unit-3-1 to leave the cluster
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state MASTER to DISABLED
Nov 03 2020 23:13:12: %FTD-7-747006: Clustering: State machine is at state DISABLED
Nov 03 2020 23:13:12: %FTD-7-747005: Clustering: State machine notify event CLUSTER_EVENT_MY_STATE (state DISABLED,0x0000000000000000,0x0000000000000000)
Nov 03 2020 23:13:18: %FTD-6-747004: Clustering: State machine changed from state ELECTION to ONCALL
유닛 1-1의 클러스터 추적 로그:
firepower# show cluster info trace | include QUIT
Nov 03 23:13:10.789 [DBUG]Send CCP message to all: CCP_MSG_QUIT from unit-1-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 03 23:13:10.769 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 to unit-1-1 for reason CLUSTER_QUIT_REASON_MASTER_UNIT_HC
Nov 03 23:13:10.769 [DBUG]Send CCP message to id 1: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_REASON_STRAY_MEMBER
Nov 03 23:13:09.789 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-2-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 03 23:13:09.769 [DBUG]Send CCP message to id 1: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_REASON_STRAY_MEMBER
Nov 03 23:13:08.559 [DBUG]Send CCP message to all: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
Nov 03 23:13:08.559 [DBUG]Send CCP message to id 1: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_REASON_UNIT_HC
유닛 3-1의 Syslog 메시지:
firepower# show log | include 747
Nov 03 2020 23:13:09: %FTD-7-747005: Clustering: State machine notify event CLUSTER_EVENT_MEMBER_STATE (unit-2-1,DISABLED,0x0000000000000000)
Nov 03 2020 23:13:10: %FTD-7-747005: Clustering: State machine notify event CLUSTER_EVENT_MEMBER_STATE (unit-1-1,DISABLED,0x0000000000000000)
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state SLAVE to MASTER
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state MASTER_FAST to MASTER_DRAIN
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state MASTER_DRAIN to MASTER_CONFIG
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state MASTER_CONFIG to MASTER_POST_CONFIG
Nov 03 2020 23:13:10: %FTD-7-747006: Clustering: State machine is at state MASTER_POST_CONFIG
Nov 03 2020 23:13:10: %FTD-6-747004: Clustering: State machine changed from state MASTER_POST_CONFIG to MASTER
Nov 03 2020 23:13:10: %FTD-7-747006: Clustering: State machine is at state MASTER
클러스터 기록
장치-1-1 |
장치-2-1 |
장치-3-1 |
23:13:13 UTC Nov 3 2020 |
23:13:12 UTC Nov 3 2020 |
23:13:10 UTC Nov 3 2020 |
시나리오 5
실패 전
FTD1 |
FTD2 |
FTD3 |
사이트-A |
사이트-A |
사이트-B |
제어 노드 |
데이터 노드 |
데이터 노드 |
복구 후(변경 사항 없음)
FTD1 |
FTD2 |
FTD3 |
사이트-A |
사이트-A |
사이트-B |
제어 노드 |
데이터 노드 |
데이터 노드 |
실패
Unit-3-1이 unit-1-1과 unit-2-1로 모두 QUIT 메시지를 보냈지만 연결 문제로 인해 unit-2-1만 QUIT 메시지를 받았습니다.
Unit-1-1 클러스터 추적 로그:
firepower# show cluster info trace | include QUIT
Nov 04 00:52:10.429 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 04 00:51:47.059 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-2-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 04 00:51:45.429 [DBUG]Send CCP message to all: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
Nov 04 00:51:45.429 [DBUG]Send CCP message to unit-3-1(1): CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_REASON_UNIT_HC
Unit-2-1 클러스터 추적 로그:
firepower# show cluster info trace | include QUIT
Nov 04 00:52:10.389 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 04 00:51:47.019 [DBUG]Send CCP message to all: CCP_MSG_QUIT from unit-2-1 for reason CLUSTER_QUIT_REASON_RETIREMENT
Nov 04 00:51:46.999 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-3-1 to unit-2-1 for reason CLUSTER_QUIT_REASON_MASTER_UNIT_HC
Nov 04 00:51:45.389 [DBUG]Receive CCP message: CCP_MSG_QUIT from unit-1-1 to unit-3-1 for reason CLUSTER_QUIT_MEMBER_DROPOUT
클러스터 기록
장치-1-1 |
장치-2-1 |
장치-3-1 |
이벤트 없음 |
00:51:50 UTC Nov 4 2020 |
00:51:47 UTC Nov 4 2020 |
NGFW 캡처 포인트
NGFW는 다음과 같은 점에서 캡처 기능을 제공합니다.
클러스터에서 데이터 경로 문제를 해결할 때 대부분의 경우에 사용되는 캡처 포인트는 FXOS 및 FTD 데이터 플레인 엔진 캡처입니다.
NGFW 캡처에 대한 자세한 내용은 다음 문서를 참조하십시오.
클러스터 유닛 플로우 역할 기본 사항
다음과 같은 요인에 따라 여러 가지 방법으로 클러스터를 통해 연결을 설정할 수 있습니다.
플로우 역할 |
설명 |
플래그 |
소유자 |
일반적으로 연결을 처음 수신하는 유닛입니다. |
UIO |
이사 |
전달자의 소유자 조회 요청을 처리하는 단위입니다. |
Y |
백업 소유자 |
디렉터가 소유자와 동일한 유닛이 아니면 백업 소유자이기도 합니다.소유자가 자신을 디렉터로 선택하면 별도의 백업 소유자가 선택됩니다. |
Y(디렉터가 백업 소유자인 경우) y(디렉터가 백업 소유자가 아닌 경우) |
전달자 |
소유자에게 패킷을 전달하는 장치 |
z |
프래그먼트 소유자 |
프래그먼트된 트래픽을 처리하는 유닛 |
- |
섀시 백업 |
디렉터/백업 및 소유자 플로우를 모두 동일한 섀시의 유닛에서 소유하는 섀시 간 클러스터에서 다른 섀시 중 하나의 유닛은 보조 백업/디렉터가 됩니다. 이 역할은 블레이드가 1개 이상인 Firepower 9300 Series의 섀시 간 클러스터에만 적용됩니다. |
w |
클러스터 연결 설정 사례 연구
다음 섹션에서는 클러스터를 통해 연결을 설정하는 몇 가지 방법을 보여 주는 다양한 사례 연구에 대해 설명합니다.목표는 다음과 같습니다.
토폴로지
클러스터 유닛 및 ID:
장치-1-1 |
장치-2-1 |
장치-3-1 |
Cluster GROUP1: On |
Unit "unit-2-1" in state SLAVE |
Unit "unit-3-1" in state SLAVE |
클러스터 캡처 사용:
cluster exec cap CAPI int INSIDE buffer 33554432 match tcp host 192.168.240.50 host 192.168.241.50 eq 80
cluster exec cap CAPO int OUTSIDE buffer 33554432 match tcp host 192.168.240.50 host 192.168.241.50 eq 80
cluster exec cap CAPI_RH reinject-hide int INSIDE buffer 33554432 match tcp host 192.168.240.50 host 192.168.241.50 eq 80
cluster exec cap CAPO_RH reinject-hide int OUTSIDE buffer 33554432 match tcp host 192.168.240.50 host 192.168.241.50 eq 80
cluster exec cap CCL int cluster buffer 33554432
참고:이러한 테스트는 클러스터를 통과하는 트래픽을 최소화하면서 랩 환경에서 실행되었습니다.프로덕션에서 가능한 특정 캡처 필터(예: 대상 포트 및 가능한 경우 소스 포트)로 사용하여 캡처의 '노이즈'를 최소화합니다.
사례 연구 1. 대칭 트래픽(소유자 역시 책임자)
관찰 1. reinject-hide 캡처는 유닛 1-1의 패킷만 표시합니다. 즉, 양방향의 흐름이 유닛-1-1(대칭 트래픽)을 통과했음을 의미합니다.
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data interface cluster [Capturing - 33513 bytes]
capture CAPI type raw-data buffer 33554432 trace interface INSIDE [Buffer Full - 33553914 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO type raw-data buffer 33554432 trace interface OUTSIDE [Buffer Full - 33553914 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPI_RH type raw-data reinject-hide buffer 33554432 interface INSIDE [Buffer Full - 33553914 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO_RH type raw-data reinject-hide buffer 33554432 interface OUTSIDE [Buffer Full - 33553914 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
unit-2-1:*************************************************************
capture CCL type raw-data interface cluster [Capturing - 23245 bytes]
capture CAPI type raw-data buffer 33554432 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO type raw-data buffer 33554432 trace interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPI_RH type raw-data reinject-hide buffer 33554432 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO_RH type raw-data reinject-hide buffer 33554432 interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
unit-3-1:*************************************************************
capture CCL type raw-data interface cluster [Capturing - 24815 bytes]
capture CAPI type raw-data buffer 33554432 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO type raw-data buffer 33554432 trace interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPI_RH type raw-data reinject-hide buffer 33554432 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
capture CAPO_RH type raw-data reinject-hide buffer 33554432 interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq 80
관찰 2. 소스 포트 45954의 플로우에 대한 연결 플래그 분석
firepower# cluster exec show conn
unit-1-1(LOCAL):******************************************************
22 in use, 25 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 0 in use, 122 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 1 enabled, 0 in effect, 2 most enabled, 1 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:45954, idle 0:00:00, bytes 487413076, flags UIO N1
unit-2-1:*************************************************************
22 in use, 271 most used
Cluster:
fwd connections: 0 in use, 2 most used
dir connections: 0 in use, 2 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 1 enabled, 0 in effect, 249 most enabled, 0 most in effect
unit-3-1:*************************************************************
17 in use, 20 most used
Cluster:
fwd connections: 1 in use, 2 most used
dir connections: 1 in use, 127 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:443 NP Identity Ifc 192.168.240.50:39698, idle 0:00:23, bytes 0, flags z
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:45954, idle 0:00:06, bytes 0, flags y
단위 |
플래그 |
메모 |
장치-1-1 |
UIO |
· 플로우 소유자 - 유닛에서 플로우를 처리합니다. · 디렉터 - unit-3-1에는 'y'가 있고 'Y'가 아닌 'y'가 있으므로 이 플로우의 디렉터로 unit-1-1이 선택되었음을 의미합니다.따라서 소유자도 있으므로 다른 유닛(이 경우에는 unit-3-1)이 백업 소유자로 선택되었습니다. |
장치-2-1 |
- |
- |
장치-3-1 |
y |
유닛이 백업 소유자 |
다음과 같이 시각화할 수 있습니다.
관찰 3. 추적이 있는 캡처는 양쪽 방향이 모두 유닛 1-1만 거친다는 것을 보여줍니다
1단계. 소스 포트를 기반으로 모든 클러스터 유닛의 플로우 및 관심 패킷을 식별합니다.
firepower# cluster exec show capture CAPI | i 45954
unit-1-1(LOCAL):******************************************************
1: 08:42:09.362697 802.1Q vlan#201 P0 192.168.240.50.45954 > 192.168.241.50.80: S 992089269:992089269(0) win 29200 <mss 1460,sackOK,timestamp 495153655 0,nop,wscale 7>
2: 08:42:09.363521 802.1Q vlan#201 P0 192.168.241.50.80 > 192.168.240.50.45954: S 4042762409:4042762409(0) ack 992089270 win 28960 <mss 1380,sackOK,timestamp 505509125 495153655,nop,wscale 7>
3: 08:42:09.363827 802.1Q vlan#201 P0 192.168.240.50.45954 > 192.168.241.50.80: . ack 4042762410 win 229 <nop,nop,timestamp 495153657 505509125>
…
unit-2-1:*************************************************************
unit-3-1:*************************************************************
firepower# cluster exec show capture CAPO | i 45954
unit-1-1(LOCAL):******************************************************
1: 08:42:09.362987 802.1Q vlan#202 P0 192.168.240.50.45954 > 192.168.241.50.80: S 2732339016:2732339016(0) win 29200 <mss 1380,sackOK,timestamp 495153655 0,nop,wscale 7>
2: 08:42:09.363415 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45954: S 3603655982:3603655982(0) ack 2732339017 win 28960 <mss 1460,sackOK,timestamp 505509125 495153655,nop,wscale 7>
3: 08:42:09.363903 802.1Q vlan#202 P0 192.168.240.50.45954 > 192.168.241.50.80: . ack 3603655983 win 229 <nop,nop,timestamp 495153657 505509125>
…
unit-2-1:*************************************************************
unit-3-1:*************************************************************
2단계. TCP 흐름은 3방향 핸드셰이크 패킷을 추적하므로이 출력에서 볼 수 있듯이 unit-1-1은 소유자입니다.단순성을 위해 관련되지 않은 추적 단계는 생략됩니다.
firepower# show cap CAPI packet-number 1 trace
25985 packets captured
1: 08:42:09.362697 802.1Q vlan#201 P0 192.168.240.50.45954 > 192.168.241.50.80: S 992089269:992089269(0) win 29200 <mss 1460,sackOK,timestamp 495153655 0,nop,wscale 7>
...
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) am becoming owner
...
반환 트래픽(TCP SYN/ACK):
firepower# show capture CAPO packet-number 2 trace
25985 packets captured
2: 08:42:09.363415 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.45954: S 3603655982:3603655982(0) ack 2732339017 win 28960 <mss 1460,sackOK,timestamp 505509125 495153655,nop,wscale 7>
...
Phase: 3
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Config:
Additional Information:
Found flow with id 9364, using existing flow
관찰 4. FTD 데이터 플레인 syslog는 모든 유닛에서 연결 생성 및 종료를 표시합니다.
firepower# cluster exec show log | include 45954
unit-1-1(LOCAL):******************************************************
Dec 01 2020 08:42:09: %FTD-6-302013: Built inbound TCP connection 9364 for INSIDE:192.168.240.50/45954 (192.168.240.50/45954) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 08:42:18: %FTD-6-302014: Teardown TCP connection 9364 for INSIDE:192.168.240.50/45954 to OUTSIDE:192.168.241.50/80 duration 0:00:08 bytes 1024000440 TCP FINs from INSIDE
unit-2-1:*************************************************************
unit-3-1:*************************************************************
Dec 01 2020 08:42:09: %FTD-6-302022: Built backup stub TCP connection for INSIDE:192.168.240.50/45954 (192.168.240.50/45954) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 08:42:18: %FTD-6-302023: Teardown backup TCP connection for INSIDE:192.168.240.50/45954 to OUTSIDE:192.168.241.50/80 duration 0:00:08 forwarded bytes 0 Cluster flow with CLU closed on owner
사례 연구 2. 대칭 트래픽(디렉터와 다른 소유자)
관찰 1. 주인은 감독과는 다르다
소스 포트 46278의 플로우에 대한 연결 플래그 분석
firepower# cluster exec show conn
unit-1-1(LOCAL):******************************************************
23 in use, 25 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 0 in use, 122 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 2 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46278, idle 0:00:00, bytes 508848268, flags UIO N1
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46276, idle 0:00:03, bytes 0, flags aA N1
unit-2-1:*************************************************************
21 in use, 271 most used
Cluster:
fwd connections: 0 in use, 2 most used
dir connections: 0 in use, 2 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
unit-3-1:*************************************************************
17 in use, 20 most used
Cluster:
fwd connections: 1 in use, 5 most used
dir connections: 1 in use, 127 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 NP Identity Ifc 192.168.240.50:46276, idle 0:00:02, bytes 0, flags z
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46278, idle 0:00:06, bytes 0, flags Y
단위 |
플래그 |
메모 |
장치-1-1 |
UIO |
· 플로우 소유자 - 유닛에서 플로우를 처리합니다. |
장치-2-1 |
- |
- |
장치-3-1 |
Y |
· 디렉터 및 백업 소유자 - 장치 3-1에는 Y 플래그가 있습니다(디렉터). |
다음과 같이 시각화할 수 있습니다.
관찰 2. 추적이 있는 캡처는 양쪽 방향이 유닛 1-1만 거친다는 것을 보여줍니다
1단계. 사례 연구 1과 동일한 접근 방식으로 소스 포트를 기반으로 모든 클러스터 유닛의 플로우 및 관심 패킷을 확인합니다.
firepower# cluster exec show cap CAPI | include 46278
unit-1-1(LOCAL):******************************************************
3: 11:01:44.841631 802.1Q vlan#201 P0 192.168.240.50.46278 > 192.168.241.50.80: S 1972783998:1972783998(0) win 29200 <mss 1460,sackOK,timestamp 503529072 0,nop,wscale 7>
4: 11:01:44.842317 802.1Q vlan#201 P0 192.168.241.50.80 > 192.168.240.50.46278: S 3524167695:3524167695(0) ack 1972783999 win 28960 <mss 1380,sackOK,timestamp 513884542 503529072,nop,wscale 7>
5: 11:01:44.842592 802.1Q vlan#201 P0 192.168.240.50.46278 > 192.168.241.50.80: . ack 3524167696 win 229 <nop,nop,timestamp 503529073 513884542>
…
unit-2-1:*************************************************************
unit-3-1:*************************************************************
firepower#
OUTSIDE 인터페이스에서 캡처:
firepower# cluster exec show cap CAPO | include 46278
unit-1-1(LOCAL):******************************************************
3: 11:01:44.841921 802.1Q vlan#202 P0 192.168.240.50.46278 > 192.168.241.50.80: S 2153055699:2153055699(0) win 29200 <mss 1380,sackOK,timestamp 503529072 0,nop,wscale 7>
4: 11:01:44.842226 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46278: S 3382481337:3382481337(0) ack 2153055700 win 28960 <mss 1460,sackOK,timestamp 513884542 503529072,nop,wscale 7>
5: 11:01:44.842638 802.1Q vlan#202 P0 192.168.240.50.46278 > 192.168.241.50.80: . ack 3382481338 win 229 <nop,nop,timestamp 503529073 513884542>
unit-2-1:*************************************************************
unit-3-1:*************************************************************
firepower#
2단계. 인그레스 패킷(TCP SYN 및 TCP SYN/ACK)에 집중:
firepower# cluster exec show cap CAPI packet-number 3 trace
unit-1-1(LOCAL):******************************************************
824 packets captured
3: 11:01:44.841631 802.1Q vlan#201 P0 192.168.240.50.46278 > 192.168.241.50.80: S 1972783998:1972783998(0) win 29200 <mss 1460,sackOK,timestamp 503529072 0,nop,wscale 7>
…
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) am becoming owner
유닛 1-1에서 SYN/ACK 추적:
firepower# cluster exec show cap CAPO packet-number 4 trace
unit-1-1(LOCAL):******************************************************
4: 11:01:44.842226 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46278: S 3382481337:3382481337(0) ack 2153055700 win 28960 <mss 1460,sackOK,timestamp 513884542 503529072,nop,wscale 7>
Phase: 3
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Config:
Additional Information:
Found flow with id 9583, using existing flow
관찰 3. FTD 데이터 플레인 syslog는 소유자 및 백업 소유자에 대한 연결 생성 및 종료를 표시합니다.
firepower# cluster exec show log | include 46278
unit-1-1(LOCAL):******************************************************
Dec 01 2020 11:01:44: %FTD-6-302013: Built inbound TCP connection 9583 for INSIDE:192.168.240.50/46278 (192.168.240.50/46278) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 11:01:53: %FTD-6-302014: Teardown TCP connection 9583 for INSIDE:192.168.240.50/46278 to OUTSIDE:192.168.241.50/80 duration 0:00:08 bytes 1024001808 TCP FINs from INSIDE
unit-2-1:*************************************************************
unit-3-1:*************************************************************
Dec 01 2020 11:01:44: %FTD-6-302022: Built director stub TCP connection for INSIDE:192.168.240.50/46278 (192.168.240.50/46278) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 11:01:53: %FTD-6-302023: Teardown director TCP connection for INSIDE:192.168.240.50/46278 to OUTSIDE:192.168.241.50/80 duration 0:00:08 forwarded bytes 0 Cluster flow with CLU closed on owner
사례 연구 3. 비대칭 트래픽(디렉터는 트래픽을 전달)
관찰 1. reinject-hide 캡처는 unit-1-1 및 unit-2-1(비대칭 흐름)의 패킷을 표시합니다.
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33554320 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Buffer Full - 98552 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 98552 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Buffer Full - 98552 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99932 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-2-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33553268 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-3-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Capturing - 53815 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Capturing - 658 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Capturing - 658 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
관찰 2. 소스 포트 46502의 플로우에 대한 연결 플래그 분석
firepower# cluster exec show conn
unit-1-1(LOCAL):******************************************************
23 in use, 25 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 0 in use, 122 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 2 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46502, idle 0:00:00, bytes 448760236, flags UIO N1
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46500, idle 0:00:06, bytes 0, flags aA N1
unit-2-1:*************************************************************
21 in use, 271 most used
Cluster:
fwd connections: 0 in use, 2 most used
dir connections: 1 in use, 2 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46502, idle 0:00:00, bytes 0, flags Y
unit-3-1:*************************************************************
17 in use, 20 most used
Cluster:
fwd connections: 1 in use, 5 most used
dir connections: 0 in use, 127 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
단위 |
플래그 |
메모 |
장치-1-1 |
UIO |
· 플로우 소유자 - 유닛에서 플로우를 처리합니다. |
장치-2-1 |
Y |
· 디렉터 - unit-2-1에는 'Y' 플래그가 있으므로 이 플로우의 디렉터로 unit-2-1이 선택되었음을 의미합니다. · 백업 소유자 · 마지막으로, 이 출력에서 명확히 알 수 없지만 show capture 및 show log 출력에서 unit-2-1이 이 흐름을 소유자에게 전달하는 것은 분명합니다(이 시나리오에서는 전달자로 간주되지는 않음). 참고:유닛은 디렉터(Y 흐름) 및 전달자(z 흐름)가 될 수 없으며, 이러한 두 역할은 상호 배타적입니다.디렉터(Y 흐름)는 여전히 트래픽을 전달할 수 있습니다.이 사례 연구 뒷부분에서 show log 출력을 참조하십시오. |
장치-3-1 |
- |
- |
다음과 같이 시각화할 수 있습니다.
관찰 3. 추적이 있는 캡처는 비대칭 트래픽과 유닛 2-1에서 유닛-1-1로 리디렉션 표시
1단계. 관심 흐름에 속하는 패킷을 식별합니다(포트 46502).
firepower# cluster exec show capture CAPI | include 46502
unit-1-1(LOCAL):******************************************************
3: 12:58:33.356121 802.1Q vlan#201 P0 192.168.240.50.46502 > 192.168.241.50.80: S 4124514680:4124514680(0) win 29200 <mss 1460,sackOK,timestamp 510537534 0,nop,wscale 7>
4: 12:58:33.357037 802.1Q vlan#201 P0 192.168.241.50.80 > 192.168.240.50.46502: S 883000451:883000451(0) ack 4124514681 win 28960 <mss 1380,sackOK,timestamp 520893004 510537534,nop,wscale 7>
5: 12:58:33.357357 802.1Q vlan#201 P0 192.168.240.50.46502 > 192.168.241.50.80: . ack 883000452 win 229 <nop,nop,timestamp 510537536 520893004>
unit-2-1:*************************************************************
unit-3-1:*************************************************************
반환 방향:
firepower# cluster exec show capture CAPO | include 46502
unit-1-1(LOCAL):******************************************************
3: 12:58:33.356426 802.1Q vlan#202 P0 192.168.240.50.46502 > 192.168.241.50.80: S 1434968587:1434968587(0) win 29200 <mss 1380,sackOK,timestamp 510537534 0,nop,wscale 7>
4: 12:58:33.356915 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46502: S 4257314722:4257314722(0) ack 1434968588 win 28960 <mss 1460,sackOK,timestamp 520893004 510537534,nop,wscale 7>
5: 12:58:33.357403 802.1Q vlan#202 P0 192.168.240.50.46502 > 192.168.241.50.80: . ack 4257314723 win 229 <nop,nop,timestamp 510537536 520893004>
unit-2-1:*************************************************************
1: 12:58:33.359249 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46502: S 4257314722:4257314722(0) ack 1434968588 win 28960 <mss 1460,sackOK,timestamp 520893004 510537534,nop,wscale 7>
2: 12:58:33.360302 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46502: . ack 1434968736 win 235 <nop,nop,timestamp 520893005 510537536>
3: 12:58:33.361004 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46502: . 4257314723:4257316091(1368) ack 1434968736 win 235 <nop,nop,timestamp 520893006 510537536>
…
unit-3-1:*************************************************************
2단계. 패킷을 추적합니다.기본적으로 처음 50개의 인그레스 패킷만 추적됩니다.단순성을 위해 관련되지 않은 추적 단계는 생략됩니다.
Unit-1-1(소유자):
firepower# cluster exec show capture CAPI packet-number 3 trace
unit-1-1(LOCAL):******************************************************
3: 12:58:33.356121 802.1Q vlan#201 P0 192.168.240.50.46502 > 192.168.241.50.80: S 4124514680:4124514680(0) win 29200 <mss 1460,sackOK,timestamp 510537534 0,nop,wscale 7>
...
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) am becoming owner
Unit-2-1(전달자)
반환 트래픽(TCP SYN/ACK). 관심 단위는 디렉터/백업 소유자인 유닛-2-1로, 트래픽을 소유자에게 전달합니다.
firepower# cluster exec unit unit-2-1 show capture CAPO packet-number 1 trace
1: 12:58:33.359249 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46502: S 4257314722:4257314722(0) ack 1434968588 win 28960 <mss 1460,sackOK,timestamp 520893004 510537534,nop,wscale 7>
...
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) am early redirecting to (0) due to matching action (-1).
관찰 4. FTD 데이터 플레인 syslog는 모든 유닛에서 연결 생성 및 종료를 표시합니다.
firepower# cluster exec show log | i 46502
unit-1-1(LOCAL):******************************************************
Dec 01 2020 12:58:33: %FTD-6-302013: Built inbound TCP connection 9742 for INSIDE:192.168.240.50/46502 (192.168.240.50/46502) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 12:59:02: %FTD-6-302014: Teardown TCP connection 9742 for INSIDE:192.168.240.50/46502 to OUTSIDE:192.168.241.50/80 duration 0:00:28 bytes 2048000440 TCP FINs from INSIDE
unit-2-1:*************************************************************
Dec 01 2020 12:58:33: %FTD-6-302022: Built forwarder stub TCP connection for OUTSIDE:192.168.241.50/80 (192.168.241.50/80) to unknown:192.168.240.50/46502 (192.168.240.50/46502)
Dec 01 2020 12:58:33: %FTD-6-302023: Teardown forwarder TCP connection for OUTSIDE:192.168.241.50/80 to unknown:192.168.240.50/46502 duration 0:00:00 forwarded bytes 0 Forwarding or redirect flow removed to create director or backup flow
Dec 01 2020 12:58:33: %FTD-6-302022: Built director stub TCP connection for INSIDE:192.168.240.50/46502 (192.168.240.50/46502) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 12:59:02: %FTD-6-302023: Teardown director TCP connection for INSIDE:192.168.240.50/46502 to OUTSIDE:192.168.241.50/80 duration 0:00:28 forwarded bytes 2048316300 Cluster flow with CLU closed on owner
unit-3-1:*************************************************************
firepower#
사례 연구 4. 비대칭 트래픽(소유자는 디렉터임)
관찰 1. reinject-hide 캡처는 unit-1-1 및 unit-2-1(비대칭 흐름)의 패킷을 표시합니다.
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33554229 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Buffer Full - 98974 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 98974 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Buffer Full - 98974 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99924 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-2-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33552925 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-3-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Capturing - 227690 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Capturing - 4754 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
관찰 2. 소스 포트 46916의 플로우에 대한 연결 플래그 분석
firepower# cluster exec show conn
unit-1-1(LOCAL):******************************************************
23 in use, 25 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 0 in use, 122 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 1 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46916, idle 0:00:00, bytes 414682616, flags UIO N1
unit-2-1:*************************************************************
21 in use, 271 most used
Cluster:
fwd connections: 1 in use, 2 most used
dir connections: 0 in use, 2 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 NP Identity Ifc 192.168.240.50:46916, idle 0:00:00, bytes 0, flags z
unit-3-1:*************************************************************
17 in use, 20 most used
Cluster:
fwd connections: 0 in use, 5 most used
dir connections: 1 in use, 127 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46916, idle 0:00:04, bytes 0, flags y
단위 |
플래그 |
메모 |
장치-1-1 |
UIO |
· 플로우 소유자 - 유닛에서 플로우를 처리합니다. · 디렉터 - unit-3-1에는 'y'가 있고 'Y'가 아닌 'y'가 있으므로 이 플로우의 디렉터로 unit-1-1이 선택되었음을 의미합니다.따라서 소유자도 있으므로 다른 유닛(이 경우에는 unit-3-1)이 백업 소유자로 선택되었습니다. |
장치-2-1 |
z |
· 전달자 |
장치-3-1 |
y |
- 백업 소유자 |
다음과 같이 시각화할 수 있습니다.
관찰 3. 추적이 있는 캡처는 비대칭 트래픽과 유닛 2-1에서 유닛-1-1로 리디렉션 표시
Unit-2-1(전달자)
firepower# cluster exec unit unit-2-1 show capture CAPO packet-number 1 trace
1: 16:11:33.653164 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46916: S 1331019196:1331019196(0) ack 3089755618 win 28960 <mss 1460,sackOK,timestamp 532473211 522117741,nop,wscale 7>
...
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) am early redirecting to (0) due to matching action (-1).
관찰 4. FTD 데이터 플레인 syslog는 모든 유닛에서 연결 생성 및 종료를 표시합니다.
firepower# cluster exec show log | i 46916
unit-1-1(LOCAL):******************************************************
Dec 01 2020 16:11:33: %FTD-6-302013: Built inbound TCP connection 10023 for INSIDE:192.168.240.50/46916 (192.168.240.50/46916) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 16:11:42: %FTD-6-302014: Teardown TCP connection 10023 for INSIDE:192.168.240.50/46916 to OUTSIDE:192.168.241.50/80 duration 0:00:09 bytes 1024010016 TCP FINs from INSIDE
unit-2-1:*************************************************************
Dec 01 2020 16:11:33: %FTD-6-302022: Built forwarder stub TCP connection for OUTSIDE:192.168.241.50/80 (192.168.241.50/80) to unknown:192.168.240.50/46916 (192.168.240.50/46916)
Dec 01 2020 16:11:42: %FTD-6-302023: Teardown forwarder TCP connection for OUTSIDE:192.168.241.50/80 to unknown:192.168.240.50/46916 duration 0:00:09 forwarded bytes 1024009868 Cluster flow with CLU closed on owner
unit-3-1:*************************************************************
Dec 01 2020 16:11:33: %FTD-6-302022: Built backup stub TCP connection for INSIDE:192.168.240.50/46916 (192.168.240.50/46916) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 16:11:42: %FTD-6-302023: Teardown backup TCP connection for INSIDE:192.168.240.50/46916 to OUTSIDE:192.168.241.50/80 duration 0:00:09 forwarded bytes 0 Cluster flow with CLU closed on owner
사례 연구 5. 비대칭 트래픽(소유자는 디렉터와 다름)
관찰 1. reinject-hide 캡처는 unit-1-1 및 unit-2-1(비대칭 흐름)의 패킷을 표시합니다.
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33553207 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Buffer Full - 99396 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 99224 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Buffer Full - 99396 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99928 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-2-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33554251 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Buffer Full - 99052 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
unit-3-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Capturing - 131925 bytes]
capture CAPI type raw-data buffer 100000 trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO type raw-data buffer 100000 trace interface OUTSIDE [Capturing - 2592 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPI_RH type raw-data reinject-hide buffer 100000 interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
capture CAPO_RH type raw-data reinject-hide buffer 100000 interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.241.50 eq www
관찰 2. 소스 포트 46994의 플로우에 대한 연결 플래그 분석
firepower# cluster exec show conn
unit-1-1(LOCAL):******************************************************
23 in use, 25 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 0 in use, 122 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 1 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46994, idle 0:00:00, bytes 406028640, flags UIO N1
unit-2-1:*************************************************************
22 in use, 271 most used
Cluster:
fwd connections: 1 in use, 2 most used
dir connections: 0 in use, 2 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 NP Identity Ifc 192.168.240.50:46994, idle 0:00:00, bytes 0, flags z
unit-3-1:*************************************************************
17 in use, 20 most used
Cluster:
fwd connections: 2 in use, 5 most used
dir connections: 1 in use, 127 most used
centralized connections: 0 in use, 0 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.241.50:80 INSIDE 192.168.240.50:46994, idle 0:00:05, bytes 0, flags Y
단위 |
플래그 |
메모 |
장치-1-1 |
UIO |
· 플로우 소유자 - 유닛에서 플로우를 처리합니다. |
장치-2-1 |
z |
· 전달자 |
장치-3-1 |
Y |
· 백업 소유자 · 이사 |
다음과 같이 시각화할 수 있습니다.
관찰 3. 추적이 있는 캡처는 비대칭 트래픽과 유닛 2-1에서 유닛-1-1로 리디렉션 표시
Unit-1-1(소유자)
firepower# cluster exec show cap CAPI packet-number 1 trace
unit-1-1(LOCAL):******************************************************
…
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (0) am becoming owner
Unit-2-1(전달자)
firepower# cluster exec unit unit-2-1 show cap CAPO packet-number 1 trace
1: 16:46:44.232074 802.1Q vlan#202 P0 192.168.241.50.80 > 192.168.240.50.46994: S 2863659376:2863659376(0) ack 2879616990 win 28960 <mss 1460,sackOK,timestamp 534583774 524228304,nop,wscale 7>
…
Phase: 4
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) got initial, attempting ownership.
Phase: 5
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (1) am early redirecting to (0) due to matching action (-1).
관찰 4. FTD 데이터 플레인 syslog는 모든 유닛에서 연결 생성 및 종료를 표시합니다.
firepower# cluster exec show log | i 46994
unit-1-1(LOCAL):******************************************************
Dec 01 2020 16:46:44: %FTD-6-302013: Built inbound TCP connection 10080 for INSIDE:192.168.240.50/46994 (192.168.240.50/46994) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 16:46:53: %FTD-6-302014: Teardown TCP connection 10080 for INSIDE:192.168.240.50/46994 to OUTSIDE:192.168.241.50/80 duration 0:00:09 bytes 1024000440 TCP FINs from INSIDE
unit-2-1:*************************************************************
Dec 01 2020 16:46:44: %FTD-6-302022: Built forwarder stub TCP connection for OUTSIDE:192.168.241.50/80 (192.168.241.50/80) to unknown:192.168.240.50/46994 (192.168.240.50/46994)
Dec 01 2020 16:46:53: %FTD-6-302023: Teardown forwarder TCP connection for OUTSIDE:192.168.241.50/80 to unknown:192.168.240.50/46994 duration 0:00:09 forwarded bytes 1024000292 Cluster flow with CLU closed on owner
unit-3-1:*************************************************************
Dec 01 2020 16:46:44: %FTD-6-302022: Built director stub TCP connection for INSIDE:192.168.240.50/46994 (192.168.240.50/46994) to OUTSIDE:192.168.241.50/80 (192.168.241.50/80)
Dec 01 2020 16:46:53: %FTD-6-302023: Teardown director TCP connection for INSIDE:192.168.240.50/46994 to OUTSIDE:192.168.241.50/80 duration 0:00:09 forwarded bytes 0 Cluster flow with CLU closed on owner
다음 사례 연구를 위해 사용되는 토폴로지는 인라인 집합이 있는 클러스터를 기반으로 합니다.
사례 연구 6. 비대칭 트래픽(인라인 집합, 소유자는 디렉터임)
관찰 1. reinject-hide 캡처는 unit-1-1 및 unit-2-1(비대칭 흐름)의 패킷을 표시합니다. 또한 소유자는 unit-2-1입니다(reinject-hide 캡처에는 INSIDE 및 OUTSIDE 인터페이스에 패킷이 있고 unit-1-1은 OUTSIDE에만 있음).
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33553253 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Buffer Full - 523432 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Buffer Full - 523432 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
unit-2-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33554312 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Buffer Full - 523782 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Buffer Full - 523782 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Buffer Full - 524218 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Buffer Full - 523782 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
unit-3-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Capturing - 53118 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
관찰 2. 소스 포트 51844의 플로우에 대한 연결 플래그 분석
firepower# cluster exec show conn addr 192.168.240.51
unit-1-1(LOCAL):******************************************************
30 in use, 102 most used
Cluster:
fwd connections: 1 in use, 1 most used
dir connections: 2 in use, 122 most used
centralized connections: 3 in use, 39 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.240.51:80 NP Identity Ifc 192.168.240.50:51844, idle 0:00:00, bytes 0, flags z
unit-2-1:*************************************************************
23 in use, 271 most used
Cluster:
fwd connections: 0 in use, 2 most used
dir connections: 4 in use, 26 most used
centralized connections: 0 in use, 14 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
TCP OUTSIDE 192.168.240.51:80 INSIDE 192.168.240.50:51844, idle 0:00:00, bytes 231214400, flags b N
unit-3-1:*************************************************************
20 in use, 55 most used
Cluster:
fwd connections: 0 in use, 5 most used
dir connections: 1 in use, 127 most used
centralized connections: 0 in use, 24 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.240.51:80 INSIDE 192.168.240.50:51844, idle 0:00:01, bytes 0, flags y
단위 |
플래그 |
메모 |
장치-1-1 |
z |
· 전달자 |
장치-2-1 |
b N |
· 플로우 소유자 - 유닛에서 플로우를 처리합니다. |
장치-3-1 |
y |
· 백업 소유자 |
다음과 같이 시각화할 수 있습니다.
관찰 3. 추적이 있는 캡처는 비대칭 트래픽과 유닛 1-1에서 유닛-2-1로 리디렉션을 보여줍니다.
유닛-2-1(소유자/책임자)
firepower# cluster exec unit unit-2-1 show cap CAPI packet-number 1 trace
1: 18:10:12.842912 192.168.240.50.51844 > 192.168.240.51.80: S 4082593463:4082593463(0) win 29200 <mss 1460,sackOK,timestamp 76258053 0,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (1) got initial, attempting ownership.
Phase: 2
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (1) am becoming owner
Unit-1-1(전달자)
firepower# cluster exec show cap CAPO packet-number 1 trace
unit-1-1(LOCAL):******************************************************
1: 18:10:12.842317 192.168.240.51.80 > 192.168.240.50.51844: S 2339579109:2339579109(0) ack 4082593464 win 28960 <mss 1460,sackOK,timestamp 513139467 76258053,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (0) am asking director (1).
반환 트래픽(TCP SYN/ACK)
유닛-2-1(소유자/책임자)
firepower# cluster exec unit unit-2-1 show cap CAPO packet-number 2 trace
2: 18:10:12.843660 192.168.240.51.80 > 192.168.240.50.51844: S 2339579109:2339579109(0) ack 4082593464 win 28960 <mss 1460,sackOK,timestamp 513139467 76258053,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: FULL
I (1) am owner, update sender (0).
Phase: 2
Type: FLOW-LOOKUP
Subtype:
Result: ALLOW
Config:
Additional Information:
Found flow with id 7109, using existing flow
관찰 4. FTD 데이터 플레인 syslog는 모든 유닛에서 연결 생성 및 종료를 표시합니다.
firepower# cluster exec show log | include 51844
unit-1-1(LOCAL):******************************************************
Dec 02 2020 18:10:12: %FTD-6-302022: Built forwarder stub TCP connection for OUTSIDE:192.168.240.51/80 (192.168.240.51/80) to unknown:192.168.240.50/51844 (192.168.240.50/51844)
Dec 02 2020 18:10:22: %FTD-6-302023: Teardown forwarder TCP connection for OUTSIDE:192.168.240.51/80 to unknown:192.168.240.50/51844 duration 0:00:09 forwarded bytes 1024001740 Cluster flow with CLU closed on owner
unit-2-1:*************************************************************
Dec 02 2020 18:10:12: %FTD-6-302303: Built TCP state-bypass connection 7109 from INSIDE:192.168.240.50/51844 (192.168.240.50/51844) to OUTSIDE:192.168.240.51/80 (192.168.240.51/80)
Dec 02 2020 18:10:22: %FTD-6-302304: Teardown TCP state-bypass connection 7109 from INSIDE:192.168.240.50/51844 to OUTSIDE:192.168.240.51/80 duration 0:00:09 bytes 1024001888 TCP FINs
unit-3-1:*************************************************************
Dec 02 2020 18:10:12: %FTD-6-302022: Built backup stub TCP connection for INSIDE:192.168.240.50/51844 (192.168.240.50/51844) to OUTSIDE:192.168.240.51/80 (192.168.240.51/80)
Dec 02 2020 18:10:22: %FTD-6-302023: Teardown backup TCP connection for INSIDE:192.168.240.50/51844 to OUTSIDE:192.168.240.51/80 duration 0:00:09 forwarded bytes 0 Cluster flow with CLU closed on owner
사례 연구 7. 비대칭 트래픽(인라인 집합, 소유자는 디렉터와 다름)
소유자는 unit-2-1입니다(reinject-hide 캡처에는 INSIDE 및 OUTSIDE 인터페이스에 패킷이 있고 unit-3-1은 OUTSIDE에만 있음).
firepower# cluster exec show cap
unit-1-1(LOCAL):******************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Capturing - 13902 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Capturing - 90 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
unit-2-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33553936 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Buffer Full - 523126 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Buffer Full - 523126 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Buffer Full - 524230 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Buffer Full - 523126 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
unit-3-1:*************************************************************
capture CCL type raw-data buffer 33554432 interface cluster [Buffer Full - 33553566 bytes]
capture CAPO type raw-data trace interface OUTSIDE [Buffer Full - 523522 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI type raw-data trace interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPO_RH type raw-data reinject-hide interface OUTSIDE [Buffer Full - 523432 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
capture CAPI_RH type raw-data reinject-hide interface INSIDE [Capturing - 0 bytes]
match tcp host 192.168.240.50 host 192.168.240.51 eq www
관찰 2. 소스 포트 59210의 플로우에 대한 연결 플래그 분석
firepower# cluster exec show conn addr 192.168.240.51
unit-1-1(LOCAL):******************************************************
25 in use, 102 most used
Cluster:
fwd connections: 0 in use, 1 most used
dir connections: 2 in use, 122 most used
centralized connections: 0 in use, 39 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 4 most enabled, 1 most in effect
TCP OUTSIDE 192.168.240.51:80 INSIDE 192.168.240.50:59210, idle 0:00:03, bytes 0, flags Y
unit-2-1:*************************************************************
21 in use, 271 most used
Cluster:
fwd connections: 0 in use, 2 most used
dir connections: 0 in use, 28 most used
centralized connections: 0 in use, 14 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 249 most enabled, 0 most in effect
TCP OUTSIDE 192.168.240.51:80 INSIDE 192.168.240.50:59210, idle 0:00:00, bytes 610132872, flags b N
unit-3-1:*************************************************************
19 in use, 55 most used
Cluster:
fwd connections: 1 in use, 5 most used
dir connections: 0 in use, 127 most used
centralized connections: 0 in use, 24 most used
VPN redirect connections: 0 in use, 0 most used
Inspect Snort:
preserve-connection: 0 enabled, 0 in effect, 1 most enabled, 0 most in effect
TCP OUTSIDE 192.168.240.51:80 NP Identity Ifc 192.168.240.50:59210, idle 0:00:00, bytes 0, flags z
단위 |
플래그 |
메모 |
장치-1-1 |
Y |
· 디렉터/백업 소유자 |
장치-2-1 |
b N |
· 플로우 소유자 - 유닛에서 플로우를 처리합니다. |
장치-3-1 |
z |
· 전달자 |
다음과 같이 시각화할 수 있습니다.
참고:2단계(CCL을 통한 패킷)는 4단계(데이터 트래픽)보다 먼저 발생합니다. 다른 경우(예: 경쟁 조건), 디렉터는 흐름을 인식하지 못합니다.따라서 인라인 집합이므로 패킷을 목적지로 전달합니다.인터페이스가 인라인 집합에 없으면 데이터 패킷이 삭제됩니다.
관찰 3. 추적이 있는 캡처는 비대칭 트래픽 및 CCL을 통한 교환을 보여줍니다.
전달 트래픽(TCP SYN)
Unit-2-1(소유자)
firepower# cluster exec unit unit-2-1 show cap CAPI packet-number 1 trace
1: 09:19:49.760702 192.168.240.50.59210 > 192.168.240.51.80: S 4110299695:4110299695(0) win 29200 <mss 1460,sackOK,timestamp 130834570 0,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (1) got initial, attempting ownership.
Phase: 2
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'INSIDE'
Flow type: NO FLOW
I (1) am becoming owner
반환 트래픽(TCP SYN/ACK)
Unit-3-1(ID 2 - 전달자)은 CCL을 통해 UNIT-1-1(ID 0 - 디렉터)에 패킷을 전송합니다.
firepower# cluster exec unit unit-3-1 show cap CAPO packet-number 1 trace
1: 09:19:49.760336 192.168.240.51.80 > 192.168.240.50.59210: S 4209225081:4209225081(0) ack 4110299696 win 28960 <mss 1460,sackOK,timestamp 567715984 130834570,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: NO FLOW
I (2) am asking director (0).
Unit-1-1(디렉터) - Unit-1-1(ID 0)은 플로우 소유자가 유닛-2-1(ID 1)임을 인식하고 CCL을 통해 패킷을 다시 유닛-3-1(ID 2 - 전달자)으로 보냅니다.
firepower# cluster exec show cap CAPO packet-number 1 trace
unit-1-1(LOCAL):******************************************************
1: 09:19:49.761038 192.168.240.51.80 > 192.168.240.50.59210: S 4209225081:4209225081(0) ack 4110299696 win 28960 <mss 1460,sackOK,timestamp 567715984 130834570,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: STUB
I (0) am director, valid owner (1), update sender (2).
Unit-3-1(ID 2 - 전달자)은 CCL을 통해 패킷을 가져와 unit-2-1(ID 1 - 소유자)에 전송합니다.
firepower# cluster exec unit unit-3-1 show cap CAPO packet-number 2 trace
...
2: 09:19:49.761008 192.168.240.51.80 > 192.168.240.50.59210: S 4209225081:4209225081(0) ack 4110299696 win 28960 <mss 1460,sackOK,timestamp 567715984 130834570,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: STUB
I (2) am becoming forwarder to (1), sender (0).
소유자는 패킷을 재삽입하고 목적지로 전달합니다.
firepower# cluster exec unit unit-2-1 show cap CAPO packet-number 2 trace
2: 09:19:49.775701 192.168.240.51.80 > 192.168.240.50.59210: S 4209225081:4209225081(0) ack 4110299696 win 28960 <mss 1460,sackOK,timestamp 567715984 130834570,nop,wscale 7>
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'OUTSIDE'
Flow type: FULL
I (1) am owner, sender (2).
관찰 4. FTD 데이터 플레인 syslog는 모든 유닛에서 연결 생성 및 종료를 표시합니다.
firepower# cluster exec show log | i 59210
unit-1-1(LOCAL):******************************************************
Dec 03 2020 09:19:49: %FTD-6-302022: Built director stub TCP connection for INSIDE:192.168.240.50/59210 (192.168.240.50/59210) to OUTSIDE:192.168.240.51/80 (192.168.240.51/80)
Dec 03 2020 09:19:59: %FTD-6-302023: Teardown director TCP connection for INSIDE:192.168.240.50/59210 to OUTSIDE:192.168.240.51/80 duration 0:00:09 forwarded bytes 0 Cluster flow with CLU closed on owner
unit-2-1:*************************************************************
Dec 03 2020 09:19:49: %FTD-6-302303: Built TCP state-bypass connection 14483 from INSIDE:192.168.240.50/59210 (192.168.240.50/59210) to OUTSIDE:192.168.240.51/80 (192.168.240.51/80)
Dec 03 2020 09:19:59: %FTD-6-302304: Teardown TCP state-bypass connection 14483 from INSIDE:192.168.240.50/59210 to OUTSIDE:192.168.240.51/80 duration 0:00:09 bytes 1024003336 TCP FINs
unit-3-1:*************************************************************
Dec 03 2020 09:19:49: %FTD-6-302022: Built forwarder stub TCP connection for OUTSIDE:192.168.240.51/80 (192.168.240.51/80) to unknown:192.168.240.50/59210 (192.168.240.50/59210)
Dec 03 2020 09:19:59: %FTD-6-302023: Teardown forwarder TCP connection for OUTSIDE:192.168.240.51/80 to unknown:192.168.240.50/59210 duration 0:00:09 forwarded bytes 1024003188 Cluster flow with CLU closed on owner
클러스터 문제 해결 소개
클러스터 문제는 다음과 같이 분류할 수 있습니다.
중요 구성 고려 사항
클러스터 IP 불균형이 발생하는 낮은 포트에서 제공된 트래픽으로 인한 높은 PAT 풀 범위 사용량
FTD는 PAT IP를 "범위"로 분할하고 동일한 소스 범위에서 xlate를 유지하려고 시도합니다.이 표에서는 소스 포트가 동일한 소스 범위 내의 전역 포트로 변환되는 방법을 보여 줍니다.
원래 소스 포트 |
변환된 소스 포트 |
1-511 |
1-511 |
512-1023 |
512-1023 |
1024-65535 |
1024-65535 |
소스 포트 범위가 가득 차고 해당 범위에서 새 PAT xlate를 할당해야 하는 경우 FTD는 다음 IP로 이동하여 해당 소스 포트 범위에 대해 새 변환을 할당합니다.
증상
클러스터를 통과하는 NATed 트래픽에 대한 연결 문제
확인
# show nat pool
FTD 데이터 플레인 로그는 PAT 풀 소모를 보여줍니다.
Dec 9 09:00:00 192.0.2.10 FTD-FW %ASA-3-202010: PAT pool exhausted. Unable to create TCP connection from Inside:192.0.2.150/49464 to Outside:192.0.2.250/20015
Dec 9 09:00:00 192.0.2.10 FTD-FW %ASA-3-202010: PAT pool exhausted. Unable to create TCP connection from Inside:192.0.2.148/54141 to Outside:192.0.2.251/443
완화
NAT 플랫 포트 범위를 구성하고 예약 포트를 포함합니다.
또한 6.7/9.15.1 이후 노드에서 PAT가 적용되는 많은 백그라운드 트래픽으로 클러스터를 나가기/조인하는 경우에만 불균형 포트 블록 배포를 끝낼 수 있습니다.포트 블록이 노드 간에 재배포될 수 있도록 해제되는 경우에만 자체적으로 복구됩니다.
포트 블록 기반 배포에서 노드가 pb-1, pb-2 .. pb-10과 같은 10개의 포트 블록으로 할당될 때 노드는 항상 사용 가능한 첫 번째 포트 블록으로 시작하고 모든 포트가 소모될 때까지 임의의 포트를 할당합니다.해당 지점까지의 모든 포트 블록이 소진된 경우에만 할당이 다음 포트 블록으로 이동합니다.
예를 들어, 호스트가 512개의 연결을 설정할 경우, 해당 유닛에서는 pb-1의 모든 512 연결에 대해 매핑된 포트를 임의로 할당합니다.이제 512개의 연결이 모두 활성화되면 pb-1이 소진된 이후 호스트가 513번째 연결을 설정하게 되면 pb-2로 이동하여 임의의 포트를 할당합니다.이제 다시 513개의 연결 중 10번째 연결이 완료되고 pb-1에서 사용 가능한 1개의 포트가 지워졌다고 가정합니다. 이 시점에서 호스트가 514번째 연결을 설정할 경우, pb-1에 사용 가능한 포트가 있으므로 클러스터 유닛에서는 pb-1에서 pb-2가 아닌 pb-1의 매핑된 포트를 할당합니다. 이는 10번째 연결 제거의 일부로 릴리스되었습니다.
중요한 점은 사용 가능한 포트가 있는 사용 가능한 첫 번째 포트 블록에서 할당이 수행되므로 마지막 포트 블록을 항상 정상적으로 로드된 시스템에서 재배포할 수 있습니다.또한 PAT는 일반적으로 단기간 연결에 사용됩니다.포트 블록을 더 짧은 시간에 사용할 수 있을 가능성이 매우 높습니다.따라서 풀 배포의 균형을 유지하는 데 필요한 시간은 포트 블록 기반 풀 배포를 통해 개선될 수 있습니다.
그러나 pb-1에서 pb-10까지의 모든 포트 블록이 소진되었거나 각 포트 블록에 오래 지속되는 연결을 위한 포트가 있을 경우 포트 블록이 빠르게 해제되어 재배포되지 않습니다.이러한 경우 가장 덜 파괴적인 접근 방식은 다음과 같습니다.
경고:따라서 관련 연결이 끊어집니다.
다른 대상으로 리디렉션할 때 듀얼 채널 웹 사이트(예: 웹 메일, 뱅킹 등) 또는 SSO 웹 사이트로 이동할 수 없습니다.
증상
듀얼 채널 웹 사이트(예: 웹 메일, 은행 웹 사이트 등)를 탐색할 수 없습니다. 사용자가 클라이언트가 두 번째 소켓/연결을 열어야 하는 웹 사이트에 연결하고 두 번째 연결이 해시된 첫 번째 연결과 다른 클러스터 멤버에 해시되고 트래픽이 IP PAT 풀을 사용하는 경우, 다른 공용 IP 주소에서 연결을 수신하면 트래픽이 서버에 의해 재설정됩니다.
확인
데이터 플레인 클러스터 캡처를 사용하여 영향을 받는 전송 흐름이 처리되는 방식을 확인합니다.이 경우 TCP 재설정은 대상 웹 사이트에서 가져옵니다.
완화(6.7/9.15.1 이전)
이더 채널 로드 밸런싱 알고리즘 정보:
풀에 충분한 PAT IP가 없기 때문에 제어 노드로 전송되는 모든 트래픽으로 인한 낮은 클러스터 성능
증상
클러스터에 PAT IP가 부족하여 데이터 노드에 사용 가능한 IP를 할당할 수 없으므로 PAT 구성에 적용되는 모든 트래픽이 처리를 위해 제어 노드로 전달됩니다.
확인
show nat pool cluster 명령을 사용하여 각 유닛에 대한 할당을 확인하고 풀에 하나 이상의 IP가 있는지 확인합니다.
완화
6.7/9.15.1 이전 버전의 경우 클러스터의 노드 수와 최소 같은 크기의 PAT 풀이 있어야 합니다.PAT 풀이 있는 6.7/9.15.1 이후 에서는 모든 PAT 풀 IP에서 포트 블록을 할당합니다.PAT 풀 사용량이 매우 많아 풀이 자주 고갈되는 경우 PAT 풀 크기를 늘려야 합니다(FAQ 섹션 참조).
xlate가 세션별로 활성화되지 않았으므로 제어 노드로 전송되는 모든 트래픽으로 인한 낮은 성능
증상
클러스터 제어 노드를 통해 많은 고속 UDP 백업 플로우가 처리되므로 성능에 영향을 미칠 수 있습니다.
배경
세션당 활성화된 xlate를 사용하는 연결만 PAT를 사용하는 데이터 노드에서 처리할 수 있습니다.show run all xlate 명령을 사용하여 xlate per-session 컨피그레이션을 확인합니다.
세션당 활성화는 연관된 연결이 해제될 때 xlate가 즉시 해제됨을 의미합니다.이렇게 하면 연결이 PAT를 받을 때 초당 연결 성능이 향상됩니다.비세션은 연결된 연결이 끊어진 후 30초 동안 다시 라이브 상태를 나타냅니다. 연결 속도가 충분히 높으면 각 글로벌 IP에서 사용 가능한 65k TCP/UDP 포트가 짧은 시간 내에 사용될 수 있습니다.
기본적으로 모든 TCP 트래픽은 xlate당 활성화되며 UDP DNS 트래픽만 세션당 활성화됩니다.이는 모든 비 DNS UDP 트래픽이 처리를 위해 제어 노드로 전달됨을 의미합니다.
확인
클러스터 유닛 간의 연결 및 패킷 배포를 확인하려면 다음 명령을 사용합니다.
firepower# show cluster info conn-distribution
firepower# show cluster info packet-distribution
firepower# show cluster info load-monitor
cluster exec show conn 명령을 사용하여 어떤 클러스터 노드가 UDP 연결을 소유하는지 확인합니다.
firepower# cluster exec show conn
클러스터 노드 간의 풀 사용량을 이해하려면 이 명령을 사용합니다.
firepower# cluster exec show nat pool ip| in UDP
완화
관심 있는 트래픽(예: UDP)에 대해 세션당 PAT(세션당 permit udp 명령)를 구성합니다. ICMP의 경우 기본 다중 세션 PAT에서 변경할 수 없으므로 PAT가 구성된 경우 IMCP 트래픽은 항상 제어 노드에 의해 처리됩니다.
노드가 클러스터에서 나가거나 클러스터에 참여할 때 PAT 풀 배포가 균형을 잃게 됩니다.
증상
확인
%ASA-3-202010: NAT pool exhausted. Unable to create TCP connection from inside:192.0.2.1/2239 to outside:192.0.2.150/80
완화
증상
클러스터에서 PAT하는 트래픽에 대한 주요 연결 문제입니다.이는 설계에 따라 FTD 데이터 플레인이 전역 NAT 주소에 대해 GARP를 전송하지 않기 때문입니다.
확인
직접 연결된 디바이스의 ARP 테이블에는 제어 노드가 변경된 후 클러스터 데이터 인터페이스의 MAC 주소가 다르게 표시됩니다.
root@kali2:~/tests# arp -a
? (192.168.240.1) at f4:db:e6:33:44:2e [ether] on eth0
root@kali2:~/tests# arp -a
? (192.168.240.1) at f4:db:e6:9e:3d:0e [ether] on eth0
완화
클러스터 데이터 인터페이스에서 고정(가상) MAC을 구성합니다.
PAT 실패 시 연결
증상
클러스터에 의해 PAT된 트래픽에 대한 연결 문제.
확인/완화
firepower# debug nat 2
nat: no free blocks available to reserve for 192.168.241.59, proto 17
nat: no free blocks available to reserve for 192.168.241.59, proto 17
nat: no free blocks available to reserve for 192.168.241.58, proto 17
nat: no free blocks available to reserve for 192.168.241.58, proto 17
nat: no free blocks available to reserve for 192.168.241.57, proto 17
디버깅을 중지하려면
firepower# un all
ASA 및 FTD 클러스터링 PAT 개선(9.15 및 6.7 이후)
무엇이 변경되었습니까?
PAT 작업이 다시 설계되었습니다.개별 IP는 각 클러스터 멤버에 더 이상 배포되지 않습니다.대신 PAT IP는 포트 블록으로 분할되고 클러스터 멤버 간에 가능한 한 균등하게(균일하게) 배포됩니다. 이는 IP 고착성 작업과 결합됩니다.
새 설계에서는 다음과 같은 제한 사항을 다룹니다(이전 섹션 참조).
기술적으로, 기본 1-511, 512-1023 및 1024-65535 포트 범위 대신 이제 1024-65535가 PAT의 기본 포트 범위입니다.이 기본 범위는 일반 PAT에 대해 특별 권한 포트 범위 1~1023을 포함하도록 확장할 수 있습니다('include-reserve' 옵션).
다음은 FTD 6.7의 PAT 풀 컨피그레이션의 예입니다. 자세한 내용은 컨피그레이션 가이드의 관련 섹션을 참조하십시오.
PAT에 대한 추가 문제 해결 정보
FTD 데이터 플레인 syslog(6.7/9.15.1 이후)
클러스터 노드의 스티커 IP에서 모든 포트가 소진되고 할당이 사용 가능한 다음 IP로 이동될 때 고정 무효화 syslog가 생성됩니다.예:
%ASA-4-305021: Ports exhausted in pre-allocated PAT pool IP 192.0.2.100 for host 198.51.100.100 Allocating from new PAT pool IP 203.0.113.100.
Pool 불균형 syslog는 클러스터에 참가할 때 노드에 생성되며 포트 블록(예:
%ASA-4-305022: Cluster unit ASA-4 has been allocated 0 port blocks for PAT usage. All units should have at least 32 port blocks.
%ASA-4-305022: Cluster unit ASA-4 has been allocated 12 port blocks for PAT usage. All units should have at least 32 port blocks.
명령 표시
풀 배포 상태
show nat pool cluster summary 출력에서 각 PAT IP 주소에 대해 균형 잡힌 배포 시나리오에서 노드 전체에 대해 1개 이상의 포트 블록과 차이가 없어야 합니다.균형 잡힌 비균형 포트 블록 분포의 예.
firepower# show nat pool cluster summary
port-blocks count display order: total, unit-1-1, unit-2-1, unit-3-1
IP OUTSIDE:ip_192.168.241.57-59 192.168.241.57 (126 - 42 / 42 / 42)
IP OUTSIDE:ip_192.168.241.57-59 192.168.241.58 (126 - 42 / 42 / 42)
IP OUTSIDE:ip_192.168.241.57-59 192.168.241.59 (126 - 42 / 42 / 42)
불균형한 배포:
firepower# show nat pool cluster summary
port-blocks count display order: total, unit-1-1, unit-4-1, unit-2-1, unit-3-1
IP outside:src_map 192.0.2.100 (128 - 32 / 22 / 38 / 36)
풀 소유권 상태
show nat pool cluster 출력에는 소유자 또는 백업이 "UNKNOWN"으로 지정된 단일 포트 블록이 없어야 합니다.풀 소유권 통신에 문제가 있음을 나타냅니다.예:
firepower# show nat pool cluster | in
[3072-3583], owner unit-4-1, backup <UNKNOWN>
[56832-57343], owner <UNKNOWN>, backup <UNKNOWN>
[10240-10751], owner unit-2-1, backup <UNKNOWN>
포트 블록에서 포트 할당 어카운팅
show nat pool 명령은 필터링된 출력은 물론 자세한 정보를 표시하는 추가 옵션으로 개선됩니다.예:
firepower# show nat pool detail
TCP PAT pool INSIDE, address 192.168.240.1, range 1-1023, allocated 0
TCP PAT pool INSIDE, address 192.168.240.1, range 1024-65535, allocated 18
UDP PAT pool INSIDE, address 192.168.240.1, range 1-1023, allocated 0
UDP PAT pool INSIDE, address 192.168.240.1, range 1024-65535, allocated 20
TCP PAT pool OUTSIDE, address 192.168.241.1, range 1-1023, allocated 0
TCP PAT pool OUTSIDE, address 192.168.241.1, range 1024-65535, allocated 18
UDP PAT pool OUTSIDE, address 192.168.241.1, range 1-1023, allocated 0
UDP PAT pool OUTSIDE, address 192.168.241.1, range 1024-65535, allocated 20
UDP PAT pool OUTSIDE, address 192.168.241.58
range 1024-1535, allocated 512
range 1536-2047, allocated 512
range 2048-2559, allocated 512
range 2560-3071, allocated 512
...
unit-2-1:*************************************************************
UDP PAT pool OUTSIDE, address 192.168.241.57
range 1024-1535, allocated 512 *
range 1536-2047, allocated 512 *
range 2048-2559, allocated 512 *
참고:'*'는 백업된 포트 블록임을 나타냅니다.
이 문제를 해결하려면 clear xlate global <ip> gport <start-end> 명령을 사용하여 다른 노드의 일부 포트 블록을 수동으로 지워 필요한 노드로 재배포합니다.
포트 블록의 재배포를 수동으로 트리거함
firepower# show nat pool detail | i 19968
range 19968-20479, allocated 512
range 19968-20479, allocated 512
range 19968-20479, allocated 512
firepower# clear xlate global 192.168.241.57 gport 19968-20479
INFO: 1074 xlates deleted
포스트 6.7/9.15.1 PAT에 대한 FAQ(자주 묻는 질문)
Q. 클러스터에서 사용 가능한 유닛 수에 사용할 수 있는 IP 수가 있는 경우에도 유닛당 1개의 IP를 옵션으로 사용할 수 있습니다
A. 더 이상 IP 주소 기반 풀 및 포트 블록 기반 풀 배포 체계 간에 전환할 수 없습니다.
IP 주소 기반 풀 배포의 이전 구성에서는 호스트의 여러 연결(단일 응용 프로그램 트랜잭션의 일부인)이 클러스터의 다른 노드에 로드 밸런싱되어 대상 서버로 연결되는 다른 매핑된 IP 주소로 변환되어 다른 엔티티에서 소싱된 것으로 볼 수 있는 다중 세션 애플리케이션 오류가 발생했습니다.
또한 새 포트 블록 기반 배포 체계를 사용하면 단일 PAT IP 주소만큼 낮은 값으로 작업할 수 있지만 PATed가 필요한 연결 수를 기준으로 항상 충분한 PAT IP 주소를 사용하는 것이 좋습니다.
Q. 클러스터에 대한 PAT 풀의 IP 주소 풀을 계속 사용할 수 있습니까?
A. 네, 가능합니다.모든 PAT 풀 IP의 포트 블록은 클러스터 노드 전체에 분산됩니다.
Q. PAT 풀에 IP 주소를 여러 개 사용하는 경우 각 IP 주소당 각 멤버에 동일한 포트 블록이 제공됩니까?
A. 아니요. 각 IP는 독립적으로 배포됩니다.
Q. 모든 클러스터 노드에는 모든 공용 IP가 있지만 포트의 하위 집합만 있습니까?그렇다면 소스 IP가 동일한 공용 IP를 사용할 때마다 보장됩니까?
A. 맞습니다. 각 PAT IP는 각 노드에 의해 부분적으로 소유됩니다.선택한 공용 IP가 노드에서 모두 사용되면 스티커 IP를 유지할 수 없음을 나타내는 syslog가 생성되고 할당이 사용 가능한 다음 공용 IP로 이동합니다.독립형, HA 또는 클러스터 구축이든 IP 고착성은 풀 가용성에 따라 항상 최선의 노력을 다합니다.
Q. 모든 것은 PAT 풀의 단일 IP 주소를 기반으로 하지만 PAT 풀에서 둘 이상의 IP 주소를 사용하는 경우에는 적용되지 않습니까?
A. PAT 풀의 여러 IP 주소에도 적용됩니다.PAT 풀에 있는 모든 IP의 포트 블록은 클러스터 노드 간에 분산됩니다.PAT 풀의 모든 IP 주소는 클러스터의 모든 멤버에 분할됩니다.따라서 PAT 풀의 주소 클래스 C가 있는 경우 모든 클러스터 멤버에는 모든 PAT 풀 주소의 포트 풀이 있습니다.
Q. CGNAT와 연동됩니까?
A. 예, CGNAT도 지원됩니다."블록 할당" PAT라고도 하는 CGNAT는 xlate 블록 할당 크기 CLI를 통해 수정할 수 있는 기본 블록 크기가 '512'입니다.일반 동적 PAT(비 CGNAT)의 경우 블록 크기는 항상 '512'이며, 이는 고정되어 구성 불가합니다.
Q. 유닛이 클러스터를 떠나면 제어 노드는 포트 블록 범위를 다른 유닛에 할당하거나 자체적으로 유지합니까?
A. 각 포트 블록에는 소유자 및 백업이 있습니다.xlate가 포트 블록에서 생성될 때마다 포트 블록의 백업 노드에도 복제됩니다.노드가 클러스터를 떠나면 백업 노드는 모든 포트 블록 및 모든 현재 연결을 소유합니다.백업 노드는 이러한 추가 포트 블록의 소유자가 되었으므로 새 백업을 선택하고 현재 모든 xlate를 해당 노드에 복제하여 오류 시나리오를 처리합니다.
Q. 이러한 경고를 기반으로 고착성을 적용하기 위해 어떤 조치를 취할 수 있습니까?
A. 고착성을 보존할 수 없는 이유는 두 가지가 있습니다.
이유-1:노드 중 하나가 다른 노드보다 더 많은 수의 연결을 볼 수 있기 때문에 트래픽이 부적절하게 로드 밸런싱되어 특정 스티키 IP 소진을 초래합니다.트래픽이 클러스터 노드 간에 균일하게 분산되도록 하는 경우 이 문제를 해결할 수 있습니다.예: FPR41xx 클러스터에서 연결된 스위치에서 로드 밸런싱 알고리즘을 조정합니다.FPR9300 클러스터에서 섀시 전체에서 동일한 수의 블레이드를 확보해야 합니다.
이유-2:PAT 풀 사용량이 매우 많아 풀이 자주 고갈됩니다.이를 해결하려면 PAT 풀 크기를 늘립니다.
Q. extended 키워드에 대한 지원은 어떻게 처리됩니까?이 명령은 오류를 표시하고 업그레이드 중에 전체 NAT 명령을 추가하지 못하도록 차단합니까? 아니면 extended 키워드를 제거하고 경고를 표시합니까?
A. PAT "extended" 옵션은 ASA 9.15.1/FP 6.7의 클러스터에서 지원되지 않습니다.구성 옵션은 CLI/ASDM/CSM/FMC에서 제거되지 않습니다.업그레이드를 통해 직접 또는 간접적으로 구성된 경우 경고 메시지가 표시되고 컨피그레이션이 승인되지만 PAT의 확장 기능이 작동하지 않습니다.
Q. 동시 연결과 번역 수가 동일합니까?
A. 6.7/9.15.1 이전에서는 1-65535였지만 소스 포트는 1-1024 범위에서 많이 사용되지 않으므로 1024-65535(64512 conns)를 효과적으로 만듭니다. 'flat'을 기본 동작으로 사용하는 6.7/9.15.1 이후 구현에서는 1024-65535입니다. 그러나 1-1024를 사용하려면 "include-reserve" 옵션을 사용할 수 있습니다.
Q. 노드가 클러스터에 다시 가입하면 이전 백업 노드가 "백업"으로 표시되고 백업 노드가 이전 포트 블록을 클러스터에 제공합니까?
A. 해당 시점에 포트 블록의 사용 가능성에 따라 다릅니다.노드가 클러스터를 떠나면 모든 포트 블록이 백업 노드로 이동합니다.그런 다음 사용 가능한 포트 블록을 누적하여 필요한 노드에 배포하는 제어 노드입니다.
Q. 제어 노드의 상태가 변경되면 새로 선택된 제어 노드가 PAT 블록 할당을 유지합니까, 아니면 새 제어 노드를 기반으로 포트 블록이 재할당됩니까?
A. 새 제어 노드는 할당된 블록과 사용 가능하고 여기에서 시작되는 블록을 파악합니다.
Q. 최대 xlate 수는 이 새 동작과 최대 동시 연결 수와 동일합니까?
A. 네.최대 xlate 수는 PAT 포트의 가용성에 따라 달라집니다.최대 동시 연결 수와 아무런 관련이 없습니다.1개의 주소만 허용하는 경우 65535개의 연결이 가능합니다.더 필요한 경우 더 많은 IP 주소를 할당해야 합니다.주소/포트가 충분한 경우 최대 동시 연결에 도달할 수 있습니다.
Q. 새 클러스터 멤버가 추가될 때 포트 블록 할당 프로세스는 무엇입니까? 재부팅으로 인해 클러스터 멤버가 추가되면 어떻게 됩니까?
A. 포트 블록은 항상 제어 노드에 의해 배포됩니다.포트 블록은 사용 가능한 포트 블록이 있는 경우에만 새 노드에 할당됩니다.사용 가능한 포트 블록은 포트 블록 내의 매핑된 포트를 통해 어떤 연결도 제공되지 않음을 의미합니다.
또한 다시 합류하면 각 노드는 자신이 소유할 수 있는 블록 수를 다시 계산합니다.노드가 예상보다 많은 블록을 보유하면 제어 노드에 이러한 추가 포트 블록을 사용 가능한 상태로 및 사용 가능하게 됩니다.그런 다음 제어 노드가 새로 가입된 데이터 노드에 할당합니다.
Q. TCP 및 UDP 프로토콜 또는 SCTP만 지원됩니까?
A. SCTP는 동적 PAT에서 지원되지 않습니다.SCTP 트래픽의 경우 고정 네트워크 개체 NAT만 사용하는 것이 좋습니다.
Q. 노드가 블록 포트가 부족하면 패킷을 삭제하고 사용 가능한 다음 IP 블록을 사용하지 않습니까?
A. 아니, 바로 떨어지지 않아.다음 PAT IP에서 사용 가능한 포트 블록을 사용합니다.모든 PAT IP를 통한 모든 포트 블록이 소진된 경우 트래픽이 삭제됩니다.
Q. 클러스터 업그레이드 창에서 제어 노드의 오버로드를 방지하려면 제어 노드에서 모든 연결이 처리될 때까지 대기하는 대신 4유닛 클러스터 업그레이드의 절반과 같은 새 컨트롤을 이전에 수동으로 선택하는 것이 좋습니까?
A. 마지막으로 컨트롤을 업데이트해야 합니다.이는 제어 노드가 새 버전을 실행할 때 모든 노드가 새 버전을 실행하지 않는 한 풀 배포를 시작하지 않기 때문입니다.또한 업그레이드가 실행되면 새 버전의 모든 데이터 노드는 이전 버전을 실행하는 경우 제어 노드의 풀 배포 메시지를 무시합니다.
이를 자세히 설명하려면 4노드 A, B, C, D와 A를 제어하여 클러스터 구축을 고려하십시오.다음은 일반적인 히트리스 업그레이드 단계입니다.
a.PAT 구성 처리
b.각 PAT IP를 포트 블록으로 분리
c. 할당되지 않은 상태의 모든 포트 블록이 있습니다.
d.제어에서 받은 이전 버전의 클러스터 PAT 메시지를 무시합니다.
e.모든 PAT 연결을 마스터로 리디렉션
4. 마찬가지로, 다른 노드를 새 버전으로 가져옵니다.
5. 장치 'A' 컨트롤을 다시 로드합니다.제어를 위한 백업이 없으므로 기존의 모든 연결이 삭제됩니다.
6. 새 컨트롤은 포트 블록의 배포를 새로운 형식으로 시작합니다.
7. 'A' 유닛이 재가입되어 포트 블록 분배 메시지를 수락하고 대응할 수 있습니다.
증상
사이트 간 클러스터 구축에서 1개의 특정 사이트(사이트-로컬 트래픽)에서 처리해야 하는 프래그먼트된 패킷은 다른 사이트의 유닛으로 여전히 전송될 수 있습니다. 이러한 사이트 중 하나에 프래그먼트 소유자가 있을 수 있습니다.
클러스터 논리에서는 프래그먼트된 패킷과의 연결에 대해 정의된 추가 역할이 있습니다.프래그먼트 소유자.
프래그먼트된 패킷의 경우 프래그먼트를 수신하는 클러스터 유닛은 프래그먼트 소스 IP 주소, 대상 IP 주소 및 패킷 ID의 해시를 기반으로 프래그먼트 소유자를 결정합니다.그런 다음 모든 프래그먼트가 클러스터 제어 링크를 통해 프래그먼트 소유자에게 전달됩니다.첫 번째 프래그먼트에만 스위치 로드 밸런싱 해시에 사용되는 5튜플이 포함되므로 프래그먼트를 다른 클러스터 유닛에 로드 밸런싱할 수 있습니다.다른 프래그먼트는 소스 및 대상 포트를 포함하지 않으며 다른 클러스터 유닛에 로드 밸런싱할 수 있습니다.프래그먼트 소유자는 소스/목적지 IP 주소 및 포트의 해시를 기반으로 디렉터를 확인할 수 있도록 일시적으로 패킷을 리어셈블합니다.새 연결인 경우 프래그먼트 소유자는 연결 소유자가 됩니다.기존 연결인 경우 프래그먼트 소유자는 클러스터 제어 링크를 통해 모든 프래그먼트를 연결 소유자에게 전달합니다.그런 다음 연결 소유자는 모든 프래그먼트를 리어셈블합니다.
클라이언트에서 서버로의 조각화된 ICMP 에코 요청의 흐름과 함께 이 토폴로지를 고려하십시오.
작업의 순서를 이해하기 위해 클러스터 전체 패킷 캡처가 내부, 외부, 클러스터 제어 링크 인터페이스에 trace 옵션으로 구성되어 있습니다. 또한 reinject-hide 옵션이 포함된 패킷 캡처가 내부 인터페이스에 구성됩니다.
firepower# cluster exec capture capi interface inside trace match icmp any any
firepower# cluster exec capture capir interface inside reinject-hide trace match icmp any any
firepower# cluster exec capture capo interface outside trace match icmp any any
firepower# cluster exec capture capccl interface cluster trace match icmp any any
클러스터 내 작업 순서:
1.사이트 1의 unit-1-1은 단편화된 ICMP 에코 요청 패킷을 수신합니다.
firepower# cluster exec show cap capir
unit-1-1(LOCAL):******************************************************
2 packets captured
1: 20:13:58.227801 802.1Q vlan#10 P0 192.0.2.10 > 203.0.113.10 icmp: echo request
2: 20:13:58.227832 802.1Q vlan#10 P0
2 packets shown
2 .unit-1-1은 사이트 2의 unit-2-2를 프래그먼트 소유자로 선택하고 프래그먼트된 패킷을 전송합니다.
unit-1-1에서 unit-2-2로 전송된 패킷의 대상 MAC 주소는 유닛-2-2에서 CCL 링크의 MAC 주소입니다.
firepower# show cap capccl packet-number 1 detail
7 packets captured
1: 20:13:58.227817 0015.c500.018f 0015.c500.029f 0x0800 Length: 1509
192.0.2.10 > 203.0.113.10 icmp: echo request (wrong icmp csum) (frag 46772:1475@0+) (ttl 3)
1 packet shown
firepower# show cap capccl packet-number 2 detail
7 packets captured
2: 20:13:58.227832 0015.c500.018f 0015.c500.029f 0x0800 Length: 637
192.0.2.10 > 203.0.113.10 (frag 46772:603@1480) (ttl 3)
1 packet shown
firepower# cluster exec show interface po48 | i MAC
unit-1-1(LOCAL):******************************************************
MAC address 0015.c500.018f, MTU 1500
unit-1-2:*************************************************************
MAC address 0015.c500.019f, MTU 1500
unit-2-2:*************************************************************
MAC address 0015.c500.029f, MTU 1500
unit-1-3:*************************************************************
MAC address 0015.c500.016f, MTU 1500
unit-2-1:*************************************************************
MAC address 0015.c500.028f, MTU 1500
unit-2-3:*************************************************************
MAC address 0015.c500.026f, MTU 1500
3 .unit-2-2는 프래그먼트된 패킷을 수신, 리어셈블하고 플로우의 소유자가 됩니다.
firepower# cluster exec unit unit-2-2 show capture capccl packet-number 1 trace
11 packets captured
1: 20:13:58.231845 192.0.2.10 > 203.0.113.10 icmp: echo request
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'inside'
Flow type: NO FLOW
I (2) received a FWD_FRAG_TO_FRAG_OWNER from (0).
Phase: 2
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'inside'
Flow type: NO FLOW
I (2) have reassembled a packet and am processing it.
Phase: 3
Type: CAPTURE
Subtype:
Result: ALLOW
Config:
Additional Information:
MAC Access list
Phase: 4
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
MAC Access list
Phase: 5
Type: ROUTE-LOOKUP
Subtype: No ECMP load balancing
Result: ALLOW
Config:
Additional Information:
Destination is locally connected. No ECMP load balancing.
Found next-hop 203.0.113.10 using egress ifc outside(vrfid:0)
Phase: 6
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'inside'
Flow type: NO FLOW
I (2) am becoming owner
Phase: 7
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group CSM_FW_ACL_ global
access-list CSM_FW_ACL_ advanced trust ip any any rule-id 268435460 event-log flow-end
access-list CSM_FW_ACL_ remark rule-id 268435460: PREFILTER POLICY: igasimov_prefilter1
access-list CSM_FW_ACL_ remark rule-id 268435460: RULE: r1
Additional Information:
...
Phase: 19
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 1719, packet dispatched to next module
...
Result:
input-interface: cluster(vrfid:0)
input-status: up
input-line-status: up
output-interface: outside(vrfid:0)
output-status: up
output-line-status: up
Action: allow
1 packet shown
firepower# cluster exec unit unit-2-2 show capture capccl packet-number 2 trace
11 packets captured
2: 20:13:58.231875
Phase: 1
Type: CLUSTER-EVENT
Subtype:
Result: ALLOW
Config:
Additional Information:
Input interface: 'inside'
Flow type: NO FLOW
I (2) received a FWD_FRAG_TO_FRAG_OWNER from (0).
Result:
input-interface: cluster(vrfid:0)
input-status: up
input-line-status: up
Action: allow
1 packet shown
4.unit-2-2는 보안 정책을 기반으로 패킷을 허용하고 사이트 2에서 사이트 1로 외부 인터페이스를 통해 패킷을 전송합니다.
firepower# cluster exec unit unit-2-2 show cap capo
2 packets captured
1: 20:13:58.232058 802.1Q vlan#20 P0 192.0.2.10 > 203.0.113.10 icmp: echo request
2: 20:13:58.232058 802.1Q vlan#20 P0
관찰/주의 사항
Interface: inside
Configuration: Size: 200, Chain: 24, Timeout: 5, Reassembly: virtual
Run-time stats: Queue: 0, Full assembly: 0
Drops: Size overflow: 0, Timeout: 0,
Chain overflow: 0, Fragment queue threshold exceeded: 0,
Small fragments: 0, Invalid IP len: 0,
Reassembly overlap: 0, Fraghead alloc failed: 0,
SGT mismatch: 0, Block alloc failed: 0,
Invalid IPV6 header: 0, Passenger flow assembly failed: 0
클러스터 구축에서 프래그먼트 소유자 또는 연결 소유자는 프래그먼트 패킷을 프래그먼트 대기열에 넣습니다.조각 큐 크기는 fragment size <size> <nameif> 명령으로 구성된 Size 카운터 값(기본값 200)에 의해 제한됩니다.프래그먼트 대기열 크기가 Size의 2/3에 도달하면 프래그먼트 대기열 임계값이 초과된 것으로 간주되며 현재 프래그먼트 체인에 속하지 않은 새 프래그먼트가 삭제됩니다.이 경우 Fragment 큐 임계값 초과가 증가하고 syslog 메시지 FTD-3-209006이 생성됩니다.firepower# show fragment inside
Interface: inside
Configuration: Size: 200, Chain: 24, Timeout: 5, Reassembly: virtual
Run-time stats: Queue: 133, Full assembly: 0
Drops: Size overflow: 0, Timeout: 8178,
Chain overflow: 0, Fragment queue threshold exceeded: 40802,
Small fragments: 0, Invalid IP len: 0,
Reassembly overlap: 9673, Fraghead alloc failed: 0,
SGT mismatch: 0, Block alloc failed: 0,
Invalid IPV6 header: 0, Passenger flow assembly failed: 0
%FTD-3-209006: Fragment queue threshold exceeded, dropped TCP fragment from 192.0.2.10/21456 to 203.0.113.10/443 on inside interface.
이를 해결하려면 Firepower Management Center > Devices > Device Management > [Edit Device] > Interfaces > [Interface] > Advanced > Security Configuration > Override Default Fragment Setting, 구성 저장 및 구축 정책을 늘립니다.그런 다음 show fragment 명령 출력 및 syslog 메시지 FTD-3-209006의 Queue 카운터를 모니터링합니다.
ACI Pod에서 활성 L4 체크섬 확인으로 인해 클러스터를 통한 간헐적인 연결 문제
증상
완화
증상
유닛이 클러스터에 가입할 수 없으며 다음 메시지가 표시됩니다.
The slave has left the cluster because application configuration sync is timed out on this unit. Disabling cluster now!
Cluster disable is performing cleanup..done.
Unit unit-2-1 is quitting due to system failure for 1 time(s) (last failure is Slave application configuration sync timeout). Rejoin will be attempted after 5 minutes.
All data interfaces have been shutdown due to clustering being disabled. To recover either enable clustering or remove cluster group configuration.
확인/완화
firepower# show interface
Interface Port-channel1 "Inside", is up, line protocol is up
Hardware is EtherSVI, BW 40000 Mbps, DLY 10 usec
MAC address 3890.a5f1.aa5e, MTU 9084
Interface Port-channel48 "cluster", is up, line protocol is up
Hardware is EtherSVI, BW 40000 Mbps, DLY 10 usec
Description: Clustering Interface
MAC address 0015.c500.028f, MTU 9184
IP address 127.2.2.1, subnet mask 255.255.0.
firepower# ping 127.2.1.1 size 9184
Switch# show interface
port-channel12 is up
admin state is up,
Hardware: Port-Channel, address: 7069.5a3a.7976 (bia 7069.5a3a.7976)
MTU 9084 bytes, BW 40000000 Kbit , DLY 10 usec
port-channel13 is up
admin state is up,
Hardware: Port-Channel, address: 7069.5a3a.7967 (bia 7069.5a3a.7967)
MTU 9084 bytes, BW 40000000 Kbit , DLY 10 use
증상
유닛이 클러스터에 가입할 수 없으며 다음 메시지가 표시됩니다.
Interface mismatch between cluster master and joining unit unit-2-1. unit-2-1 aborting cluster join.
Cluster disable is performing cleanup..done.
Unit unit-2-1 is quitting due to system failure for 1 time(s) (last failure is Internal clustering error). Rejoin will be attempted after 5 minutes.
All data interfaces have been shutdown due to clustering being disabled. To recover either enable clustering or remove cluster group configuration.
확인/완화
각 섀시의 FCM GUI에 로그인하고 Interfaces 탭으로 이동한 다음 모든 클러스터 멤버에 동일한 인터페이스 컨피그레이션이 있는지 확인합니다.
증상
클러스터에 여러 제어 단위가 있습니다.다음 토폴로지를 고려하십시오.
섀시 1:
firepower# show cluster info
Cluster ftd_cluster1: On
Interface mode: spanned
This is "unit-1-1" in state MASTER
ID : 0
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2103TU5H
CCL IP : 127.2.1.1
CCL MAC : 0015.c500.018f
Last join : 07:30:25 UTC Dec 14 2020
Last leave: N/A
Other members in the cluster:
Unit "unit-1-2" in state SLAVE
ID : 1
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2103TU4D
CCL IP : 127.2.1.2
CCL MAC : 0015.c500.019f
Last join : 07:30:26 UTC Dec 14 2020
Last leave: N/A
Unit "unit-1-3" in state SLAVE
ID : 3
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2102THJT
CCL IP : 127.2.1.3
CCL MAC : 0015.c500.016f
Last join : 07:31:49 UTC Dec 14 2020
Last leave: N/A
섀시 2:
firepower# show cluster info
Cluster ftd_cluster1: On
Interface mode: spanned
This is "unit-2-1" in state MASTER
ID : 4
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2103TUN1
CCL IP : 127.2.2.1
CCL MAC : 0015.c500.028f
Last join : 11:21:56 UTC Dec 23 2020
Last leave: 11:18:51 UTC Dec 23 2020
Other members in the cluster:
Unit "unit-2-2" in state SLAVE
ID : 2
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2102THR9
CCL IP : 127.2.2.2
CCL MAC : 0015.c500.029f
Last join : 11:18:58 UTC Dec 23 2020
Last leave: 22:28:01 UTC Dec 22 2020
Unit "unit-2-3" in state SLAVE
ID : 5
Site ID : 1
Version : 9.15(1)
Serial No.: FLM2103TUML
CCL IP : 127.2.2.3
CCL MAC : 0015.c500.026f
Last join : 11:20:26 UTC Dec 23 2020
Last leave: 22:28:00 UTC Dec 22 2020
확인
firepower# ping 127.2.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 127.2.1.1, timeout is 2 seconds:
?????
Success rate is 0 percent (0/5)
firepower# show arp
cluster 127.2.2.3 0015.c500.026f 1
cluster 127.2.2.2 0015.c500.029f 1
firepower# capture capccl interface cluster
firepower# show capture capccl | i 127.2.1.1
2: 12:10:57.652310 arp who-has 127.2.1.1 tell 127.2.2.1
41: 12:11:02.652859 arp who-has 127.2.1.1 tell 127.2.2.1
74: 12:11:07.653439 arp who-has 127.2.1.1 tell 127.2.2.1
97: 12:11:12.654018 arp who-has 127.2.1.1 tell 127.2.2.1
126: 12:11:17.654568 arp who-has 127.2.1.1 tell 127.2.2.1
151: 12:11:22.655148 arp who-has 127.2.1.1 tell 127.2.2.1
174: 12:11:27.655697 arp who-has 127.2.1.1 tell 127.2.2.1
완화
다음은 샘플 스위치 컨피그레이션입니다.
Nexus# show run int po48-49
interface port-channel48
description FPR1
switchport access vlan 48
vpc 48
interface port-channel49
description FPR2
switchport access vlan 48
vpc 49
Nexus# show vlan id 48
VLAN Name Status Ports
---- ----------- --------- -------------------------------
48 CCL active Po48, Po49, Po100, Eth1/53, Eth1/54
VLAN Type Vlan-mode
---- ----- ----------
48 enet CE
1 Po1 up success success 10,20
48 Po48 up success success 48
49 Po49 up success success 48
Nexus1# show vpc brief
Legend:
(*) - local vPC is down, forwarding via vPC peer-link
vPC domain id : 1
Peer status : peer adjacency formed ok
vPC keep-alive status : peer is alive
Configuration consistency status : success
Per-vlan consistency status : success
Type-2 consistency status : success
vPC role : primary
Number of vPCs configured : 3
Peer Gateway : Disabled
Dual-active excluded VLANs : -
Graceful Consistency Check : Enabled
Auto-recovery status : Disabled
Delay-restore status : Timer is off.(timeout = 30s)
Delay-restore SVI status : Timer is off.(timeout = 10s)
vPC Peer-link status
---------------------------------------------------------------------
id Port Status Active vlans
-- ---- ------ --------------------------------------------------
1 Po100 up 1,10,20,48-49,148
vPC status
----------------------------------------------------------------------
id Port Status Consistency Reason Active vlans
-- ---- ------ ----------- ------ ------------
1 Po1 up success success 10,20
48 Po48 up success success 48
49 Po49 up success success 48
증상
하나 이상의 데이터 포트 채널 인터페이스가 일시 중단되었습니다.관리자가 활성화된 데이터 인터페이스가 일시 중단되면 인터페이스 상태 검사 실패로 인해 동일한 섀시의 모든 클러스터 유닛이 클러스터에서 제외됩니다.
다음 토폴로지를 고려하십시오.
확인
firepower#
Beginning configuration replication to Slave unit-2-2
End Configuration Replication to slave.
Asking slave unit unit-2-2 to quit because it failed interface health check 4 times (last failure on Port-channel1). Clustering must be manually enabled on the unit to rejoin.
firepower# Unit is kicked out from cluster because of interface health check failure.
Cluster disable is performing cleanup..done.
All data interfaces have been shutdown due to clustering being disabled. To recover either enable clustering or remove cluster group configuration.
Cluster unit unit-2-1 transitioned from SLAVE to DISABLED
firepower# show cluster history
==========================================================================
From State To State Reason
==========================================================================
12:59:37 UTC Dec 23 2020
ONCALL SLAVE_COLD Received cluster control message
12:59:37 UTC Dec 23 2020
SLAVE_COLD SLAVE_APP_SYNC Client progression done
13:00:23 UTC Dec 23 2020
SLAVE_APP_SYNC SLAVE_CONFIG Slave application configuration sync done
13:00:35 UTC Dec 23 2020
SLAVE_CONFIG SLAVE_FILESYS Configuration replication finished
13:00:36 UTC Dec 23 2020
SLAVE_FILESYS SLAVE_BULK_SYNC Client progression done
13:01:35 UTC Dec 23 2020
SLAVE_BULK_SYNC DISABLED Received control message DISABLE (interface health check failure)
firepower# show cluster info trace module hc
Dec 23 13:01:36.636 [INFO]cluster_fsm_clear_np_flows: The clustering re-enable timer is started to expire in 598000 ms.
Dec 23 13:01:32.115 [INFO]cluster_fsm_disable: The clustering re-enable timer is stopped.
Dec 23 13:01:32.115 [INFO]Interface Port-channel1 is down
FPR2(fxos)# show port-channel summary
Flags: D - Down P - Up in port-channel (members)
I - Individual H - Hot-standby (LACP only)
s - Suspended r - Module-removed
S - Switched R - Routed
U - Up (port-channel)
M - Not in use. Min-links not met
--------------------------------------------------------------------------
Group Port-Channel Type Protocol Member Ports
--------------------------------------------------------------------------
1 Po1(SD) Eth LACP Eth2/1(s) Eth2/2(s) Eth2/3(s) Eth2/4(s)
48 Po48(SU) Eth LACP Eth3/1(P) Eth3/2(P) Eth3/3(P) Eth3/4(P)
완화
증상
유닛이 클러스터를 종료합니다.
확인/완화
firepower# show cluster history
FPR4150# connect local-mgmt
FPR4150 (local-mgmt)# dir cores
클러스터 유닛의 /ngfw 파티션의 디스크 사용률이 94%에 도달하면 유닛이 클러스터를 종료합니다.디스크 사용률 검사는 3초마다 발생합니다.
> show disk
Filesystem Size Used Avail Use% Mounted on
rootfs 81G 421M 80G 1% /
devtmpfs 81G 1.9G 79G 3% /dev
tmpfs 94G 1.8M 94G 1% /run
tmpfs 94G 2.2M 94G 1% /var/volatile
/dev/sda1 1.5G 156M 1.4G 11% /mnt/boot
/dev/sda2 978M 28M 900M 3% /opt/cisco/config
/dev/sda3 4.6G 88M 4.2G 3% /opt/cisco/platform/logs
/dev/sda5 50G 52M 47G 1% /var/data/cores
/dev/sda6 191G 191G 13M 100% /ngfw
cgroup_root 94G 0 94G 0% /dev/cgroups
이 경우 show cluster history 출력에 다음이 표시됩니다.
15:36:10 UTC May 19 2021
MASTER MASTER Event: Master unit unit-1-1 is quitting
due to diskstatus Application health check failure, and
master's application state is down
또는
14:07:26 CEST May 18 2021
SLAVE DISABLED Received control message DISABLE (application health check failure)
오류를 확인하는 또 다른 방법은 다음과 같습니다.
firepower# show cluster info health
Member ID to name mapping:
0 - unit-1-1(myself) 1 - unit-2-1
0 1
Port-channel48 up up
Ethernet1/1 up up
Port-channel12 up up
Port-channel13 up up
Unit overall healthy healthy
Service health status:
0 1
diskstatus (monitor on) down down
snort (monitor on) up up
Cluster overall healthy
또한 디스크가 ~100%인 경우 일부 디스크 공간이 해제될 때까지 유닛이 클러스터를 다시 연결하는 데 어려움을 겪을 수 있습니다.
각 클러스터 유닛은 5분마다 로컬 및 피어 유닛에서 CPU 및 메모리 사용률을 확인합니다.사용률이 시스템 임계값(LINA CPU 50% 또는 LINA 메모리 59%)을 초과할 경우 정보 메시지는 다음과 같습니다.
firepower# more log/cluster_trace.log | i CPU
May 20 16:18:06.614 [INFO][CPU load 87% | memory load 37%] of module 1 in chassis 1 (unit-1-1) exceeds overflow protection threshold [CPU 50% | Memory 59%]. System may be oversubscribed on member failure.
May 20 16:18:06.614 [INFO][CPU load 87% | memory load 37%] of chassis 1 exceeds overflow protection threshold [CPU 50% | Memory 59%]. System may be oversubscribed on chassis failure.
May 20 16:23:06.644 [INFO][CPU load 84% | memory load 35%] of module 1 in chassis 1 (unit-1-1) exceeds overflow protection threshold [CPU 50% | Memory 59%]. System may be oversubscribed on member failure.
이 메시지는 유닛에 장애가 발생한 경우 나머지 유닛 리소스를 초과 서브스크립션할 수 있음을 나타냅니다.
6.3 이전 FMC 릴리스의 동작
6.3 이후 FMC
최소 지원 관리자 |
관리되는 디바이스 |
지원되는 최소 관리 디바이스 버전 필요 |
참고 |
FMC 6.3 |
FP9300 및 FP4100의 FTD 클러스터만 해당 |
6.2.0 |
FMC 기능만 |
경고:클러스터가 FTD에 구성되면 자동 등록이 시작될 때까지 기다려야 합니다.클러스터 노드를 수동으로(장치 추가) 등록하려고 시도해서는 안 되며 조정 옵션을 사용해야 합니다.
증상
노드 등록 실패
완화
어떤 이유로든 데이터 노드 등록이 실패하면 다음 두 가지 옵션이 있습니다.