Customer upgraded an srx340 from 21.4 -> 22.4 -> 23.4. In Version 23.4 Routes with qualified-next-hop will not be installed. Routes with next-hop will be installed.
Customer is trying to leak the qualified-next-hop to RI and when checking the route table, does not see the route.
the same configuration works on version 21.4 Junos but not on 23.4 Junos
Routing-table output of 23.4 code: [email protected]> show route table vr_transit.inet.0 vr_transit.inet.0: 14 destinations, 14 routes (14 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both x.x.x.x/30 *[Direct/0] 1w0d 06:22:31 > via lt-0/0/0.253 x.x.x.x/32 *[Local/0] 1w0d 06:22:31 Local via lt-0/0/0.253 x.x.x.x/24 *[Static/5] 1w0d 06:22:31 > to y.y.y.y via lt-0/0/0.253 x.x.x.x/24 *[Static/5] 1w0d 06:22:31 > to y.y.y.y via lt-0/0/0.253 x.x.x.x/25 *[Static/5] 1w0d 06:22:31 > to y.y.y.y via lt-0/0/0.253 x.x.x.x/27 *[Static/5] 1w0d 06:22:31 > to y.y.y.y via lt-0/0/0.253 x.x.x.x/27 *[Static/5] 1w0d 06:22:31 > to y.y.y.y via lt-0/0/0.253 x.x.x.x/27 *[Static/5] 1w0d 06:22:31 > to y.y.y.y via lt-0/0/0.253 x.x.x.x/27 *[Static/5] 1w0d 06:22:31 > to y.y.y.y via lt-0/0/0.253
Route-table of 21.4 Junos with default route
[email protected]# run show route table vr_transit.inet.0 vr_transit.inet.0: 15 destinations, 16 routes (15 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[Static/100] 1w1d 12:41:30 > via gr-0/0/0.8000 via gr-0/0/0.8001 [Static/200] 1w1d 12:41:30 > via gr-0/0/0.9000 via gr-0/0/0.9001
This issue is due to change in behavior in Junos in the newer codes above 23.4
[email protected]# show routing-options rib-groups
import-vr_isp0-to-transit {
import-rib [ vr_isp0.inet.0 abc.inet.0 ];
import-policy import_isp;
}
import-vr_isp1-to-transit {
import-rib [ vr_isp1.inet.0 abc.inet.0 ];
These 2 rib-groups are applied for interface-routes leaking from vr_isp0.inet.0 and vr_isp1.inet.0 into abc .inet.0
set groups abc routing-instances vr_isp0 routing-options interface-routes rib-group inet import-vr_isp0-to-transit
set groups abc routing-instances vr_isp1 routing-options interface-routes rib-group inet import-vr_isp1-to-transit
But the import-policy import_isp is not configured to leak gr interface routes.
[email protected]# show policy import_isp
Policy import_isp1
Term unnamed:
from
route filter:
x.x.x.x/30 orlonger
then accept
Because of this the gr interface routes are not leaked into abc.inet.0 table.
As these gr interfaces are not leaked into abc instance and therefore the static route in gr_transit instance over the gr interfaces can not be installed in abc .inet.0 table.
set routing-instances abc routing-options static route 0.0.0.0/0 qualified-next-hop gr-0/0/0.8000 preference 100
set routing-instances abc routing-options static route 0.0.0.0/0 qualified-next-hop gr-0/0/0.9000 preference 200
set routing-instances abc routing-options static route 0.0.0.0/0 qualified-next-hop gr-0/0/0.8001 preference 100
set routing-instances abc routing-options static route 0.0.0.0/0 qualified-next-hop gr-0/0/0.9001 preference 200
For static route to be added in an instances RIB it is required that the next-hops interface should either belong to the instance or it is leaked from another instance.
This check was not correctly implemented prior to 23.4 and therefore the static route was allowed in abc.inet.0 table even with incorrect import-policy and without the gr interface routes present in abc table.
After correcting the import-policy to allow gr interfaces to be allowed in abc table as below:
Policy import_isp
Term 1:
from proto [ Direct Local ]
interface [ gr-0/0/0.8000 gr-0/0/0.9000 gr-0/0/0.8001 gr-0/0/0.9001 ]
Term 2:
Term 3:
then reject
The interface routes are leaked in abc table and with that the static route also gets added in RIB.
[email protected]> show route table abc.inet.0
abc.inet.0: 19 destinations, 20 routes (19 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0.0.0.0/0 *[Static/100] 00:05:50
> via gr-0/0/0.8000
via gr-0/0/0.8001
[Static/200] 00:05:50
> via gr-0/0/0.9000
via gr-0/0/0.9001
2025-03-31 : Article Created
2025-03-31 : Article edited and Published
2025-03-31 : Updated Title and Published
2025-07-07 : Updated Internal PR