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 Cluster | Cluster | 이중화를 제공하는 게이트웨이 그룹 |
| VRRP Router | Member | VRRP를 쓰는 멤버 게이트웨이 |
| Master | Active | 트래픽을 처리하는, 우선순위가 가장 높은 게이트웨이 |
| Backup | Standby | Master가 죽으면 넘겨받는 예비 게이트웨이 |
| VRID | Cluster name | 가상 라우터의 고유 식별자(MAC 마지막 바이트이기도 함) |
| VIP | Cluster Virtual IP | 가상 라우터에 배정된 IP(Portal에선 Backup Address) |
| VRRP Transition | Failover | Master 장애 시 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) ④ 내부망과 호스트*
둘째는 내부·외부 연결을 모두 이중화 하는 구성으로, 내부용·외부용 가상 라우터를 따로 두며 두 인터페이스는 서로 다른 서브넷에 있어야 합니다.

*① 외부 가상 라우터 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)*
클러스터 준비, Monitored Circuit·Advanced VRRP의 상세 구성과 문제 해결 절차는 원문의 해당 절을 참고하세요.