본문 바로가기

Network

Failover (Active-Standby)

반응형

ASA F/W를 이용한 failover 구성하기

 

 

 

오늘은 failover에 대해서 배워보도록 할꺼야

network 환경에서 firewall을 이용하여 이중화 구조를 만들 수 있는데 이 때 사용하는 기술이라고 볼 수 있어

대충 말해서는 이해가 잘 안가지? 좀 더 자세하게 설명하자면...!

 

한 장비가 문제가 생겼을 경우 다른 장비를 통해 service를 장애없이 운영할 수 있도록 구성하는 기술이야

만약 목적지로 가는 경로가 하나일 경우에 해당 경로가 문제가 생겨서 

정상적인 통신이 불가능할 경우에 다른 경로를 통해서 통신이 지속될 수 있도록 해야하잖아?

이렇듯이, 사용자들이 어떤 service를 사용할 때 network 장비에 문제가 발생하더라도

사용자들이 불편함 없이 service를 지속적으로 사용할 수 있도록 해주는 기술이라고 볼 수 있지

이를 기준으로 활성화 되어 있는 장비를 active 장비 그렇지 않은 장비를 standby 장비라고 해

 

 

기본적인 failover 구성을 하기 위해서는

1. 두 장비가 동일한 장비

2. Failover link를 통한 연결

 

위 두 가지 선행 조건이 충족되어야만 failover 구성이 가능해

 

 

우리가 다뤄볼 firewall인 ASA는 다음과 같이 4가지 구성요소가 같아야 failover가 가능해!

1. 장비의 HW 사용 

2. 운영체제 version

3. L2/L3 방화벽 mode

4. Context mode (single/multiple)

 

 

자 이제 failover architecture가 어떻게 생겼는지 한 번 이미지로 살펴볼까?

 

 

 

 

두 개의 방화벽이 router와 switch 사이에 있고 그 사이에서 inside와 outside를 구분해주고 있어

inside 는 내부 network, outside는 외부 network로 볼 수 있지

 

그리고 failover에서 중요한 link 두 개가 보이는데 failover link 와 stateful failover link

각 link의 역할과 해당 link에서 어떤 traffic이 지나가는지 알아볼께

 

 

 

 

 

1. Failover link

active와 standby 간에 지속적으로 운영 상태에 대한 failover link를 결정하기 위해

동기화 작업을 실시하는 link야  

일반적인 networking interface로 사용할 수 없고 failover 용도로만 사용가능해

해당 link 에서는 다음과 같은 data들을 주고 받으며 status를 유지하게 돼

 

- Unit state (active or standby)

- Hello messages (keep-alive)

- Network link status

- MAC address exchange

- Config replication & sync

 

위의 data 들을 보니 감이 오지? Failover 를 유지하기 위해 주고 받는 가장 기본적인 data들을

Failover link에서 송수신하고 있다고 볼 수 있어

 

 

 

 

 

2. State failover link

active가 standby로 state 정보를 넘겨줄 때 사용하는 link야

standby가 failover 발생시에도 연결을 유지할 수 있도록 해주는 link라고 볼 수 있어

해당 link에서는 어떤 data들이 오고가는지 확인해보자

 

- NAT translation table

- TCP/UDP conn states

- ARP table

- http conn states

- ISAKMP & IPSec SA table

 

failover로 standby가 active가 갖고 있는 기본적인 network 정보들을 받을 수 있도록 하는 link야

 

 

 

 

 

 

3. failover architecture (active-standby active-active)

- Active - standby

active가 문제 발생시 standby 가 active의 역할을 넘겨받아 운영하는 구조

Standby에서 active로 바뀐 unit은 장애가 발생한 active unit의 IP와 MAC을 재사용하여 traffic 처리하고

반대로 장애가 발생한 active unit은 standby unit의 IP와 MAC 주소를 저장해

이러한 이유로 network 장비들은 arp table의 변화가 없기에 disconnection issue 없이 통신할 수 있어

 

 

Unit 의 active / standby 결정조건 3가지

- 장비의 부팅 완료 후 이미 active 로 동작하는 장비가 있을 경우 standby unit으로 동작

- 장비의 부팅이 완료되었지만 peer가 확인되지 않았다면 active 로 동작

- 두 장비가 동시에 켜졌다면 primary = active, secondary= standby 가 된다.

 

Failover가 발생하면 primary/standby, secondary/active 가 되고

이 경우 failover active 명령어로 active와 standby를 바꿔줄 수 있어

 

 

 

여기서 잠깐만..!

primary,secondary는 뭐지??

물리적인 장치 즉, physical unit을 구분하는 명령어인데,

이 장치 안에서 traffic을 실제 처리하는 Active logical unit

traffic 처리는 안하지만 장애처리를 위한 standby logical unit으로 나눠!

간단하게 물리적으로 구분 = primary/secondary

논리적으로 구분함과 동시에 내부적으로 traffic flow를 처리 = active/standby 라고 기억하면 돼

무엇보다 ASA 방화벽에는 다음과 같은 rule을 통해서 active-standby가 이뤄지게 돼

 

 

1. active unit은 항상 primary unit의 IP와 MAC을 사용한다.

2. active unit이 fail 상태가 되면, standby unit은 active의 IP,MAC을 받는다.

