목차/10. 고가용성 — VRRP

10고가용성 — VRRP고가용성 — VRRP

VRRP(Virtual Router Redundancy Protocol)는 두 Gaia 게이트웨이가 서로를 백업해, 한쪽이 죽으면 IP를 다른 쪽으로 자동으로 넘기는 고가용성 솔루션입니다. 이 장은 VRRP의 용어와 동작 원리, 페일오버 방식, 그리고 대표적인 사용 사례를 정리합니다. Scalable Platform은 Gaia OS의 VRRP를 지원하지 않 으니 주의하세요.

VRRP란 — 라우터 이중화 표준

VRRP는 장애 시 IP 주소를 한 라우터에서 다른 라우터로 동적으로 넘겨, 라우팅 경로의 가용성과 신뢰성을 높이는 표준 프로토콜(RFC 3768)입니다. 각 VRRP 라우터는 고유 식별자인 VRID(Virtual Router Identifier)를 가지며, 여기에 하나 이상의 VIP(Virtual IP Address)가 묶 입니다. 이웃 노드는 이 VIP를 next hop이나 최종 목적지로 삼아 접속합니다.

Gaia는 두 가지 구성 방식을 제공합니다. Monitored Circuit/Simplified VRRP 는 모든 VRRP 인터페이스가 서로를 자동으로 감시 하는 간편 방식이고, Advanced VRRP 는 각 인터페이스마다 다른 VRID를 두고, 감시 대상을 일일이 명시 하는 방식입니다. 한 멤버에 두 방식을 섞어 쓸 수는 없고, Standalone 배포(게이트웨이와 관리 서버가 한 장비)는 VRRP 클러스터에 넣을 수 없 습니다.

ClusterXL 용어와의 대응

VRRP는 ClusterXL과 같은 고가용성을 다른 용어로 부릅니다. 짝을 지어 두면 이해가 빠릅니다.

VRRP 용어ClusterXL 용어
VRRP ClusterCluster이중화를 제공하는 게이트웨이 그룹
VRRP RouterMemberVRRP를 쓰는 멤버 게이트웨이
MasterActive트래픽을 처리하는, 우선순위가 가장 높은 게이트웨이
BackupStandbyMaster가 죽으면 넘겨받는 예비 게이트웨이
VRIDCluster name가상 라우터의 고유 식별자(MAC 마지막 바이트이기도 함)
VIPCluster Virtual IP가상 라우터에 배정된 IP(Portal에선 Backup Address)
VRRP TransitionFailoverMaster 장애 시 Backup으로 자동 전환

Gaia에서 VRRP는 ClusterXL을 켜고도, 끄고도 쓸 수 있습니다. ClusterXL을 켜면 Active/Backup 환경만 배포 할 수 있고 인터페이스마다 하나의 VRID·VIP를 둡니다(가장 흔한 경우). ClusterXL을 끄면 Active/Active 환경이 가능 해, 한 인터페이스에 두 VRID를 둘 수 있지만 static route만 지원되고 방화벽 감시를 꺼야 합니다.

인터페이스 감시와 비대칭 경로

모든 VRRP 인터페이스를 모든 VRID가 감시하게 하는 것이 중요 합니다. 그러지 않으면 비대칭 경로 문제가 생기기 때문입니다 — 예컨대 외부 인터페이스만 페일오버하고 내부는 그대로면, 내부 가상 라우터가 트래픽을 받았는데 새 외부 Master에 닿지 못하는 상황이 벌어집니다. 그래서 한 인터페이스가 죽으면 같은 노드의 다른 VRID들도 함께 Backup으로 넘어가도록 priority delta를 설정 합니다.

또 다른 도구가 interface delay 입니다. Preempt 모드를 껐을 때 쓰며, 우선순위 높은 노드가 재부팅된 뒤 곧장 Master를 빼앗지 않고, Hello 패킷을 받을 시간을 벌어 줍니다.

페일오버는 어떻게 일어나나

