본문 바로가기

OPS

[네트워크] VRRP란? (게이트웨이 이중화 구성 - FHRP)

네트워크 이중화 작업을 할 때 VRRP 프로토콜을 사용해서 한다는 말을 많이 들어봤을 것이다.

이중화 구성을 하는 이유는 크게 두가지로 다음과 같다.

  • Load balancing : 똑같은 기능을 수행하는 장비를 여러 개 구성하여 네트워크 부하를 분산
  • Failover : 하나의 장비가 죽었을 때 다른 장비로 전환되어 서비스 단절 최소화

VRRP는 주로 Failover를 목적으로 Master / Slave 장비 간의 전환을 위해 사용된다.

그럼 VRRP는 어떤 프로토콜이고 어떻게 동작하는지 알아보자!

 

 

VRRP(Virtual Router Redundancy Protocol)

 : 가상 라우터 다중화 프로토콜, 가상 라우터 장애 복구 프로토콜

 

사전적 의미로는 라우터 다중화 프로토콜이라고 되어있지만,

게이트웨이 이중화 프로토콜(FHRP : First Hop Redundancy Protocol) 중 하나로 게이트웨이 장애 복구를 위한 프로토콜이다.

게이트웨이 이중화 프로토콜에는 VRRP, HSRP, GLBP와 같은 프로토콜이 있으며, VRRP와 HSRP는 동작방식이 거의 유사하다.

 

우선 게이트웨이 이중화 프로토콜이 왜 필요한지 알아보자!

 

게이트웨이란? 다른 네트워크 사이의 통신을 가능하게 해주는 것이다.

PC나 서버와 같이 말단에 위치한 단말기(End Device)들은 라우팅 기능이 없는 장비들로 기본 게이트웨이(Default Gateway)를 통해 외부 네트워크와 통신한다.

 

게이트웨이 이중화가 필요한 이유?

PC와 서버와 같은 말단 단말기는 라우팅 기능이 없어 동적 라우팅 프로토콜을 설정할 수 없다. 따라서 기본 게이트웨이장애 시 이를 인지할 수 없으며 외부 네트워크와 통신할 수 없게 된다. (단일 장애 지점이 됨)

그러나 2대의 장비를 운영하여 하나의 게이트웨이 장비가 Down 될 시, 다른 장비가 게이트웨이로 동작할 수 있도록 한다면 네트워크 단절없이 통신을 지속할 수 있을 것이다.

이를 게이트웨이 이중화라고 하며, 2대의 게이트웨이 역할을 하는 장비 간 이중화에 사용되는 프로토콜이 FHRP이다.

(스위치, 방화벽, NAC에서도 사용가능)

 

 

그럼 다시 VRRP는 어떻게 동작하는지 알아보자!

 

이중화에 사용되는 게이트웨이 역할을 하는 두개의 장비는 Master / Slave 장비로 동작한다.

Master와 Slave 장비는 하나의 VIP(Virtual IP)로 묶여있으며, 각각 RIP(Real IP)를 가지고 있다.

 

두 장비의 VIP를 누가 소유하고 있느냐에 따라 Master(O) / Slave(X) 장비를 구분할 수 있으며,

Master 장비의 선출 기준은 다음과 같다.

  • VIP와 RIP가 같은 장비
  • VRRP Priority (우선순위) 값이 큰 장비 (기본값 : 100)
  • RIP의 주소가 큰 장비

VIP를 누가 가지고 있는지가 중요한 이유는 사용자 PC나 서버의 게이트웨이가 VIP로 설정되어 VIP를 소유하고 있는 Master 장비로만 패킷이 전송되기 때문이다. (Master : Active / Slave : Stand-By 상태)

만약 Master 장비가 장애가 발생하여 서비스가 중단된다면 Slave 장비가 VIP를 가져와 Master 역할을 수행할 수 있어야한다. 

이를 위해 VRRP를 사용하게 되는 것!

 

 

Master가 살아있는지 어떻게 알까?

 

Master 장비가 살아있는지 죽었는지 VRRP에서 확인하는 방법은 헬스 체크와 같이 반복적으로 패킷을 보내는 것이다. 

 

1) Master 장비는 VRRP Advertisement Packet을 가상 그룹에 반복적으로 전송

 

 VRRP는 Single Virtual Router 방식으로 물리 인터페이스에 설정하게 되어 가상 그룹을 하나만 만들 수 있다. (VLAN 설정 시 여러개의 그룹 생성 가능)

 

2) 가상 그룹에 속한 Slave 장비는 해당 패킷을 받는 중에는 Master 장비가 살아있다고 판단 (Stand-By 상태를 유지)

 

3) 패킷이 수신되지 않으면 일정 시간(Master Down Timer=Dead Timer) 후에 Master가 죽었다고 판단

 

4) Slave 에서는 자신이 Master가 되기 위해 VRRP advertisement Packet과 GARP(Gratuitous ARP) Packet을 전송

 

※ GARP는 자신의 IP에게 ARP 요청를 보내는 것으로 동일 서브넷 상에 존재하는 호스트/라우터의 ARP table을 갱신할 수 있다. GARP를 수신한 노드들은 GARP를 송신한 IP와 MAC 주소를 테이블에 저장하게 된다.

여기서는 Slave와 연결된 스위치나 라우터로 GARP 패킷을 통해 ARP table을 갱신하여 Slave 장비가 VIP를 소유하게 되었음을 알릴 수 있다.

 

tcpdump를 통해 Master 장비에서 VRRP 패킷을 확인하면 224.0.0.18 를 목적지로 나가는 것을 확인할 수 있다.

224.0.0.18 은 멀티캐스트 주소로 VRRP를 위해 예약된 주소이다.

멀티캐스트란 한번의 송신으로 같은 데이터를 특정 그룹의 여러 목적지에 동시에 전송하는 것을 말한다.

[출처] 위키백과

VRRP Advertisement Packet을 멀티캐스트로 가상 그룹에 전송하여 그룹에 속한 모든 장비가 Master가 살아있음을 확인할 수 있는 것이다.