First Hop Redundancy Protocol
게이트웨이 이중화 프로토콜이다.
동작 중인 게이트웨이가 Down됐을 때, 다른 장비가 게이트웨이 역할을 위임받는 것이다.
단, FHRP로 이중화하는 것보다 라우팅을 통해 이중화 구성하는 것이 더 효율적일 수 있으므로 잘 선택해서 사용해야한다.
FHRP에는 크게 3가지 프로토콜이 있다. 오늘은 HSRP에 대해 알아보자.
┌ ─ HSRP
├ ─ VRRP
└ ─ GLBP
1. HSRP
Hot Standby Router Protocol

Cisco 에서 개발한 게이트웨이 이중화 프로토콜이다.
1-1. HSRP 역할
HSRP를 사용하는 장비 중 하나가 Active 라우터, 나머지 하나는 Standby 라우터로 지정된다.
Active 라우터
게이트웨이 역할을 하는 장비. 내부 클라이언트/장비들은 가상 IP로 접근할 수 있다.
Standby 라우터
Active 라우터가 잘 동작하는 지 감시하는 장비. Active 라우터가 제대로 동작하지 않을 때, Active 라우터 역할을 이어 받는다.
1-2. HSRP 버전
HSRP 버전은 1, 2가 있다. 버전 1과 버전 2는 서로 호환할 수 없다.
인터페이스마다 각 다른 버전을 사용할 수 있다.
HSRP version 1
– 기본으로 동작하는 버전.
– 목적지 IP : 224.0.0.2 , Multicast , UDP 1985
– 기본 MAC : 0000.0c07.acNN
– HSRP 그룹번호 : 0 – 255
시스코 그룹 관리 프로토콜과 멀티캐스트 IP가 중복되어 같이 사용할 수 없다. MAC 뒤 2자리는 그룹 번호이다.
HSRP version 2
– 기본으로 동작하는 버전.
– 목적지 IP : 224.0.0.102 , Multicast , UDP 1985
– 기본 MAC : 0000.0c9f.fNNN
– HSRP 그룹번호 : 0 – 4095
version 1에서 시스코 그룹 관리 프로토콜 동시에 사용할 수 없었으나, version 2에서는 멀티캐스트 IP가 변경되어 동시에 할 수 있게 되었다.
1-3. HSRP 상태
① Initial State
아직 HSRP가 동작하지 않는 상태이다.
② Learn State
아직 가상 IP가 결정되지 않은 상태이다.
Active 라우터로부터 Hello Message를 대기한다.
③ Listen State
가상 IP가 결정된 상태이다.
Active / Standby 라우터로부터 Hello Message를 대기한다.
④ Speak State
주기적으로 Hello Message를 전송한다.
Active / Standby 라우터 선출에 참여한다.
⑤ Active State / Standby State
1-4. HSRP 인증
HSRP Spoofing(공격자의 장비가 HSRP Active 라우터가 되는 것)을 막기 위해 인증을 추가할 수 있다.
Plain-text 또는 MD5로 인증을 설정할 수 있다.
2. HSRP 패킷 구조

- Version (1 Byte) : HSRP 버전.
- Op Code (1 Byte) : 패킷 종류.
- 0 – Hello packet
- 1 – Coup packet
자신이 Active 역할을 하고자할 때. - 2 – Resign packet
Active 역할을 다른 라우터로 넘겨줄 때.
- State (1 Byte) : HSRP 상태.
- Hello Time (1 Byte) : Hello Message 주기 (초 단위)
- Hold Time (1 Byte) : Hold Time 내 Hello Message를 수신하지 못하면, 해당 장비는 Down된 것으로 간주. (초 단위)
- Priority (1 Byte) : Active / Standby 라우터를 선출할 때 사용. 높은 우선순위 장비가 Active로 선출.
- Group (1 Byte) : HSRP 그룹 번호.
- Authentication Data (8 Byte) : HSRP에서 사용되는 암호.
- Virtual IP Address (4 Byte) : HSRP 그룹의 가상 IP 주소.
3. HSRP 설정

