본문 바로가기
KISA/KISA - 정보보호제품군(기본)

05. HA 구성 실습

by ㅇㅅㅇ.. 2024. 11. 23.

HA(High Availability, 고가용성)

가용성이 높다는 뜻으로, 고장 나지 않음을 의미

HA 구성의 목적은 장애가 발생하였을 때 서비스의 다운타임을 최소화함으로써 가용성을 극대화하는 것.

 

HA 유형

  • Server redundancy(서버 이중화)
    여러 서버를 사용하는 것으로, 서버 중 하나에 장애가 발생할 경우 백업 서버가 기존 서버의 데이터를 받아와 서비스
  • Load balancing
    한쪽으로 몰리는 트래픽을 여러 서버로 분산하여 단일 서버의 과부하를 방지하는 것
  • Failover
    장애가 생겼을 때 예비 시스템으로 자동 전환되는 기능으로 대기 중인 장비에게 모든 처리를 전송할 수 있게 전환하는 것
  • Replication
    여러 개의 데이터 복사본을 만들고 여러 서버에 배포하여 데이터를 항상 사용할 수 있도록 하는 것

* 서버 이중화는 HA의 핵심 요소이며 HA 자체라고 볼 수는 없음.  

 


 

Server redundancy(서버 이중화)

운영 중인 서비스의 안정성을 위해 각종 자원을 이중 혹은 그 이상으로 구성하는 것으로 서비스의 가용성을 극대화시키기 위해 사용하는 일반적인 기술

 

종류

  1. Active - Standby
    기존 Active 서버에 문제가 발생할 경우 대기 중이던 Standby 서버가 인계를 받고 Active 상태로 전환되는 형태

  2. Active - Active
    여러 서버가 워크로드를 공유하고 각 서버가 워크로드의 일부를 처리한다. 일반적으로 성능 및 가용성을 향상하기 위해 여러 서버에 로드를 분산하는 데 사용된다. 각 서버 또는 노드는 모두 활성화 상태이며 기본 워크로드를 동시에 처리할 수 있다.

  3. N + 1
    N개의 서버가 활성 모드에 있고 하나의 추가 대기 서버가 예약되어 있다. Active 서버 둥 하나에 오류가 발생한 경우 인계할 수 있는 사용 가능하고 작동하는 서버가 항상 존재하는 확인 한다. 대기 서버가 장애가 발생한 서버의 작업 부하를 인계받을 수 있으므로 장애가 발생한 단일 서버로 시스템이 계속 작동할 수 있다. 

 

Server Redundancy의 필수 기능

  • 데이터 복제 기능
    HA의 목적은 다운 타임을 최소화하고 서비스의 연속성을 유지하는 것인데 그러기 위해선 두 장비의 데이터 상태는 항사 동일해야 즉각적으로 서비스를 제공할 수 있다. Active와 Standby 장비의 데이터를 100% 동일해야 한다는 무결성을 보장해야 함.
    데이터 복제 시 Master - Slave 구조를 가지게 되며, Master는 R, W 기능 / Slave는 R 기능을 가지게 된다.

  • 장애 감시 기능
    위와 같이  데이터를 동일하게 만들고 있다가 장애 발생 시 즉각적으로 전환 작업이 이루어져야 하는데, 이때 필요한 기능이 장애 감시 기능이다. Standby 장비는 Active 장비에서 언제 장애가 발생할지 모르게 때문에 항상 감시하고 있어야 한다.

    만약, A 장비에서 장애 발생 시 A -> S로 전환되고 S장비는 S -> A로 전환되는 Failover가 이루어져야 한다.

Active - Standby

  • <평소>: A와 S 중 A만 사용되며, 대기 중인 S는 A의 상태를 수시로 체크한다. S는 데이터 동기화를 하여 장애 상황을 대기함.
  • <장애 발생 시>: B가 장애를 감지하면 A로부터 서비스를 전이받고 Active 장비로 전환되며, 장애가 발생한 A 장비는 Standby로 전환된다.(Failover).

 

*VIP(Virtual IP)

HA 구성 후 통신에 사용되는 가상 IP로 Active와 Standby 장비의 신속한 전환을 위해 사용된다.

  • <Active 장비>
    1. 경로(Route)가 정상적으로 살아 있으면 자신의 VIP인 13.100.100.100을 활성화하여 통신한다.
    2. 동시에 Standby 장비의 VIP를 Install 하는데 여기서 Standby 장비의 IP는 dummy IP(ex.0.0.0.1)이다.
        (Standby 장비가 서비스 요청을 받지 못하게 통신 연결을 차단하기 위해 dummy IP를 사용)

  • <Standby 장비>
    1. 기본적으로 서비스 요청을 처리하지 않으며 Active 장비의 VIP 13.100.100.100을 설치하여,
        Active 장비가 정상적으로 작동 중인지 감시한다.
    2. 만약 Active 장비가 장애로 인해 VIP를 유지할 수 없는 경우 Standby 장비가 해당 VIP를 가져와 Install 한다.

 

*Checker

A-S 장비 상태를 확인하기 위해 사용한다. XTM 장비는 ICMP 패킷을 이용해 상대 장비의 상태를 확인한다.

 

*HA-Link 

A-S 장비 간 Session copy에 사용된다. 해당 링크를 통해 데이터(세션, 정책, 로그..) 동기화가 이루어진다. 

 

 


