This KB is related to the results from tracing the LSP on ISIS when adding statis routes and enabled the command prefix-export-limit.
Testing "set protocols isis level 2 prefix-export-limit 3" in the lab, on a network element named mx960-lr8-ash2, by exporting statics to integrated is - is. On another network element running JunOS in the same level 2, I enabled "protocols isis traceoptions flag lsp receive detail". When attempting to break through the configured ceiling of three routes by adding a fourth static, I had expected that nothing would change. Instead, I observe that all of the exported statics are withdrawn. Is this behavior expected?
Also, I expected to observe a single new link state pdu flooded by the device under test for each addition to the number of statics exported to integrated is - is. Instead, I observe three. The first link state pdu appears to withdraw all of the exported statics. The second link state pdu adds the newly - exported static. The third link state pdu is the expected one. Is this behavior expected?
Checking the IS-IS LSP behaviour when prefix export limit is set, you can evaluate LSP for static routes to be deleted and added even if the ceiling for the limit stablished is not raised yet:
ISIS session stablished, then from another MX960 3 static routes exported to ISIS
labroot@marcian-re0> show isis database extensive
splitbrain-re0.00-00 Sequence: 0x11, Checksum: 0x64ec, Lifetime: 1150 secs
IS neighbor: marcian-re0.02 Metric: 10
Two-way fragment: marcian-re0.02-00, Two-way first fragment: marcian-re0.02-00
IP prefix: 0.0.0.0/0 Metric: 0 External Up
IP prefix: 10.85.163.128/25 Metric: 10 External Up
IP prefix: 10.100.12.0/30 Metric: 10 Internal Up
IP prefix: 128.2.254.0/32 Metric: 0 External Up ----static route 1
IP prefix: 128.2.254.1/32 Metric: 0 External Up-----staric route 2
IP prefix: 128.2.254.2/32 Metric: 0 External Up-----static route 3
IP prefix: 192.168.0.2/32 Metric: 0 Internal Up
Enabled ISIS trace options flag lsp receive detail
set protocols isis interface xe-1/0/1.0
set protocols isis interface lo0.0
set protocols isis level 1 disable
set protocols isis level 2 prefix-export-limit 3
set protocols isis traceoptions flag lsp receive
set protocols isis traceoptions flag lsp detail
set protocols isis traceoptions file isis-logs
Seems to be the LSP database proceed to update the prefixes, looks like prefixes are deleted, even though the prefix limit is not set yet, and ceiling not reached.
Jan 12 18:16:14.520631 Refreshing ALL prefixes in Zeroth fragment data for L2 LSP marcian-re0.02-00
------------------------------------->>>>>>>>>>>>>>>>-----------------------------------------------------------
Jan 12 18:16:14.646188 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 0.0.0.0/0, 0x9ac1440
Jan 12 18:16:14.646199 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 10.85.163.128/25, 0x9abfa00
Jan 12 18:16:14.646208 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 10.100.12.0/30, 0x9ac02c0
Jan 12 18:16:14.646216 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 128.2.254.0/32, 0x9abedc0
Jan 12 18:16:14.646225 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 128.2.254.1/32, 0x9abf840
Jan 12 18:16:14.646233 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 128.2.254.2/32, 0x9abf300
Jan 12 18:16:14.646242 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 192.168.0.2/32, 0x9ac0480
However the routes remain active
labroot@marcian-re0> show route
inet.0: 11 destinations, 14 routes (11 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0.0.0.0/0 *[Static/5] 2d 11:23:09
> to 10.85.163.129 via fxp0.0
[IS-IS/165] 00:56:26, metric 10
> to 10.100.12.2 via xe-1/0/1.0
10.85.163.128/25 *[Direct/0] 2d 11:23:09
> via fxp0.0
[Direct/0] 2d 11:23:08
[IS-IS/165] 00:56:26, metric 20
10.85.163.171/32 *[Local/0] 2d 11:23:09
Local via fxp0.0
10.85.163.173/32 *[Local/0] 2d 11:23:08
10.100.12.0/30 *[Direct/0] 02:58:23
> via xe-1/0/1.0
10.100.12.1/32 *[Local/0] 02:58:23
Local via xe-1/0/1.0
128.2.254.0/32 *[IS-IS/165] 00:56:26, metric 10
128.2.254.1/32 *[IS-IS/165] 00:56:26, metric 10
128.2.254.2/32 *[IS-IS/165] 00:02:40, metric 10
192.168.0.1/32 *[Direct/0] 02:58:23
Now adding fourth static route to review if this is an expected behavior for LSPs
labroot@splitbrain-re0# show | compare
[edit routing-options static]
+ route 128.2.254.3/32 next-hop 10.100.12.1;
[edit routing-options]
labroot@splitbrain-re0# commit
commit complete
From traces
Jan 12 18:24:18.520494 Updating L2 LSP marcian-re0.02-00 in TED
Jan 12 18:24:18.520525 Opening TED node marcian-re0.02 for level 2
Jan 12 18:24:18.520534 Adding a half link from marcian-re0.02 to splitbrain-re0.00
Jan 12 18:24:18.520553 Adding a half link from marcian-re0.02 to marcian-re0.00
Jan 12 18:24:18.520565 Adding a half link from marcian-re0.02 to splitbrain-re0.00
Jan 12 18:24:18.520575 Adding a half link from marcian-re0.02 to marcian-re0.00
Jan 12 18:24:18.520586 Closing TED node marcian-re0.02 for level 2
Jan 12 18:24:18.520597 L2 LSP marcian-re0.02-00 updated IPv4 Pfx Sid Index List
Jan 12 18:24:18.520603 L2 LSP marcian-re0.02-00 updated SR-Capabilities
Jan 12 18:24:18.520609 L2 LSP marcian-re0.02-00 updated SRv6 Cap List
Jan 12 18:24:18.520624 LSP marcian-re0.02-00 unchanged (No change), will NOT need to schedule SPF delay was(no) now(no)
Jan 12 18:24:18.520631 Refreshing ALL prefixes in Zeroth fragment data for L2 LSP marcian-re0.02-00
-------------------------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>---------------------------------------------------------
Jan 12 18:25:30.877153 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 0.0.0.0/0, 0x9abef80
Jan 12 18:25:30.877165 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 10.85.163.128/25, 0x9abf140
Jan 12 18:25:30.877174 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 10.100.12.0/30, 0x9abe880
Jan 12 18:25:30.877182 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 128.2.254.0/32, 0x9abf4c0
Jan 12 18:25:30.877191 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 128.2.254.1/32, 0x9abe340
Jan 12 18:25:30.877201 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 128.2.254.2/32, 0x9ac0100
Jan 12 18:25:30.877209 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 128.2.254.3/32, 0x9ac0640
Jan 12 18:25:30.877218 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 192.168.0.2/32, 0x9abec00
The 4 static routes have been refreshed and remain in place.
IS-IS level 1 link-state database:
IS-IS level 2 link-state database:
splitbrain-re0.00-00 Sequence: 0x12, Checksum: 0xc3cc, Lifetime: 1164 secs
IP prefix: 128.2.254.0/32 Metric: 0 External Up
IP prefix: 128.2.254.1/32 Metric: 0 External Up
IP prefix: 128.2.254.2/32 Metric: 0 External Up
IP prefix: 128.2.254.3/32 Metric: 0 External Up
inet.0: 12 destinations, 15 routes (12 active, 0 holddown, 0 hidden)
0.0.0.0/0 *[Static/5] 2d 11:33:56
[IS-IS/165] 01:07:13, metric 10
10.85.163.128/25 *[Direct/0] 2d 11:33:56
[Direct/0] 2d 11:33:55
[IS-IS/165] 01:07:13, metric 20
10.85.163.171/32 *[Local/0] 2d 11:33:56
10.85.163.173/32 *[Local/0] 2d 11:33:55
10.100.12.0/30 *[Direct/0] 03:09:10
10.100.12.1/32 *[Local/0] 03:09:10
128.2.254.0/32 *[IS-IS/165] 01:07:13, metric 10
128.2.254.1/32 *[IS-IS/165] 01:07:13, metric 10
128.2.254.2/32 *[IS-IS/165] 00:13:27, metric 10
128.2.254.3/32 *[IS-IS/165] 00:02:10, metric 10
Now proceeded to set the export limit 3
[edit protocols isis]
labroot@splitbrain-re0# set level 2 prefix-export-limit 3
labroot@splitbrain-re0# commit check
configuration check succeeds
labroot@marcian-re0> show isis database
0 LSPs
LSP ID Sequence Checksum Lifetime Attributes
marcian-re0.00-00 0x11 0x280 695 L1 L2
marcian-re0.02-00 0xe 0x406c 1109 L1 L2
splitbrain-re0.00-00 0x13 0x729e 1180 L1 L2 Overload------->>> bit set
marcian-re0.00-00 Sequence: 0x11, Checksum: 0x280, Lifetime: 635 secs
IP prefix: 192.168.0.1/32 Metric: 0 Internal Up
Packet: LSP ID: splitbrain-re0.00-00, Length: 190 bytes, Lifetime : 1198 secs
Checksum: 0x729e, Sequence: 0x13, Attributes: 0x7 <L1 L2 Overload>
NLPID: 0x83, Fixed length: 27 bytes, Version: 1, Sysid length: 0 bytes
Packet type: 20, Packet version: 1, Max area: 0
TLVs:
Area address: 49.0002 (3)
LSP Buffer Size: 1492
Speaks: IP
Speaks: IPV6
IP router id: 192.168.0.2
IP address: 192.168.0.2
Hostname: splitbrain-re0
Router Capability: Router ID 192.168.0.2, Flags: 0x00
IS neighbor: marcian-re0.02, Internal, Metric: default 10
Extended IS Reachability TLV, Type: 22, Length: 27
IS extended neighbor: marcian-re0.02, Metric: default 10 SubTLV len: 16
IP address: 10.100.12.2
Local interface index: 325, Remote interface index: 0
IP prefix: 192.168.0.2/32, Internal, Metric: default 0, Up
IP prefix: 10.100.12.0/30, Internal, Metric: default 10, Up
IP extended prefix: 192.168.0.2/32 metric 0 up
IP extended prefix: 10.100.12.0/30 metric 10 up
IP external prefix: 10.85.163.128/25, Internal, Metric: default 10, Up
IP extended prefix: 10.85.163.128/25 metric 10 up
No queued transmissions
Jan 12 18:37:04.779954 IP unicast prefix: 192.168.0.2/32 metric 0 up
Jan 12 18:37:04.779959 IP unicast prefix: 10.100.12.0/30 metric 10 up
Jan 12 18:37:04.780340 Refreshing ALL prefixes in Zeroth fragment data for L2 LSP splitbrain-re0.00-00------->>>>>>
Jan 12 18:37:04.780346 L2 LSP splitbrain-re0.00-00 ALL IPv4 refreshed Pfx Sid Index List
Jan 12 18:37:04.780351 L2 LSP splitbrain-re0.00-00 ALL SRv6 Sids refreshed SRv6 Locator List
Jan 12 18:37:04.780373 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 10.85.163.128/25, 0x9abf840
Jan 12 18:37:04.780383 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 10.100.12.0/30, 0x9ac1600
Jan 12 18:37:04.780393 delete this prefix. L2 LSP 0000.0000.0000.00-00, Prefix 192.168.0.2/32, 0x9abf680
No static routes presented on traces and routing table
inet.0: 8 destinations, 10 routes (8 active, 0 holddown, 0 hidden)
0.0.0.0/0 *[Static/5] 2d 12:12:13
10.85.163.128/25 *[Direct/0] 2d 12:12:13
[Direct/0] 2d 12:12:12
[IS-IS/165] 01:45:30, metric 20
10.85.163.171/32 *[Local/0] 2d 12:12:13
10.85.163.173/32 *[Local/0] 2d 12:12:12
10.100.12.0/30 *[Direct/0] 03:47:27
10.100.12.1/32 *[Local/0] 03:47:27
192.168.0.1/32 *[Direct/0] 03:47:27
> via lo0.0
192.168.0.2/32 *[IS-IS/18] 01:45:30, metric 10
In conclusion, it seems to be that behavior to withdraw the static routes is expected, being part of the updating database, however routes remain on this process, then tested that the export prefix limit command takes effect and static routes are eliminated, the only routes that remain are direct routes stablished, all the aspects expected from developers. The export prefix limit once is reached out is to delete routes this helps the router ensuring network stability by signaling
> to neighboring routers to reroute traffic as necessary.