1. VRRP
Virtual Router Redundancy Protocol
표준 게이트웨이 이중화 프로토콜이다. HSRP와 달리 여러 벤더 장비에서 사용할 수 있다.

VRRP 역할
Virtual Router Master :
게이트웨이 역할을 하는 라우터.
Master 라우터 선출은 ‘가상IP와 실제IP가 동일한 라우터’ → ‘VRRP의 우선순위가 높은 라우터’ → ‘인터페이스 IP가 높은 라우터’ 순이다.
Virtual Router Backup :
Master 라우터 장애 시 역할을 이어받는 라우터.
VRRP 특징
- 목적지 IP : 224.0.0.18 , Multicast.
- IPv4 패킷 내 ‘Protocol’ 필드 : 112번
- Master 라우터는 1초마다 VRRP 우선순위 와 상태를 광고한다.
- 실제 설정된 인터페이스 IP를 가상IP로 사용할 수 있다.
VRRP 인증
공격자가 Master 라우터로 선출되는 것을 방지하기 위해 Plain-Text, MD5 인증을 설정할 수 있다.
2. VRRP 설정

기본설정 → VRRP 설정 → VRRP 설정 확인 → VRRP 인증
[기본]
– IP 설정
각 장비의 인터페이스
(PC GW는 Virtual IP로 설정)
– OSPF 라우팅
R1 fa0/0, fa1/0
R2 fa0/1, fa1/0
SW2 fa0/0, fa0/1, loopback 0
[VRRP 설정]
R1(config)# track 1 int fa1/0 line-protocol R1(config-track)# exit R1(config)# R1(config)# int fa1/0 R1(config-if)# vrrp 1 ip 10.10.100.253 R1(config-if)# vrrp 1 priority 105 R1(config-if)# vrrp 1 preempt delay minimum 180 R1(config-if)# vrrp 1 timers advertise 1 R1(config-if)# vrrp 1 timers learn R1(config-if)# vrrp 1 track 1 R2(config)# int fa1/0 R2(config-if)# vrrp 1 ip 10.10.100.253 R2(config-if)# vrrp 1 timers advertise 1 R2(config-if)# vrrp 1 timers learn
2: 감시할 인터페이스나 경로를 지정한다. line-protocol 옵션을 사용하면 해당 인터페이스의 Layer 2 상태에 따라 Up / Down 상태로 판단한다. 경로를 지정하고자 한다면, “track 2 ip route 10.10.0.1/32 reachability” 이렇게 할 수 있다.
6: vrrp 그룹은 1-255 사이로 지정할 수 있다.
7: 기본 Priority는 100이다. R1을 Master 라우터로 선정하기 위해 Priority 105로 설정했다.
8: Master 라우터가 장애로 인해 Backup 라우터로 변경되었을 때, 장애 복구 이후 다시 Master 라우터로 동작할 수 있게 한다. 기본적으로 인터페이스가 다시 활성화(장애복구)됐을 때, 바로 Master 라우터로 돌아가는데 라우팅 테이블 미완성으로 제대로 된 통신을 하지 못하는 경우가 발생할 수 있다. 그래서 인터페이스가 다시 활성화되고나서 180초 이후 Master로 동작되도록 설정했다.
9: vrrp 광고 주기를 1초로 지정한다. 사실 기본값이 1초이므로 광고 주기를 그대로 1초로 사용할거라면, 별도로 설정하지 않아도 된다. VRRP 라우터들끼리 광고 주기가 반드시 동일해야 한다. 서로 다르다면 VRRP가 동작하지 않는다.
10: Master 라우터에 설정된 VRRP 광고 주기 값을 배우도록 한다. 지금으로써는 추후 Master상태에서 Backup으로 변경될 때, 적용된다. 앞서 이야기한 광고 주기가 달라 VRRP가 동작하지 않는 상황을 방지하는 설정이다.
[VRRP 설정확인]
– show vrrp brief

– show vrrp

[VRRP 인증]
– Plain-Text 인증
R1(config)# int fa1/0 R1(config-if)# vrrp 1 authentication text <WORD> R2(config)# int fa1/0 R2(config-if)# vrrp 1 authentication text <WORD>
– MD5 인증 (Key-String)
R1(config)# int fa1/0 R1(config-if)# vrrp 1 authentication md5 key-string <WORD> R2(config)# int fa1/0 R2(config-if)# vrrp 1 authentication md5 key-string <WORD>
– MD5 인증 (Key-Chain)
R1(config)# key chain <NAME> R1(config-keychain)# key [0-2147483647] R1(config-keychain-key)# key-string <WORD> R1(config-keychain-key)# exit R1(config-keychain)# exit R1(config)# R1(config)# int fa1/0 R1(config-if)# vrrp 1 authentication md5 key-chain <NAME> R2(config)# key chain <NAME> R2(config-keychain)# key [0-2147483647] R2(config-keychain-key)# key-string <WORD> R2(config-keychain-key)# exit R2(config-keychain)# exit R2(config)# R2(config)# int fa1/0 R2(config-if)# vrrp 1 authentication md5 key-chain <NAME>
3. VRRP 부하 분산
MHSRP처럼 VRRP도 각 그룹별로 Master 라우터를 지정하여 부하 분산을 할 수 있다.

R1과 R2를 VRRP 1, 2 그룹으로 나누고,
각각 10.10.100.253 / 10.10.100.254를 할당한다.
PC의 GW도 각각 지정한다.
이렇게 VRRP 부하 분산을 할 수 있다.
[VRRP 부하 분산 설정]
R1(config)# track 1 int fa1/0 line-protocol R1(config-track)# exit R1(config)# R1(config)# int fa1/0 R1(config-if)# vrrp 1 ip 10.10.100.253 R1(config-if)# vrrp 1 priority 105 R1(config-if)# vrrp 1 preempt delay minimum 180 R1(config-if)# vrrp 1 timers advertise 1 R1(config-if)# vrrp 1 timers learn R1(config-if)# vrrp 1 track 1 R1(config-if)# R1(config-if)# vrrp 2 ip 10.10.100.254 R1(config-if)# vrrp 2 timers advertise 1 R1(config-if)# vrrp 2 timers learn R2(config)# track 1 int fa1/0 line-protocol R2(config-track)# exit R2(config)# R2(config)# int fa1/0 R2(config-if)# vrrp 1 ip 10.10.100.253 R2(config-if)# vrrp 1 timers advertise 1 R2(config-if)# vrrp 1 timers learn R2(config-if)# R2(config-if)# vrrp 2 ip 10.10.100.254 R2(config-if)# vrrp 2 priority 105 R2(config-if)# vrrp 2 preempt delay minimum 180 R2(config-if)# vrrp 2 timers advertise 1 R2(config-if)# vrrp 2 timers learn R2(config-if)# vrrp 2 track 1