<실습>

 

이때까지의 실습은 XTM1에서 진행하였고, 지금은 HA 설정을 위해 XTM2에 접속

 

 

1. 인터페이스 설정

XTM1과 마찬가지로 기존에는 eth2 인터페이스만 IP가 할당되어 있다. 

[네트워크] → [인터페이스설정] → [인터페이스설정]

 

XTM2에도 각 네트워크 인터페이스에 알맞은 IP를 할당한다.

[네트워크] → [인터페이스설정] → [인터페이스설정]

 

 

(2) XTM1 <-> XTM2 세션연결

 

[ 2-1. XTM2 정보 확인 / XTM1에 접속하여 XTM2와 세션 연결 ]

세션 동기화를 위해 XTM2 정보를 확인한다. (eth3을 기준으로 연결을 수행함)

  • MAC Address: 00:50:56:9A:4A:C8
  • IP: 4.4.4.2

[시스템] - [장비 상태] - [Interface Info]

 

 

XTM1에 접속하여 위의 XTM2 정보를 바탕으로 세션을 연결한다.

[HA] → [동기화설정] → [세션동기화]
[HA] → [동기화설정] → [정책동기화]

 

 

 

[ 2-2. XTM1 정보 확인 / XTM2에 접속하여 XTM1와 세션 연결 ]
위 2-1 과정과 동일하게 반복한다.


XTM1의 정보 확인

  • MAC Address: 00:50:56:9A:63:26
  • IP: 4.4.4.1

[시스템] - [장비 상태] - [Interface Info]

 

 

XTM2에 접속하여 XTM1과 연결

[HA] → [동기화설정] → [세션동기화]

 

[HA] → [동기화설정] → [정책동기화]

 

 

(3) XTM1 <-> XTM2 Master-Slave 설정

XTM1로 이동

Checker 설정을 통해 XTM 서버끼리 서로 네트워크 상태(활성/비활성)를 확인할 수 있음

다음과 같이 Mode는 Master 

[HA] - [본점]

 

실습 진행을 위해 이전에 설정한 NAT을 모두 비활성화한 후 정책 전송

[필터링] - [IPv4 주소변환]

 

 

모든 주소와 서비스를 Deny 하는 4순위 정책을 Accept로 수정

 

다음과 같이 Checkker 설정

[HA] - [본점]

 

 

(4) 설정 확인

172.0.0.20 주소를 가진 Web Server2 자원으로 이동

/etc/network 경로의 interfaces 파일에 gateway를 172.0.0.1 -> 172.0.0.100으로 수정

 

수정 후 $sudo systemctl restart networking

Checker에서 생성한 VIP 172.0.0.100으로 ping 전송 (정상 작동)

 

외부 라우터인 13.124.137.1으로 ping 전송 (작동하지 않음)

 

(5) NAT 설정

외부로 패킷을 전송하기 위한 NAT 설정을 추가로 해야 한다. 

XTM1에 접속하여 NAT 설정을 위한 새로운 객체를 추가한다.

[설정] - [객체] - [IP 주소] - [IPv4 주소]

IPv4 주수변환에 들어가 SNAT 설정을 추가한다.

[설정] - [필터링] - [IPv4 주소변환]

 

이후 ping을 전송하면 정상적으로 작동하는 것을 확인할 수 있다.

 

 

(6) 동기화 작동 확인

XTM1과 XTM2가 정상적으로 동기화되는지 확인해 보기

 

동기화하기 전의 XTM2의 IPv4 필터링

[설정] - [필터링] - [IPv4 필터링] - [IPv4 필터링]

 

XTM1에서 동기화 즉시실행

[HA] - [동기화 설정] - [정책 동기화]

 

 

XTM2에서 동기화가 일어나 설정하지 않은 필터링 정책이 XTM1과 동일하게 설정되었고 동기화 기능이 정상적으로 작동하고 있음을 확인할 수 있다.

 

 

(7) 장애 발생 시키기

XTM1의 eh1 인터페이스를 비활성화시켜 강제로 장애를 유발하였을 때, XTM1 대신 XTM2가 Active 되어 서비스가 정상적으로 작동하는지 확인해 보기

 

먼저 XTM1에 접속하여 Mainboard를 살펴보면 STATUS에 Active 상태이다.

 

인터페이스 설정에 들어가 eth1번의 Type을 Static -> None으로 변경하면

[설정] - [네트워크] - [인터페이스 설정] - [인터페이스 설정]

 

(왼쪽) XTM1은 Active에서 -> Standby로 변경되었고 (오른쪽) XTM2는 Standby에서 -> Active로 변경된 것을 확인할 수 있다.

(잘못 설정한 값을 수정하느라 message 박스에서 두 XTM 장비의 상태 변경 시간에 차이가 있음)

 

 

XTM1에 장애가 발생해도 XTM2가 Active 됨에 따라 서비스 또한 정상적으로 작동하는 것을 확인할 수 있다.

 

'KISA > KISA - 정보보호제품군(기본)' 카테고리의 다른 글

07. SYN Flooding  (0) 2025.01.31
06. ICMP Flooding  (0) 2024.11.23
04. 로깅과 백업  (0) 2024.11.22
03. 방화벽 기능 실습  (2) 2024.11.20