Achieving VRRP across multiple interfaces with a single heartbeat network

Hey all,

My home router serves a handful of vlans and I have virtualized routers as backups for if / when the primary fails (or I need to shut it down for any reason). I have all of the VLANs in a sync group and each one does the broadcast hello messages and I’m wondering if it’s possible to set one VLAN as the hello network to get all of the multicast traffic off of the other VLANs?.

Here’s my current config:
(assume vrrp_address_number is 1, the root_interface_name is eth1, the vrrp_priority is 100, and the vrrp_vrid is 10, I use ansible to configure the routers)

high-availability {
    vrrp {
        group VLAN1 {
            address 10.0.0.{{vrrp_address_number}}/24 {
            }
            interface {{root_interface_name}}
            priority {{vrrp_priority}}
            transition-script {
                backup /config/scripts/vrrp-fail.sh
                fault /config/scripts/vrrp-fail.sh
                master /config/scripts/vrrp-master.sh
            }
            vrid {{vrrp_vrid}}
        }
        group VLAN10 {
            address 10.0.10.{{vrrp_address_number}}/24 {
            }
            interface {{root_interface_name}}.10
            priority {{vrrp_priority}}
            vrid {{vrrp_vrid}}
        }
        group VLAN20 {
            address 10.0.20.{{vrrp_address_number}}/24 {
            }
            interface {{root_interface_name}}.20
            priority {{vrrp_priority}}
            vrid {{vrrp_vrid}}
        }
        group VLAN30 {
            address 10.0.30.{{vrrp_address_number}}/24 {
            }
            interface {{root_interface_name}}.30
            priority {{vrrp_priority}}
            vrid {{vrrp_vrid}}
        }
        group VLAN40 {
            address 10.0.40.{{vrrp_address_number}}/24 {
            }
            interface {{root_interface_name}}.40
            priority {{vrrp_priority}}
            vrid {{vrrp_vrid}}
        }
        group VLAN50 {
            address 10.0.50.{{vrrp_address_number}}/24 {
            }
            interface {{root_interface_name}}.50
            priority {{vrrp_priority}}
            vrid {{vrrp_vrid}}
        }
        group VLAN110 {
            address 10.0.110.{{vrrp_address_number}}/24 {
            }
            interface {{root_interface_name}}.110
            priority {{vrrp_priority}}
            vrid {{vrrp_vrid}}
        }
        group VLAN120 {
            address 10.0.120.{{vrrp_address_number}}/24 {
            }
            interface {{root_interface_name}}.120
            priority {{vrrp_priority}}
            vrid {{vrrp_vrid}}
        }
        group VLAN200 {
            address 10.0.200.{{vrrp_address_number}}/24 {
            }
            interface {{root_interface_name}}.200
            priority {{vrrp_priority}}
            vrid {{vrrp_vrid}}
        }
        sync-group MAIN {
            member VLAN1
            member VLAN20
            member VLAN30
            member VLAN40
            member VLAN50
            member VLAN110
            member VLAN120
            member VLAN10
            member VLAN200
        }
    }
}

Check the docs, you can assign VIP to a specific interface, regardless of the VRRP listen interface

2 Likes

Ahhhhhhhh that’ll work. Thank you!

Slimmed it down quite a bit. Now I just need to get home to reconfigure the routers when I’m in a spot to fix them if coexistance between this and the old style isn’t great.

high-availability {
    vrrp {
        group VLAN1 {
            address 10.0.0.{{vrrp_address_number}}/24 {
            }
            address 10.0.10.{{vrrp_address_number}}/24 {
                interface {{root_interface_name}}.10
            }
            address 10.0.20.{{vrrp_address_number}}/24 {
                interface {{root_interface_name}}.20
            }
            address 10.0.30.{{vrrp_address_number}}/24 {
                interface {{root_interface_name}}.30
            }
            address 10.0.40.{{vrrp_address_number}}/24 {
                interface {{root_interface_name}}.40
            }
            address 10.0.50.{{vrrp_address_number}}/24 {
                interface {{root_interface_name}}.50
            }
            address 10.0.110.{{vrrp_address_number}}/24 {
                interface {{root_interface_name}}.110
            }
            address 10.0.120.{{vrrp_address_number}}/24 {
                interface {{root_interface_name}}.120
            }
            address 10.0.200.{{vrrp_address_number}}/24 {
                interface {{root_interface_name}}.200
            }
            interface {{root_interface_name}}
            priority {{vrrp_priority}}
            transition-script {
                backup /config/scripts/vrrp-fail.sh
                fault /config/scripts/vrrp-fail.sh
                master /config/scripts/vrrp-master.sh
            }
            vrid {{vrrp_vrid}}
        }
    }
}