베지밀

[네트워크] VRRP(Virtual Router Redundancy Protocol) 본문

Network

[네트워크] VRRP(Virtual Router Redundancy Protocol)

vegimil 2024. 11. 29. 10:04

VRRP란 가상 라우터 다중화 프로토콜(가상 라우터 장애 복구 프로토콜)이다.

 

VRRP를 설명하기에 앞서 FHRP에 대해 알아보자.

 

FHRP란?

FHRP(First Hop Redundancy Protocol)이란 게이트웨이 이중화 프로토콜이다.

First Hop은 말 그대로 패킷이 처음으로 통과하는 곳, 게이트웨이이다. 게이트웨이(라우터)에 장애가 발생하면 엔드포인트 입장에서는 동적 라우팅을 할 수 없기 때문에 게이트웨이의 장애를 인지할 수 없다.

 

따라서 2대의 장비를 사용하여 하나의 게이트웨이가 Down이 되어도 다른 장비가 게이트웨이로 동작하여 네트워크가 끊기지 않도록 하는 '게이트웨이 이중화'가 필요하다. FHRP는 이러한 게이트웨이 이중화에 사용하는 프로토콜이다.

(좌) Single Point of Failure / (우) 이중화 구성

 

게이트웨이 이중화를 통해 고가용성을 보장하고, 호스트 PC는 FHRP에 의해 설정된 VIP(가상의 IP)를 기본 게이트웨이로 사용하며 네트워크 장애 시 대체 라우터가 게이트웨이 역할을 수행하게 된다. 

 

VRRP는 이러한 FHRP의 표준 프로토콜이다.

 

 

VIP, RIP, Priority

VIP란 Virtual IP이다. VRRP에서는 라우터 간 동기화를 위해 가상의 IP가 필요하다.

호스트는 이러한 VIP를 기본 게이트웨이로 사용하며, VRRP에 참여하는 라우터들은 VIP를 공유하여 네트워크를 관리한다.

 

반면 RIP는 Real IP로, VRRP에 참여하는 각 라우터의 실제 IP 주소이다.

라우터는 VIP를 관리하여 네트워크 상황을 조절하고, 실제 통신을 수행하는 것은 RIP이다.

 

Priority는 라우터의 우선순위를 결정한는 값이다. Priority 값이 높은 라우터가 Master 역할을 수행하게 된다. VRRP에서 기본 Priority 값은 100이고, 장애 발생 시 임의로 Priority 값을 낮춰 정상 동작하는 라우터가 Master가 되도록 조절한다.

 

Master와 Slave에 대해서는 아래에서 설명하도록 한다.

 

Master & Slave 형태

VRRP는 Master와 Slave로 동작한다. Master와 Slave는 하나의 VIP로 묶여있으며 각각 RIP(Real IP)를 가진다. VIP를 소유한 Master가 Active 상태로 동작하며, Slave는 Stand-by 상태이다.

 

- Master 라우터

VRRP 그룹에서 VIP를 소유하고 네트워크 트래픽을 처리하는 주요 라우터이다.

VRRP Priority 값이 큰 장비가 Master가 되며, default 값은 100이다.

 

- Slave 라우터

Master 라우터에서 장애가 발생했을 때 VIP를 넘겨받아 Fail-Over 기능을 수행하는 라우터이다.

쉽게 말해, 장애가 발생했을 때 단말들의 트래픽을 넘겨받아 Master 대신 처리할 Backup 역할을 수행한다.

 

- VRRP Advertisement Packet

Master와 Slave는 물리적으로 연결되어 장애 상태를 모니터링할 수 있도록 구성되는데, Master는 주기적으로 VRRP Advertisement Packet을 보내서 자신의 상태를 알린다. 동일한 네트워크 안에 있는 특정 그룹에게 멀티캐스트로 광고 패킷을 동시에 전송한다.

Wireshark로 패킷을 캡쳐해보면 224.0.0.18이라는 멀티캐스트 예약주소로 VRRP 프로토콜을 보내는 것을 확인할 수 있다.

 

Slave는 일정 시간동안 광고 패킷이 수신되지 않으면 우선순위 Priority 값에 따라  VIP를 넘겨받아 Master로 동작한다.

 

 

VRRP 동작 방식

1. Master 선정

  • R1, R2에 각각필요한 설정을 한다.
    • VRRP에 사용할 인터페이스를 정하고, 인터페이스 IP와 VIP, 우선순위(Priority)를 설정
  • VRRP Enable을 통해 R1과 R2는 VRRP Advertisement 패킷을 주고 받게 되고, Priority값이 높은 R1이 Master가 된다.
    • VIP는 80.1.1.3이고 Virtual MAC은 VRID(VRRP 그룹 고유 식별값)을 포함한 값이 된다.
  • 단말(Server)의 Default Gateway는 VIP로 설정한다.

 

2. GARP Request Packet 송신

  • Master는 GARP를 보내 스위치의 MAC 테이블과 서버의 ARP 테이블을 갱신한다.
    • L2 스위치의 MAC 테이블 = 라우터와 연결된 포트와 Virtual MAC 주소 갱신
    • 서버의 ARP 테이블 = VIP와 Virtual MAC 주소 갱신

 

3. Master - VRRP Advertisement Packet 송신

  • Master는 설정된 주기(Default 3초)에 따라 광고 패킷을 송신하고 자신이 살아있음을 알린다.
    • 서버는 Default Gateway(VIP)로 패킷을 보내고, 스위치는 MAC 테이블에 의해 Master로 패킷을 전달한다.
  • VRRP Advertisement Packet의 구조는 우측 사진과 같다.

 

4. Master(R1) 장애 발생 시 Fail-Over 및 Slave로 Packet Forwarding

  • R1이 광고 패킷을 보내지 않으면 R2는 문제가 생겼음을 인식하고, 자신이 Master가 되어 VIP를 이어받는다.
  • Master가된 R2는 VRRP 광고 패킷과 GARP 패킷을 보내어 스위치의 MAC 테이블을 갱신한다.
    • 서버의 ARP 테이블에는 변화가 없다.
    • VIP와 MAC주소는 가상이기 때문에 변하지 않고, L2 스위치와 연결된 포트 정보만 바뀌게 된다.

 

 

 

 

이처럼 Master와 Slave가 VRRP를 통해 네트워크에 문제가 없도록 하고, 서버는 그저 Gateway로 패킷을 보내기만 하면 되는 이중화 구성을 만들 수 있다.

 

 

 

 

사진 출처 및 참고 자료 : Netmanias 기술문서