Description

This article uses an example to analyze why direct routes are not updated for directly connected links when a Virtual Router Redundancy Protocol (VRRP) configuration is removed from the integrated routing and bridging (IRB) interface and the interface is configured with a physical IP address in Junos OS release 16.1 and later.

It also provides a workaround to resolve the issue.

 

Symptoms

A topology with VRRP

 
Router-1 irb.25: 192.168.1.12/29--------------------irb.25:192.168.1.10/29(VIP:192.168.1.9/29)router-2 VRRP-master
 

A topology without VRRP

 
Router-1 irb.25: 192.168.1.12/29--------------------irb.25:192.168.1.9/29 router-2
 

VRRP configuration

 
root@router-1> show configuration interfaces irb.25
family inet {
    address 192.168.1.12/29;
}
 
root@router-2# show interfaces irb.25
family inet {
    address 192.168.1.9/29;
    address 192.168.1.10/29 {
        vrrp-group 25 {
            virtual-address 192.168.1.9;
            priority 110;
            accept-data;
            authentication-type md5;
            authentication-key "$ABC123"; ## SECRET-DATA
        }
    }
}
 

Route on Router2

Given the above configuration and using the topology with VRRP configuration, the following route is used on router 2:

 
root@router-2> show route 192.168.1.12
 
inet.0: 7 destinations, 8 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 
0.0.0.0/0          *[Static/5] 22:35:11
                    > to 10.10.10.1 via fxp0.0
 
isp-vr.inet.0: 131 destinations, 132 routes (131 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 
192.168.1.8/29     *[Direct/0] 00:07:14
                    > via irb.25         >>>>>>>>> direct route
                    [BGP/170] 00:07:10, localpref 100
                      AS path: 400 I, validation-state: unverified
                    > to 60.60.60.2 via ge-2/0/0.0
 

Removing the VRRP configuration and changing the IP address in a single commit

 
root@router-2# edit interfaces irb.25
 
[edit interfaces irb unit 25]
root@router-2# delete family inet address 192.168.1.10/29 vrrp-group 25
 
[edit interfaces irb unit 25]
root@router-2# replace pattern 192.168.1.10 with 192.168.1.9
 
[edit interfaces irb unit 25]
root@router-2# top
 
[edit]
root@router-2 # show | compare
[edit interfaces irb unit 25 family inet]
+       address 192.168.1.9/29;
-       address 192.168.1.10/29 {
-           vrrp-group 25 {
-               virtual-address 192.168.1.9;
-               priority 110;
-               accept-data;
-               authentication-type md5;
-               authentication-key "$ABC123"; ## SECRET-DATA
-           }
-       }
 
 
[edit]
root@router-2# commit
 
root@router-2 > show route 192.168.1.12    
 
inet.0: 7 destinations, 8 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 
0.0.0.0/0          *[Static/5] 01:39:43
                    > to 10.85.156.1 via fxp0.0
 
isp-vr.inet.0: 129 destinations, 129 routes (129 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 
192.168.1.8/29     *[BGP/170] 01:33:50, localpref 100
                      AS path: 400 I, validation-state: unverified
                    > to 60.60.60.2 via ge-2/0/0.0

 

Solution

This is a product limitation where deleting a virtual IP address and configuring a different IP address cannot be performed in a single commit via the Command Line Interface (CLI).

 

To avoid this issue, two workarounds are available, which are detailed as follows:

Workaround 1

  1. Delete the IRB interface in one commit.
  2. Configure the new IRB interface in the next commit.

For example:
root@router-2# delete interfaces irb.25 

[edit]
root@router-2 # commit 

[edit]
root@router-2 # set interfaces irb.25 family inet address 192.168.1.9/29

[edit]
root@router-2 # commit 
 

Workaround 2

  1. Another workaround is to use the same physical IP address.

For example:

root@router3# delete interfaces irb.25 family inet address 192.168.1.10/29 vrrp-group 25

root@router3# run show route 192.168.1.12   
 
inet.0: 7 destinations, 8 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 
0.0.0.0/0          *[Static/5] 01:54:06
                   > to 10.85.156.1 via fxp0.0
 
isp-vr.inet.0: 130 destinations, 131 routes (130 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 
192.168.1.8/29     *[Direct/0] 00:11:31
                   > via irb.25
                   [BGP/170] 01:48:13, localpref 100
                   AS path: 400 I, validation-state: unverified
                   > to 60.60.60.2 via ge-2/0/0.0

 

Modification History

2020-02-27: minor non-technical edits.