기본설정 → HSRP 설정 → HSRP 설정 확인 → HSRP 인증 설정
[기본]
– Access 포트 설정
SW1 fa2/1
SW2 fa2/3
SW3 fa2/0, fa2/1, fa2/3
SW4 fa2/1, fa2/10, fa2/11
– IP 설정
각 장비의 인터페이스
(PC GW는 Virtual IP로 설정)
– OSPF 라우팅
SW1 fa0/0
SW2 fa0/0
R1 fa0/0, fa1/0, loopback 0
[HSRP 설정]
SW1(config)# int vlan 120 SW1(config-if)# standby 1 ip 10.10.100.254 SW1(config-if)# standby 1 track f0/0 SW1(config-if)# standby 1 priority 105 SW1(config-if)# standby 1 preempt delay minimum 180 SW2(config)# int vlan 120 SW2(config-if)# standby 1 ip 10.10.100.254 SW2(config-if)# standby 1 preempt
3: 버전을 별도로 설정하지 않으면, Version 1이므로 그룹번호는 0 -255 사이 수를 사용할 수 있다.
4: f0/0 이 Down될 경우 우선순위를 10 낮춘다.
5: 기본 Priority는 100이다. SW1을 Active 라우터로 설정하기 위해 105로 설정했다. 또한, 6번째 줄 설정에 의해 f0/0이 Down되면, 우선순위 10이 감소되어 95가 된다. 이 때, Standby 라우터는 계속 우선순위가 100이므로 Standby 라우터가 Active로 동작하게 되는 것이다. 따라서 우선순위는 101-109 사이의 값을 사용하는 것이 편리하다고 한다.
6: Active 라우터가 Standby 라우터로 변경되었을 때, 다시 Active 라우터 역할로 수행하게 한다. 기본적으로는 인터페이스가 살아났을 때 바로 Active 역할을 수행하지만, 라우팅 테이블이 완성되지 못해 특정 목적지로 라우팅이 안될 수 있다. 그래서 인터페이스가 다시 활성화되어도 180초 후 Active 라우터로 동작하게끔 설정한다.
[HSRP 확인]
– show standby brief

– show standby

[HSRP 인증 설정]
– Plain-text 인증
SW1(config)# int vlan 120 SW1(config-if)# standby 1 authentication text <WORD> SW2(config)# int vlan 120 SW2(config-if)# standby 1 authentication text <WORD>
– MD5 인증 (Key-String 사용)
SW1(config-if)# standby 1 authentication md5 key-string <WORD> SW2(config-if)# standby 1 authentication md5 key-string <WORD>
– MD5 인증 (Key-Chain 사용)
SW2(config)# key chain <NAME> SW2(config-keychain)# key [0-2147483647] SW2(config-keychain-key)# key-string <WORD> SW2(config-keychain-key)# exit SW2(config-keychain)# exit SW2(config)# SW2(config)# int vlan 120 SW2(config-if)# standby 1 authentication md5 key-chain <NAME> SW1(config)# key chain <NAME> SW1(config-keychain)# key [0-2147483647] SW1(config-keychain-key)# key-string <WORD> SW1(config-keychain-key)# exit SW1(config-keychain)# exit SW1(config)# SW1(config)# int vlan 120 SW1(config-if)# standby 1 authentication md5 key-chain <NAME>
4. MHSRP
Multiple HSRP
HSRP = Interface 1 개 — HSRP Group 1 개
MHSRP = Interface 1 개 — HSRP Group 여러 개
기존 HSRP를 사용하게 되면, Active 라우터로만 라우팅이 된다.
이러한 문제를 해결하고자 MHSRP를 사용한다.

SW1과 SW2를 HSRP 두 그룹으로 나누고,
각각 10.10.100.253 / 10.10.100.254를 할당한다.
PC의 GW도 각각 지정한다.
이렇게 MHSRP를 사용할 수 있다.
[MHSRP 설정]
SW1(config)# int vlan 120 SW1(config-if)# standby 1 ip 10.10.100.253 SW1(config-if)# standby 1 priority 105 SW1(config-if)# standby 1 preempt delay minimum 180 SW1(config-if)# standby 1 track f0/0 SW1(config-if)# SW1(config-if)# standby 2 ip 10.10.100.254 SW1(config-if)# standby 2 preempt SW2(config)# int vlan 120 SW2(config-if)# standby 1 ip 10.10.100.253 SW2(config-if)# standby 1 preempt SW2(config-if)# SW2(config-if)# standby 2 ip 10.10.100.254 SW2(config-if)# standby 2 priority 105 SW2(config-if)# standby 2 preempt delay minimum 180 SW2(config-if)# standby 2 track f0/0