각 가상 라우터는 한 Master와 하나 이상의 Backup 으로 이뤄지고, Master는 주기적으로 VRRP advertisement(VRRP Hello 메시지)를 보내 자기 동작 상태를 Backup에 알 립니다. Master는 처음엔 우선순위 값이 가장 높은 게이트웨이 가 됩니다(같으면 먼저 advertisement를 뿌린 쪽).

Master나 그 인터페이스가 죽으면 우선순위 알고리즘이 페일오버를 판단합니다. 장애 시 가상 라우터의 우선순위에서 미리 정한 Priority Delta 만큼 빼 Effective Priority 를 계산 하고, Effective Priority가 가장 높은 가상 라우터가 새 Master 가 됩니다(같으면 IP가 높은 쪽). 시스템을 올바로 구성하면 이 effective priority가 다른 가상 라우터에 있는 Backup의 우선순위보다 낮아져, 문제 있는 Master가 다른 가상 라우터에 대해서도 함께 페일오버 하게 됩니다.

대표적인 사용 사례

세 가지 전형을 그림으로 봅니다. 첫째는 내부망만 이중화 하는 가장 단순한 구성입니다.

① VRRP Master 게이트웨이 ② VRRP Backup 게이트웨이 ③ 가상 라우터 VRID 5(VIP 192.168.2.5) ④ 내부망과 호스트 — 내부망 고가용성
① VRRP Master 게이트웨이 ② VRRP Backup 게이트웨이 ③ 가상 라우터 VRID 5(VIP 192.168.2.5) ④ 내부망과 호스트 — 내부망 고가용성

*① VRRP Master 게이트웨이 ② VRRP Backup 게이트웨이 ③ 가상 라우터 VRID 5(VIP 192.168.2.5) ④ 내부망과 호스트*

둘째는 내부·외부 연결을 모두 이중화 하는 구성으로, 내부용·외부용 가상 라우터를 따로 두며 두 인터페이스는 서로 다른 서브넷에 있어야 합니다.

① 외부 가상 라우터 VRID 5(외부 VIP 192.168.2.5) ② VRRP Master 게이트웨이 ③ VRRP Backup 게이트웨이 ④ 내부 가상 라우터 VRID 5(내부 VIP 192.168.3.5) ⑤ 내부망과 호스트 — 내부·외부 고가용성
① 외부 가상 라우터 VRID 5(외부 VIP 192.168.2.5) ② VRRP Master 게이트웨이 ③ VRRP Backup 게이트웨이 ④ 내부 가상 라우터 VRID 5(내부 VIP 192.168.3.5) ⑤ 내부망과 호스트 — 내부·외부 고가용성

*① 외부 가상 라우터 VRID 5(외부 VIP 192.168.2.5) ② VRRP Master 게이트웨이 ③ VRRP Backup 게이트웨이 ④ 내부 가상 라우터 VRID 5(내부 VIP 192.168.3.5) ⑤ 내부망과 호스트*

셋째는 내부망 Load Sharing(Active/Active) 구성입니다. ClusterXL을 끄고 static route만 쓰며 방화벽 감시를 꺼야 하고, 게이트웨이 1은 VRID 5의 Master·VRID 7의 Backup, 게이트웨이 2는 그 반대 로 두어 서로를 백업하면서 부하도 나눕니다.

① VRID 5의 Master·VRID 7의 Backup 게이트웨이 ② VRID 5의 Backup·VRID 7의 Master 게이트웨이 ③ 가상 라우터 VRID 5(VIP 192.168.2.5) — 내부망 Load Sharing
① VRID 5의 Master·VRID 7의 Backup 게이트웨이 ② VRID 5의 Backup·VRID 7의 Master 게이트웨이 ③ 가상 라우터 VRID 5(VIP 192.168.2.5) — 내부망 Load Sharing

*① VRID 5의 Master·VRID 7의 Backup 게이트웨이 ② VRID 5의 Backup·VRID 7의 Master 게이트웨이 ③ 가상 라우터 VRID 5(VIP 192.168.2.5)*

클러스터 준비, Monitored Circuit·Advanced VRRP의 상세 구성과 문제 해결 절차는 원문의 해당 절을 참고하세요.