VRRPv3 with IPv6 Support for JUNOS & Cisco IOS

Ran into a problem the other day where I was trying to configure VRRPv3 (which supports IPv6) between a Juniper MX480 and a Cisco 6509-E w/ SUP2T. The only config guide I could find for the Cisco device was this. While fairly detailed on turning on VRRP, (and remember you need this command)

fhrp version vrrp v3

it did not go into any detail for the actual IPv6 implementation! I already pinged the appropriate people but I thought I would share my config below in the meantime. The main thing to note is that when configuring IPv6 w/ VRRPv3 you have to manually add the link locals (as of the 15.1.1 ~Nov 18th, 2012).

So I won’t put a diagram here but basically just imagine a port-channel between the Cisco & Juniper that only allows vlan 2100. Here is the Cisco config->

interface Vlan2100
 ip address 201.13.110.2 255.255.254.0
 ipv6 address 2201:13:110::2/64
 ipv6 enable
 vrrp 1 address-family ipv4
  priority 120
  address 201.13.110.1 primary
 exit-vrrp
 vrrp 1 address-family ipv6
  priority 120
  address FE80::13:110:1 primary
  address 2201:13:110::1/64
 exit-vrrp
end

So the Juniper will automatically create a link-local address but you can override it (which you have to do if you are doing it on the Cisco). Here is my Juniper config->

irb {
        unit 2100 {
            description "Voice Vlan";
            family inet {
                address 201.13.110.3/23 {
                    vrrp-group 1 {
                        virtual-address 201.13.110.1;
                        accept-data;
                    }
                }
            }
            family inet6 {
                address 2201:13:110::3/64 {
                    vrrp-inet6-group 1 {
                        virtual-inet6-address 2201:13:110::1;
                        virtual-link-local-address fe80::13:110:1;
                        accept-data;
                    }
                }

This config worked perfectly, and although it looks simple now it was pretty annoying to figure out that the routers were not smart enough to sync on their link-local if they have the same virtual global or vice versa. Hopefully this will help someone out there! If you have any questions, advice, etc make comments below. Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *

*