This document outlines a collection of **First Hop Redundancy Protocols (FHRPs)** designed to provide seamless default gateway failover for end hosts. These protocols operate by sharing a **virtual IP and MAC address** between routers on the same subnet. With the aid of **gratuitous ARP**, failover occurs quickly and transparently to clients.
---
## FHRP Comparison Table
| Feature | HSRP | VRRP |
| ------------------- | ---------------------------- | ---------------------------- |
| Standard | Cisco proprietary / RFC 2281 | Industry standard / RFC 3768 |
| Terminology | Active / Standby | Master / Backup |
| Priority Range | 0–255 (default: 100) | 0–255 (default: 100) |
| Preemption | Optional | Enabled by default |
| Timers (hello/hold) | 3s / 10s (default) | 1s / 3s (default) |
| Multicast Group | 224.0.0.2 | 224.0.0.18 |
| Transport | UDP port 1985 | IP Protocol 112 |
| Authentication | Clear Text / MD5 | Clear Text / MD5 |
| Virtual MAC | `0000.0c07.acXX` | `0000.5E00.01XX` |
---
## HSRP (Hot Standby Router Protocol)
- **Cisco proprietary**, also documented in RFC 2281.
- Uses **active/standby** roles.
- The router with the highest priority becomes **active**. In the event of a tie, the router with the highest IP address wins.
- **Preemption** must be manually enabled.
- Operates using **UDP multicast** to `224.0.0.2`, port `1985`.
- Virtual MAC format: `0000.0c07.acXX` (where `XX` = group ID in hex).
- Supports **Clear Text** and **MD5** authentication.
### Basic HSRP Configuration
```
interface Ethernet1/1
ip address 192.168.1.10 255.255.255.0
standby 0 ip 192.168.1.1
standby 0 priority 110
standby 0 preempt
standby 0 timers 5 15
```
> `standby 0 timers 5 15`: 5s hello, 15s hold time.
### HSRP Additional Configs
**Delays and BFD**
```
interface Ethernet1/1
standby 0 preempt delay minimum 10
standby delay minimum 30 reload 60
bfd interval 250 min_rx 250 multiplier 4
```
> `standby delay minimum 30 reload 60` configures the delay period before the initialization of HSRP groups, where `minimum` is after a link comes up, and `reload` is after a device reboot.
> `standby 1 preempt delay minimum 380` determines the amount of seconds a group will wait before initiating preemption. Default is immediately.
**Basic Tracking**
[[IP Service Level Agreement (SLA) & Enhanced Object Tracking (EOT)]]
```
track 100 interface GigabitEthernet 0/0/0 { line-protocol | ip routing }
interface Ethernet1/1
standby 0 track 100 [ decrement 20 | shutdown ]
```
### HSRP Authentication
**MD5 key-chain:**
```
key chain HSRP1
key 1
key-string cisco1234
interface Ethernet1/1
standby 0 authentication md5 key-chain HSRP1
```
**MD5 key-chain:**
```
interface Ethernet1/1
standby 0 authentication md5 key-string HSRP1
```
**Plain-text authentication:**
```
interface Ethernet1/1
standby 0 authentication text cisco1234
```
### HSRP with Object Tracking
[[IP Service Level Agreement (SLA) & Enhanced Object Tracking (EOT)]]
```
ip sla 1
icmp-echo 10.0.0.1
ip sla schedule 1 start-time now life forever
track 1 ip sla 1
interface Ethernet1/1
standby 0 track 1 decrement 255
```
---
### HSRPv2 Enhancements
- Supports **more groups per interface**.
- Uses dedicated multicast address: `224.0.0.102`.
- Supports **IPv6**.
```
interface Ethernet1/1
standby version 2
```
---
## VRRP (Virtual Router Redundancy Protocol)
- Defined in **RFC 3768**, vendor-neutral standard.
- Uses **master/backup** roles.
- Priority-based master election:
- Higher priority wins; tie-breaker = highest IP address.
- **Preemptive** behavior is **enabled by default**.
- Uses **IP protocol 112** over multicast `224.0.0.18`.
- Virtual MAC: `0000.5E00.01XX` (where `XX` = group ID in hex).
- Supports **Clear Text** and **MD5** authentication.
> Most configurations copy over from HSR, but with `vrrp` instead of `standby`.
### Priority Behavior
- Valid priority range: **1–254**
- Default: **100**
**255 is reserved** for a special case:
If a router is configured with the **interface IP address as the virtual IP (VIP)**, it **must always be the master**. In this case, VRRP **automatically sets the priority to 255**, and no other router is allowed to override it, not even with a higher manual priority.
This makes sense, because that router is **literally** the owner of the IP and can't have another box claim it.
| Priority Value | Meaning |
| -------------- | ------------------------------------------------------- |
| 1–254 | Normal configured range (higher wins) |
| 255 | **Reserved** — used when a router owns the VIP directly |
| 0 | Resign — causes the router to stop being master |
### Basic VRRP Configuration
```
interface Ethernet1/1
ip address 192.168.1.10 255.255.255.0
vrrp 1 ip 192.168.1.1
vrrp 1 priority 110
vrrp 1 preempt
```
### VRRP-Specific Timer Configuration
```
interface Ethernet1/1
vrrp 1 timers advertise 3
vrrp 1 timers learn
```
---
### VRRPv3 Enhancements
- Adds **IPv6 support** and protocol extensibility.
- Enable globally with:
```bash
fhrp version vrrp v3
```