(여기서 active의 IP,MAC은 1번의 primary의 IP,MAC과 같다.)

3. fail 상태가 된 active unit이 rebooting되면, standby 상태에서 초기 standby의 IP,MAC을 할당받는다.

 

여기서 한가지 예외가 존재하는데 

만약 secondary unit이 primary unit과 peer를 맺지 못하고 booting이 되었다면,

secondary unit은 자체적으로 자신을 active unit으로 설정하고,

secondary unit의 자체 MAC주소를 사용하게 돼. primary unit을 찾지 못했기 때문에 발생한 현상인데

이 상황에서 primary unit이 재부팅이 되어서 서로간에 pair를 맺게 되었을 경우,

현재 active unit이 된 secondary unit은 primary unit의 MAC 주소를 쓰게 돼

이런 현상은 마치 primary unit의 hardware 교체로 인해 MAC 주소가 바뀐 현상과 동일하다고 볼 수 있어

따라서 이러한 문제를 해결하고자 나온 것이 VMAC(virtual MAC)이야!

 

VMAC은 말그대로 hardware에 존재하지 않은 MAC 주소를 가상으로 만들어내서 사용하는 건데

초기에 VMAC을 설정하면 unit의 문제로 인해 장비가 shtudown이 되더라도 MAC주소의 변함이 없어진다.

ASA의 특징은 MAC주소가 변경되어도 GARP를 사용하지 않아 연결된 routing 장비들은

MAC 주소 변화에 대한 흐름을 감지하지 못하게 돼 

이럴 경우, 주변의 routing 장비들은 arp table을 갱신하지 못하고 기존의 table 정보에 따라 

network traffic을 전송할텐데, 이는 나중에 traffic 흐름에 장애를 발생시켜, network의 혼잡도를 높이게 돼

이러한 문제점을 방지하기 위하여 ASA에서는 VMAC을 지정해주는 것이 가장 권유하고 싶은 방식이야

 

 

 

 

 

 

 

- Active - Active

 multiple context mode에서만 사용 가능한 architecture

ASA 방화벽에서 show mode를 입력하면 single mode or multiple mode 가 나올텐데

이에 대한 설명은 뒤에서 더 하도록 할께 (지금 설명하면 복잡해 ㅜㅜ...)

물리적인 ASA 방화벽 안에서 논리적으로 더 나눌 수 있도록 해주는 mode라고 보면 돼

 

아무튼, Active - Active 구성은 security contexts를 사용하기 때문에 

결과적으로 dynamic routing과 vpn 사용을 할 수 없어...!

(routing을 하려면 static route 처리를 하거나 PBR을 적용해줘야해)

Failover로 구성된 장비들은 모두 traffic을 처리하게 되고

Security contexts는 내부에서 또 failover group으로 분리시켜

즉, 이 group은 security contexts의 논리적인 그룹이야 

 

 

 

 

 

 

 

failover 명령어 정리 

 

- Primary / secondary unit 으로 지정하기

(failover lan unit primary/secondary)

 

- failover에 사용할 port 정의하기

(failvoer lan interface NAME g0/1)

 

- failover link에 active/standby IP 설정하기

(Failover int ip NAME 192.168.100.1 255.255.255.252 standby 192.168.1.2)

 

- stateful failover를 위한 int 설정하기

(Failover link STATE g0/2)  —> primary에서만 설정가능 connection 정보 동기화

 

- stateful failover link에 active/standby IP 설정하기

(Failover int ip STATE 192.168.100.5 255.255.255.252 standby 192.168.100.6)

 

- failover 활성화 

( failover )

 

- failover key 설정

( failover key cisco )

Key 설정이 없을 경우 failover와 stateful failover의 전달되는 모든 data 는 plain-txt 형태로 전달되고

심지어 username과 password 또한 같이 전달되므로 failover key를 설정하도록 하자 (기밀성)

 

 

아래 그림을 보면서 정리해봐!

 

 

 

failover를 활성화하고 ASA 방화벽에서 show failover 명령어를 치면 다음과 같이 정보들이 나오는 걸 볼 수 있어

primary firewall

 

 

secondary firewall

 

 

이번엔 active-standby architecture가 장애 발생시에도 정상적으로 동작하는지 알아보자

ping test를 통한 architecture 확인을 시도해보도록 할게

밑에 그림을 보면 L3_SW의 g1/0/40 port가 장애발생시에 active가 standby로 넘어가는지 확인해보고 있어

 

 

 

 

 

 

그러면 위의 그림처럼 standby가 active 역할을 해야되는게 정상이겠지?

과연 그렇게 되는지 show failover 명령으로 확인해보도록 하자

 

 

 

primary asa 방화벽에서 show failover 결과

 

secondary asa 방화벽에서 show failover 결과

 

어때? 정상적으로 failover가 동작한 걸 볼 수 있지?

오늘은 여기까지~

 

반응형

'Network' 카테고리의 다른 글

Failover (Active-Active)  (0) 2022.11.09
Failover link, stateful link  (0) 2022.11.08
3-tier architecture  (2) 2022.11.07
OSPF  (0) 2022.11.07
Layer 3 skills (HSRP)  (0) 2022.11.07