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.
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
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
Configure the new IRB interface in the next commit.
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
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
2020-02-27: minor non-technical edits.