Skip to content

Router VRRP

VRRP is an IETF-standard (RFC 5798) first-hop redundancy protocol that enables a group of routers to form a single virtual router, eliminating the single point of failure inherent in static default gateway configurations. A master router forwards traffic for the virtual IP address while backup routers monitor its health and take over through an election process if the master fails. IOS-XR supports VRRP on Ethernet interfaces, sub-interfaces, and link bundles, with IPv4 (version 2 and 3) and IPv6 address families.

Diagram
NameTypeConstraintMandatoryDefault Value
router_vrrpClass[router_vrrp]No

NameTypeConstraintMandatoryDefault Value
interfacesList[interfaces]No

interfaces (iosxr.devices.configuration.router_vrrp)

Section titled “interfaces (iosxr.devices.configuration.router_vrrp)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^(FastEthernet|GigabitEthernet|TenGigE|TwentyFiveGigE|FortyGigE|FiftyGigE| HundredGigE|TwoHundredGigE|FourHundredGigE|EightHundredGigE|BVI|Bundle-Ether| Bundle-POS|CEM|GCC[0-2]|Loopback|MgmtEth|Multilink|Null|POS|PW-Ether|SRP|lpts| nve|preconfigure|tunnel-ip|tunnel-ipsec|tunnel-mte|tunnel-te|tunnel-tp)\s?\d+(/[A-Z0-9]+)*(\.\d+)?$Yes
mac_refreshIntegermin: 0, max: 10000No
delay_minimumIntegermin: 0, max: 10000No
delay_reloadIntegermin: 0, max: 10000No
bfd_minimum_intervalIntegermin: 3, max: 30000No
bfd_multiplierIntegermin: 2, max: 50No
ipv4List[ipv4]No
ipv6List[ipv6]No

ipv4 (iosxr.devices.configuration.router_vrrp.interfaces)

Section titled “ipv4 (iosxr.devices.configuration.router_vrrp.interfaces)”
NameTypeConstraintMandatoryDefault Value
groupIntegermin: 1, max: 255Yes
versionIntegermin: 2, max: 3Yes
addressStringNo
priorityIntegermin: 1, max: 254No
nameStringNo
text_authenticationStringNo
secondary_addressesList[secondary_addresses]No
timer_advertisement_secondsIntegermin: 1, max: 255No
timer_advertisement_millisecondsIntegermin: 100, max: 40950No
timer_forceBooleantrue, falseNo
preempt_disableBooleantrue, falseNo
preempt_delayIntegermin: 1, max: 3600No
accept_mode_disableBooleantrue, falseNo
track_interfacesList[track_interfaces]No
track_objectsList[track_objects]No
bfd_fast_detect_peer_ipv4StringNo
unicast_peerStringNo

ipv6 (iosxr.devices.configuration.router_vrrp.interfaces)

Section titled “ipv6 (iosxr.devices.configuration.router_vrrp.interfaces)”
NameTypeConstraintMandatoryDefault Value
groupIntegermin: 1, max: 255Yes
accept_mode_disableBooleantrue, falseNo
linklocal_addressStringNo
linklocal_address_autoconfigBooleantrue, falseNo
bfd_fast_detect_peer_ipv6StringNo
global_addressesList[global_addresses]No
nameStringNo
preempt_delayIntegermin: 1, max: 3600No
preempt_disableBooleantrue, falseNo
priorityIntegermin: 1, max: 254No
timer_advertisement_millisecondsIntegermin: 100, max: 40950No
timer_advertisement_secondsIntegermin: 1, max: 255No
timer_forceBooleantrue, falseNo
unicast_peerStringNo
track_interfacesList[track_interfaces]No
track_objectsList[track_objects]No

secondary_addresses (iosxr.devices.configuration.router_vrrp.interfaces.ipv4)

Section titled “secondary_addresses (iosxr.devices.configuration.router_vrrp.interfaces.ipv4)”
NameTypeConstraintMandatoryDefault Value
addressStringYes

track_interfaces (iosxr.devices.configuration.router_vrrp.interfaces.ipv4)

Section titled “track_interfaces (iosxr.devices.configuration.router_vrrp.interfaces.ipv4)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
priority_decrementIntegermin: 1, max: 254No

track_objects (iosxr.devices.configuration.router_vrrp.interfaces.ipv4)

