FortiGate 이중화(HA)방법 중 FGSP에 대해 알아보겠습니다.

 일반적으로 A-B일 경우 FGCP를 구성하지만, A-A 일 때는 FGSP를 고려하게 됩니다.


1. FGSP(Session Life Support Protocol)

독립형 FortiGates 또는 FGCP 클러스터는 트래픽이 업스트림 로드 밸런서에 의해 로드 밸런싱되고 다운스트림 FortiGates에 의해 스캔되는 네트워크에서 FortiGate Session Life Support Protocol(FGSP)을 사용하여 로드 밸런싱 구성에 통합될 수 있습니다. FGSP는 IPv4 및 IPv6 TCP, SCTP, UDP, ICMP, 기대, RSSO 인증 사용자 로그인 정보 및 NAT 세션의 세션 동기화를 수행하여 모든 엔터티에서 세션 테이블을 동기화된 상태로 유지할 수 있습니다. FortiGates 중 하나가 실패하면 업스트림 로드 밸런서는 실패한 멤버를 감지하고 세션 분배를 중단해야 합니다. 세션 장애 조치가 발생하고 활성 세션은 여전히 작동 중인 피어로 장애 조치됩니다. 세션이 동기화되므로 트래픽은 데이터 손실 없이 새 피어에서 계속 흐릅니다.

FGSP의 FortiGates는 트래픽을 처리하고 세션을 동기화하는 피어로 작동합니다. FGSP 배포에는 2~16개의 독립형 FortiGates 또는 각각 2개의 멤버로 구성된 2~16개의 FortiGate FGCP 클러스터가 포함될 수 있습니다. FortiGates를 더 추가하면 모든 FortiGates를 동기화하는 데 필요한 CPU와 메모리가 증가하고 네트워크 동기화 트래픽이 증가합니다. 멤버 수를 초과하는 것은 권장되지 않으며 전반적인 성능이 저하될 수 있습니다. 기본적으로 FGSP는 모든 IPv4 및 IPv6 TCP 세션과 IPsec 터널을 동기화합니다. 선택적으로 필터를 추가하여 특정 소스 및 대상 주소, 소스 및 대상 인터페이스 또는 서비스의 패킷을 동기화하는 등 어떤 세션이 동기화되는지 제어할 수 있습니다.

https://docs.fortinet.com/document/fortigate/7.6.0/administration-guide/668583/fgsp

 

FGCP는 장비가 1대인 것처럼 동작하기 위해 각 Interface까지 동기화되지만, FGSP의 경우에는 고유의 Interface IP를 가지고 있게 됩니다.(즉 FortiGate를 바라보는 장비에서 GW가 2개로 보이게 됩니다.) 때문에 상하단에서 LB를 이용해 분산처리 작업이 필요하게 됩니다.


*추가로 v7.0까지는 ‘config system cluster-sync’ 와 ‘config system standalone-cluster’가 별도로 분리되어 있었지만, v7.2.1부터는 합쳐지게 되었습니다.

https://docs.fortinet.com/document/fortigate/7.2.0/new-features/71883/consolidate-fgsp-settings-7-2-1

===============================================================================


FGSP 기본 config

https://docs.fortinet.com/document/fortigate/7.6.0/administration-guide/869218/fgsp-basic-peer-setup

텍스트, 도표, 폰트, 라인이(가) 표시된 사진

자동 생성된 설명

 

1번 장비

config system standalone-cluster

     config cluster-peer

         edit 1

             set peerip 10.10.10.2

         next

     end

    set standalone-group-id 1

     set group-member-id 1

end

 

2번장비

config system standalone-cluster

     config cluster-peer

         edit 1

             set peerip 10.10.10.1

         next

     end

     set standalone-group-id 1

     set group-member-id 2

end


특수한 세션 Sync를 위해서는 아래 명령어들 필요

https://community.fortinet.com/t5/FortiGate/Technical-Tip-FGSP-Configuration-Guide-for-Session-Sync-and/ta-p/197561


Synchronize NAT sessions:

config system ha
set session-pickup enable
     set session-pickup-nat enable

 

Synchronizes UDP and ICMP sessions:

config system ha
set session-pickup enable
     set session-pickup-connectionless enable

 

Synchronizes exception sessions also called asymmetric sessions:

config system ha
set session-pickup enable
     set session-pickup-expectation enable


추가 참고사항- 

Cloud 환경에서의 FGSP(Session-Sync 및 Config-Sync)

Cloud 환경에서는 L2 구간이 없기 때문에 hb 통신을 주고받는 Port조차 L3통신이 필요합니다.

때문에 기존 HA 링크에 L2 통신을 이용한 Config 동기화가 정상 동작하지 못합니다.

이에 대체방안으로 hb  동기화를 L2가 아닌 L3로 동기화 하는 설정을 추가할 수 있습니다.

https://docs.fortinet.com/document/fortigate-private-cloud/7.6.0/kvm-administration-guide/397100/ha

 

예외

Autoscale 설정으로 Config sync가 되는 것을 이용해 Autoscale + Cluster sync를 설정해서 사용하는 경우가 있는데, Autoscale 설정으로 인해 Sessoin sync에 문제가 될 수 있으므로 혼합하여 사용은 권고하지 않습니다.

https://docs.fortinet.com/document/fortigate-public-cloud/7.6.0/azure-administration-guide/917631/configuring-fgsp-session-sync?gad_source=1&gclid=Cj0KCQjwt4a2BhD6ARIsALgH7DqSM8YMJkcuIa4vHstmjWyUTOUngxWayWr1UC9EKcWcOVI7uJMNdA8aAiUzEALw_wcB