Section titled “track_objects (iosxr.devices.configuration.router_vrrp.interfaces.ipv4)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
priority_decrementIntegermin: 1, max: 254Yes

global_addresses (iosxr.devices.configuration.router_vrrp.interfaces.ipv6)

Section titled “global_addresses (iosxr.devices.configuration.router_vrrp.interfaces.ipv6)”
NameTypeConstraintMandatoryDefault Value
addressStringYes

track_interfaces (iosxr.devices.configuration.router_vrrp.interfaces.ipv6)

Section titled “track_interfaces (iosxr.devices.configuration.router_vrrp.interfaces.ipv6)”
NameTypeConstraintMandatoryDefault Value
nameStringRegex: ^(FastEthernet|GigabitEthernet|TenGigE|TwentyFiveGigE|FortyGigE|FiftyGigE| HundredGigE|TwoHundredGigE|FourHundredGigE|EightHundredGigE|BVI|Bundle-Ether| Bundle-POS|CEM|GCC[0-2]|Loopback|MgmtEth|Multilink|Null|POS|PW-Ether|SRP|lpts| nve|preconfigure|tunnel-ip|tunnel-ipsec|tunnel-mte|tunnel-te|tunnel-tp)\s?\d+(/[A-Z0-9]+)*(\.\d+)?$Yes
priority_decrementIntegermin: 1, max: 254No

track_objects (iosxr.devices.configuration.router_vrrp.interfaces.ipv6)

Section titled “track_objects (iosxr.devices.configuration.router_vrrp.interfaces.ipv6)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
priority_decrementIntegermin: 1, max: 254Yes

Example-1: Active/backup gateway pair VLAN with BFD, uplink tracking, and unicast peering

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
router_vrrp:
interfaces:
- name: Bundle-Ether1.100
delay_minimum: 200
delay_reload: 600
bfd_minimum_interval: 100
bfd_multiplier: 3
ipv4:
- group: 100
version: 3
address: 172.16.100.1
priority: 120
name: DC_VLAN100
preempt_delay: 60
timer_advertisement_seconds: 3
timer_force: true
accept_mode_disable: true
unicast_peer: 172.16.100.3
bfd_fast_detect_peer_ipv4: 172.16.100.3
secondary_addresses:
- address: 172.16.100.2
track_interfaces:
- name: TenGigE0/0/0/0
priority_decrement: 30
track_objects:
- name: UPSTREAM_SPINE
priority_decrement: 50

Example-2: Dual-stack with IPv4 and IPv6 VRRP on the same interface

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
router_vrrp:
interfaces:
- name: TenGigE0/0/0/1.200
mac_refresh: 3600
delay_minimum: 100
delay_reload: 300
bfd_minimum_interval: 200
bfd_multiplier: 3
ipv4:
- group: 200
version: 2
address: 10.200.0.1
priority: 150
name: CORE_V200
text_authentication: campus200
timer_advertisement_seconds: 1
preempt_delay: 30
track_interfaces:
- name: HundredGigE0/0/0/0
priority_decrement: 60
ipv6:
- group: 200
global_addresses:
- address: "2001:db8:200::1"
linklocal_address_autoconfig: true
priority: 150
name: CORE_V200_V6
timer_advertisement_seconds: 1
timer_force: true
preempt_delay: 30
accept_mode_disable: true
unicast_peer: "fe80::2"
bfd_fast_detect_peer_ipv6: "fe80::2"
track_interfaces:
- name: HundredGigE0/0/0/0
priority_decrement: 60

Example-3: Multiple VRRP groups for load sharing across two VLANs — each router is master for one group and backup for the other

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
router_vrrp:
interfaces:
- name: GigabitEthernet0/0/0/1
ipv4:
- group: 10
version: 3
address: 192.168.10.1
priority: 120
name: VLAN10_MASTER
preempt_delay: 15
- group: 20
version: 3
address: 192.168.20.1
priority: 90
name: VLAN20_BACKUP

Example-4: Single IPv4 gateway

iosxr:
devices:
- name: router-1
host: 10.10.10.1:57400
configuration:
router_vrrp:
interfaces:
- name: GigabitEthernet0/0/0/0
ipv4:
- group: 1
version: 2
address: 192.168.1.1
priority: 110