IS-IS Redistribution (connected / static)
IS-IS advertises only the prefixes of interfaces that run IS-IS. An interface left out of IS-IS, or a static route, sits in that router’s routing table but never reaches the rest of the domain. Putting those into the IS-IS LSPs is redistribution.
This article looks at how a redistributed route is encoded in the LSP, how the metric and the metric type take effect, and how connected differs from static, checking the RFCs against IOS XR. On the routers, every STEP also confirms that a ping actually reaches the redistributed route.
How external routes are represented
A redistributed route is advertised as an external route, one that came from outside IS-IS. How it is encoded depends on the metric style (narrow or wide).
Narrow: TLV 130 and the I/E bit
RFC 1195 set aside TLV 130 (IP External Reachability Information) for external routes. Section 5.2 puts it in level 2 LSPs, and section 2.2 of RFC 5302 relaxes that to allow level 1 as well.
The metric type is one bit of the default metric. Section 5.3.5 says:
Bit 7 of this field indicates the metric type (internal or external) for all four TOS metrics, and may be set to zero indicating internal metrics, or may be set to 1 indicating external metrics.
What TLV 130 looks like inside an LSP is covered in IS-IS TLVs.
Wide: TLV 135 and the X flag
With wide metrics, internal and external routes alike go into TLV 135 from RFC 5305. Section 4 defines the control byte as just this:
| Bits | Contents |
|---|---|
| 1 bit | up/down |
| 1 bit | sub-TLVs present |
| 6 bits | prefix length |
There is no I/E bit. Section 3 of the same RFC describes the narrow octet as one bit for internal/external, one bit that RFC 5302 later turned into up/down, and six bits of value; wide does not carry the internal/external bit forward.
External routes are marked with a sub-TLV instead: the X flag defined in section 2.1 of RFC 7794.
X-Flag: External Prefix Flag (Bit 0). Set if the prefix has been redistributed from another protocol.
On IOS XR, show isis database detail does not show this sub-TLV. show isis database verbose does, per prefix, as Prefix Attribute Flags: X:1.
| Item | Narrow | Wide |
|---|---|---|
| Marks a route as external | Carried in TLV 130 | X flag in TLV 135 (RFC 7794) |
| Metric type | Bit 7 of the default metric | Nowhere to encode it |
| Metric value | 6 bits (0-63) | 32 bits |
Route type and metric type are different things
“External” means two things, and section 2.1 of RFC 5302 keeps them apart: the route type (whether it is in TLV 130) and the metric type (internal or external).
The route type does not affect route selection.
When a router computes IP routes, it MUST give the same preference to IP routes advertised in an “IP Internal Reachability Information” TLV and IP routes advertised in an “IP External Reachability Information” TLV.
The metric type does.
However, a router MUST give IP routes advertised with an external metric-type a lower preference than the same IP routes advertised with an internal metric-type, regardless of the value of the metrics.
With narrow, a route set to the external type loses to an internal one however small its metric.
redistribute on IOS XR has a metric-type too, with four values. The Cisco IOS XE 17 IS-IS configuration guide lists the same four and explains that rib-metric-as-* carries over the routing table’s metric.
RP/0/RP0/CPU0:R2(config-isis-af)#redistribute static metric-type ?
external Set IS-IS External metric type
internal Set IS-IS Internal metric type
rib-metric-as-external Set IS-IS External metric type and use RIB metric
rib-metric-as-internal Set IS-IS Internal metric type and use RIB metricA wide LSP, however, has nowhere to write that type. On IOS XR with wide metrics, metric-type external leaves the LSP unchanged, and receiving routers compare the metric value alone. An external-type route does not lose just for being external.
How the metric adds up
A receiving router compares the distance to the redistributing router plus the advertised metric. Section 3.10.2 of RFC 1195 treats internal-type external routes the same as internal routes and picks the shortest path. When two routers redistribute the same destination, the nearer exit wins, and raising one side’s advertised metric moves traffic to the farther one.
When metric is left out, IOS XR advertises redistributed routes with metric 0 (connected and static alike). What a receiving router sees is then just the distance to the redistributing router. The configurable range is 0-16777215, even with wide metrics.
RP/0/RP0/CPU0:R2(config-isis-af)#redistribute static metric ?
<0-16777215> Default metric: <0-63> for narrow, <0-16777215> for wideConnected versus static
redistribute connected picks up the prefixes of interfaces that do not run IS-IS. Interfaces running IS-IS are already advertised as internal routes, so they are not added twice. On R2 in the test setup below, 10.1.2.0/24, which runs IS-IS, stays an internal prefix (metric 10, no X flag), and only 10.2.5.0/24 toward R5 is added as an external route (metric 0, X flag set).
redistribute static advertises the static routes in the routing table. Once in the LSP they are handled the same as connected routes (X flag, how the metric adds up).
Verification on real devices
The test setup
R1 to R4 sit in a single area, 49.0001, as level-2-only (wide), with R5 outside, not running IS-IS. R5’s Lo1, 192.168.5.1/24, is the external LAN to redistribute. R2 and R3 each have a static route to R5, and R5 has default routes to both. The software is XRd 26.1.1.
| Router | Lo0 | Links |
|---|---|---|
| R1 | 1.1.1.1/32 | Gi0/0/0/0 10.1.2.1 (to R2, metric 10), Gi0/0/0/1 10.1.4.1 (to R4, metric 10) |
| R2 | 2.2.2.2/32 | Gi0/0/0/0 10.1.2.2, Gi0/0/0/1 10.2.5.2 (to R5, no IS-IS). Static 192.168.5.0/24 to 10.2.5.5 |
| R3 | 3.3.3.3/32 | Gi0/0/0/0 10.3.4.3 (to R4, metric 10), Gi0/0/0/1 10.3.5.3 (to R5, no IS-IS). Static 192.168.5.0/24 to 10.3.5.5 |
| R4 | 4.4.4.4/32 | Gi0/0/0/0 10.1.4.4, Gi0/0/0/1 10.3.4.4 |
| R5 | 5.5.5.5/32, Lo1 192.168.5.1/24 | Gi0/0/0/0 10.2.5.5, Gi0/0/0/1 10.3.5.5. 0.0.0.0/0 to 10.2.5.2 and 10.3.5.3. No IS-IS |
From R1 the internal cost is 10 to R2 and 20 to R3 (via R4). Which exit is in use shows up in R1’s traceroute: R4 (10.1.4.4) appears only on the R3 side.
The STEPs
| STEP | Operation | What it confirms |
|---|---|---|
| 0 | Defaults (no redistribution) | R1 has neither 192.168.5.0/24 nor 10.2.5.0/24, and pings fail |
| 1 | redistribute connected on R2 | R2’s LSP gains 10.2.5.0/24 with metric 0 and the X flag, and R1 can ping 10.2.5.5 |
| 2 | redistribute static on R2 | 192.168.5.0/24 appears too, and R1 reaches 192.168.5.1 through R2 |
| 3 | redistribute static on R3 | R3 advertises it as well, but R1 keeps the nearer R2 exit (10 < 20) |
| 4 | Change R2 to redistribute static metric 100 | The R2 path becomes 110 and R1 moves to R3 (20). R4 shows up in the traceroute |
| 5 | Change R2 to redistribute static metric-type external | The LSP does not change, and R1 goes back to R2 (10) on metric value |
| 6 | Revert everything (final state) | Matches STEP 0 |
STEP 0: No redistribution
R1 has no external prefixes, and pings to R5’s LAN fail.
RP/0/RP0/CPU0:R1#show route 192.168.5.0/24
Sun Sep 13 14:00:12.727 UTC
% Network not in tableRP/0/RP0/CPU0:R1#ping 192.168.5.1 source 1.1.1.1 count 50 timeout 1
Sun Sep 13 14:00:32.694 UTC
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 192.168.5.1 timeout is 1 seconds:
..................................................
Success rate is 0 percent (0/50)STEP 1: redistribute connected on R2
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Sun Sep 13 14:10:50.511 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
address-family ipv4 unicast
redistribute connected
!
!
endIn R1’s database, R2’s LSP now carries 10.2.5.0/24 with metric 0 and X:1. 10.1.2.0/24, which runs IS-IS, stays at X:0.
R2.00-00 0x00000007 0x5839 534 /1200 0/0/0
Area Address: 49.0001
LSP MTU: 1492
NLPID: 0xcc
IP Address: 2.2.2.2
Hostname: R2
Metric: 10 IS-Extended R1.00
Metric: 0 IP-Extended 2.2.2.2/32
Prefix Attribute Flags: X:0 R:0 N:1 E:0 A:0
Metric: 10 IP-Extended 10.1.2.0/24
Prefix Attribute Flags: X:0 R:0 N:0 E:0 A:0
Metric: 0 IP-Extended 10.2.5.0/24
Prefix Attribute Flags: X:1 R:0 N:0 E:0 A:0In R1’s routing table the value is 10: the 10 to R2 plus the advertised 0. Pings to R5’s 10.2.5.5 get through.
RP/0/RP0/CPU0:R1#show route 10.2.5.0/24
Sun Sep 13 14:12:26.444 UTC
Routing entry for 10.2.5.0/24
Known via "isis 1", distance 115, metric 10, type level-2
Installed Sep 13 14:10:49.763 for 00:01:36
Routing Descriptor Blocks
10.1.2.2, from 2.2.2.2, via GigabitEthernet0/0/0/0
Route metric is 10
No advertising protos. RP/0/RP0/CPU0:R1#ping 10.2.5.5 source 1.1.1.1 count 50 timeout 1
Sun Sep 13 14:13:41.408 UTC
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 10.2.5.5 timeout is 1 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (50/50), round-trip min/avg/max = 6/9/27 msIn the packet
No.3 in the STEP 1 capture is R2’s LSP. In the Prefix Attribute Flags, the X bit is 1 for 10.2.5.0/24 and 0 for 10.1.2.0/24.
Ext. IP Reachability: 10.1.2.0/24
Metric: 10
0... .... = Distribution: Up
.1.. .... = Sub-TLV: Yes
..01 1000 = Prefix Length: 24
IPv4 prefix: 10.1.2.0
SubCLV Length: 3
subTLV: Prefix Attribute Flags (c=4, l=1): Flags:---
Code: Prefix Attribute Flags (4)
Length: 1
Flags: 0x00
0... .... = External Prefix: Not set
.0.. .... = Re-advertisement: Not set
..0. .... = Node: Not set
Ext. IP Reachability: 10.2.5.0/24
Metric: 0
0... .... = Distribution: Up
.1.. .... = Sub-TLV: Yes
..01 1000 = Prefix Length: 24
IPv4 prefix: 10.2.5.0
SubCLV Length: 3
subTLV: Prefix Attribute Flags (c=4, l=1): Flags:X--
Code: Prefix Attribute Flags (4)
Length: 1
Flags: 0x80, External Prefix
1... .... = External Prefix: Set
.0.. .... = Re-advertisement: Not set
..0. .... = Node: Not setSTEP 2: redistribute static on R2
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Sun Sep 13 14:22:14.626 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
address-family ipv4 unicast
redistribute static
!
!
end192.168.5.0/24 is advertised with metric 0 as well, and R1 learns it through R2 at 10. Pings to R5’s LAN succeed, and the traceroute goes from R2 (10.1.2.2) to R5 (10.2.5.5).
RP/0/RP0/CPU0:R1#show route 192.168.5.0/24
Sun Sep 13 14:23:50.227 UTC
Routing entry for 192.168.5.0/24
Known via "isis 1", distance 115, metric 10, type level-2
Installed Sep 13 14:22:14.063 for 00:01:36
Routing Descriptor Blocks
10.1.2.2, from 2.2.2.2, via GigabitEthernet0/0/0/0
Route metric is 10
No advertising protos. RP/0/RP0/CPU0:R1#ping 192.168.5.1 source 1.1.1.1 count 50 timeout 1
Sun Sep 13 14:24:10.840 UTC
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 192.168.5.1 timeout is 1 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (50/50), round-trip min/avg/max = 8/10/20 msRP/0/RP0/CPU0:R1#traceroute 192.168.5.1 source 1.1.1.1
Sun Sep 13 14:24:12.531 UTC
Type escape sequence to abort.
Tracing the route to 192.168.5.1
1 10.1.2.2 9 msec 5 msec 5 msec
2 10.2.5.5 48 msec * 12 msec STEP 3: redistribute static on R3 as well
R3’s LSP also carries 192.168.5.0/24 with metric 0.
R3.00-00 0x00000008 0xfe9e 1101 /1200 0/0/0
Area Address: 49.0001
LSP MTU: 1492
NLPID: 0xcc
IP Address: 3.3.3.3
Hostname: R3
Metric: 10 IS-Extended R4.00
Metric: 0 IP-Extended 3.3.3.3/32
Prefix Attribute Flags: X:0 R:0 N:1 E:0 A:0
Metric: 10 IP-Extended 10.3.4.0/24
Prefix Attribute Flags: X:0 R:0 N:0 E:0 A:0
Metric: 0 IP-Extended 192.168.5.0/24
Prefix Attribute Flags: X:1 R:0 N:0 E:0 A:0R1 still uses the nearer R2 exit: 10 through R2, 20 through R3.
RP/0/RP0/CPU0:R1#show isis route
Sun Sep 13 14:28:20.508 UTC
IS-IS 1 IPv4 Unicast routes
Codes: L1 - level 1, L2 - level 2, ia - interarea (leaked into level 1)
df - level 1 default (closest attached router), su - summary null
C - connected, S - static, R - RIP, B - BGP, O - OSPF
E - EIGRP, A - access/subscriber, M - mobile, a - application
i - IS-IS (redistributed from another instance)
Maximum parallel path count: 8
C 1.1.1.1/32
is directly connected, Loopback0
L2 2.2.2.2/32 [10/115]
via 10.1.2.2, GigabitEthernet0/0/0/0, R2, Weight: 0
L2 3.3.3.3/32 [20/115]
via 10.1.4.4, GigabitEthernet0/0/0/1, R4, Weight: 0
L2 4.4.4.4/32 [10/115]
via 10.1.4.4, GigabitEthernet0/0/0/1, R4, Weight: 0
C 10.1.2.0/24
is directly connected, GigabitEthernet0/0/0/0
C 10.1.4.0/24
is directly connected, GigabitEthernet0/0/0/1
L2 10.2.5.0/24 [10/115]
via 10.1.2.2, GigabitEthernet0/0/0/0, R2, Weight: 0
L2 10.3.4.0/24 [20/115]
via 10.1.4.4, GigabitEthernet0/0/0/1, R4, Weight: 0
L2 192.168.5.0/24 [10/115]
via 10.1.2.2, GigabitEthernet0/0/0/0, R2, Weight: 0RP/0/RP0/CPU0:R1#traceroute 192.168.5.1 source 1.1.1.1
Sun Sep 13 14:28:41.427 UTC
Type escape sequence to abort.
Tracing the route to 192.168.5.1
1 10.1.2.2 61 msec 5 msec 5 msec
2 10.2.5.5 9 msec * 11 msec STEP 4: Set R2’s metric to 100
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Sun Sep 13 14:31:19.435 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
address-family ipv4 unicast
redistribute static metric 100
!
!
endThe R2 path is now 10 + 100 = 110, so the 20 through R3 wins. R4 (10.1.4.4) and R3 (10.3.4.3) appear in the traceroute.
RP/0/RP0/CPU0:R1#show route 192.168.5.0/24
Sun Sep 13 14:32:54.964 UTC
Routing entry for 192.168.5.0/24
Known via "isis 1", distance 115, metric 20, type level-2
Installed Sep 13 14:31:18.563 for 00:01:36
Routing Descriptor Blocks
10.1.4.4, from 3.3.3.3, via GigabitEthernet0/0/0/1
Route metric is 20
No advertising protos. RP/0/RP0/CPU0:R1#traceroute 192.168.5.1 source 1.1.1.1
Sun Sep 13 14:33:16.836 UTC
Type escape sequence to abort.
Tracing the route to 192.168.5.1
1 10.1.4.4 6 msec 5 msec 5 msec
2 10.3.4.3 9 msec 8 msec 8 msec
3 10.3.5.5 13 msec * 15 msec STEP 5: Set R2 to metric-type external
metric is dropped and only the type is set to external, so the metric falls back to the default 0.
RP/0/RP0/CPU0:R2#show configuration commit changes last 1
Sun Sep 13 14:35:46.635 UTC
!! Building configuration...
!! IOS XR Configuration 26.1.1
router isis 1
address-family ipv4 unicast
redistribute static metric-type external
!
!
endIf external types lost regardless of value, R1 would stay on R3 (20). Instead it went back to R2 at 10.
RP/0/RP0/CPU0:R1#show route 192.168.5.0/24
Sun Sep 13 14:37:21.938 UTC
Routing entry for 192.168.5.0/24
Known via "isis 1", distance 115, metric 10, type level-2
Installed Sep 13 14:35:46.063 for 00:01:36
Routing Descriptor Blocks
10.1.2.2, from 2.2.2.2, via GigabitEthernet0/0/0/0
Route metric is 10
No advertising protos. RP/0/RP0/CPU0:R1#traceroute 192.168.5.1 source 1.1.1.1
Sun Sep 13 14:37:43.524 UTC
Type escape sequence to abort.
Tracing the route to 192.168.5.1
1 10.1.2.2 5 msec 5 msec 5 msec
2 10.2.5.5 9 msec * 10 msec The LSP did not change either. Put the LSP R2 sent in STEP 2 without metric-type (No.3 in STEP 2) next to the STEP 5 one (No.2): 192.168.5.0/24 is metric 0 with the X bit set in both. Comparing the TLVs of the two LSPs byte by byte finds no difference; only the sequence number and checksum in the LSP header differ.
Ext. IP Reachability: 192.168.5.0/24
Metric: 0
0... .... = Distribution: Up
.1.. .... = Sub-TLV: Yes
..01 1000 = Prefix Length: 24
IPv4 prefix: 192.168.5.0
SubCLV Length: 3
subTLV: Prefix Attribute Flags (c=4, l=1): Flags:X--
Code: Prefix Attribute Flags (4)
Length: 1
Flags: 0x80, External Prefix
1... .... = External Prefix: Set
.0.. .... = Re-advertisement: Not set
..0. .... = Node: Not set Ext. IP Reachability: 192.168.5.0/24
Metric: 0
0... .... = Distribution: Up
.1.. .... = Sub-TLV: Yes
..01 1000 = Prefix Length: 24
IPv4 prefix: 192.168.5.0
SubCLV Length: 3
subTLV: Prefix Attribute Flags (c=4, l=1): Flags:X--
Code: Prefix Attribute Flags (4)
Length: 1
Flags: 0x80, External Prefix
1... .... = External Prefix: Set
.0.. .... = Re-advertisement: Not set
..0. .... = Node: Not setSTEP 6: Revert everything
With redistribution removed from R2 and R3, the external prefixes disappear from R1 and pings fail again.
RP/0/RP0/CPU0:R1#ping 192.168.5.1 source 1.1.1.1 count 50 timeout 1
Sun Sep 13 14:42:23.150 UTC
Type escape sequence to abort.
Sending 50, 100-byte ICMP Echos to 192.168.5.1 timeout is 1 seconds:
..................................................
Success rate is 0 percent (0/50)Verification configs and show output
Each STEP was captured from all five routers as separate files per router. The verification config is the ..._run.txt (the final state is the one from the last STEP).
| File | Contents |
|---|---|
..._show.txt | show version, show interface description, show route, show route 192.168.5.0/24, show route 10.2.5.0/24, the show isis set (interface brief, neighbors, database, database detail, database verbose (STEP 2 onward), topology, route, adjacency-log, spf-log, lsp-log, statistics), and show running-config router static |
..._log.txt | show logging narrowed to that STEP. A logmsg marker is placed at the start of each STEP and its timestamp passed to show logging start |
..._run.txt | show running-config at that STEP (the verification config for that STEP) |
..._trace.txt | show isis trace all | include UPD_LSP_ACCEPT and show isis trace all | include SPF |
..._ping.txt | R1 from source 1.1.1.1: ping 192.168.5.1, traceroute 192.168.5.1, ping 10.2.5.5. R5 from source 192.168.5.1: ping 1.1.1.1, traceroute 1.1.1.1. None for R2 to R4 |
..._commit.cfg | What that STEP committed (show configuration commit changes last 1). Absent for routers that changed nothing |
STEP 0: Defaults (no redistribution)
| Router | show | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | - |
| R3 | show | log | run | trace | - | - |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
STEP 1: redistribute connected on R2
| Router | show | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | commit |
| R3 | show | log | run | trace | - | - |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
The STEP 1 show set did not include show isis database verbose, so it was taken separately on R1 before the STEP 2 change: verbose
STEP 2: redistribute static on R2
| Router | show | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | commit |
| R3 | show | log | run | trace | - | - |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
STEP 3: redistribute static on R3
| Router | show | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | - |
| R3 | show | log | run | trace | - | commit |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
STEP 4: Change R2 to redistribute static metric 100
| Router | show | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | commit |
| R3 | show | log | run | trace | - | - |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
STEP 5: Change R2 to redistribute static metric-type external
| Router | show | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | commit |
| R3 | show | log | run | trace | - | - |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
STEP 6: Revert everything (final state)
| Router | show | syslog | running-config | trace | ping | commit |
|---|---|---|---|---|---|---|
| R1 | show | log | run | trace | ping | - |
| R2 | show | log | run | trace | - | commit |
| R3 | show | log | run | trace | - | commit |
| R4 | show | log | run | trace | - | - |
| R5 | show | log | run | trace | ping | - |
Packet captures were taken per STEP on the R1 - R2 link. The LSPs quoted above are No.3 in STEP 1, No.3 in STEP 2 and No.2 in STEP 5.
| STEP | R1 - R2 |
|---|---|
| 0 | pcap |
| 1 | pcap |
| 2 | pcap |
| 3 | pcap |
| 4 | pcap |
| 5 | pcap |
| 6 | pcap |
The redistribute help taken beforehand in a candidate configuration and discarded with abort (nothing committed): precheck
References
| Standard | Title | Summary |
|---|---|---|
| RFC 1195 | Use of OSI IS-IS for Routing in TCP/IP and Dual Environments | The extension that carries IP routes in IS-IS. Section 3.1 defines internal and external metric types, section 3.10.2 the order of level 2 route selection, section 5.2 puts TLV 130 in level 2 LSPs, and section 5.3.5 makes bit 7 of the default metric the metric type. |
| RFC 5302 | Domain-Wide Prefix Distribution with Two-Level IS-IS | Section 2.1 separates route type from metric type, requires routes from TLV 128 and TLV 130 to get the same preference, and requires external metric types to be less preferred regardless of metric value. Section 2.2 allows TLV 130 in level 1. |
| RFC 5305 | IS-IS Extensions for Traffic Engineering | Wide metrics. The TLV 135 control byte in section 4 holds only up/down, sub-TLVs present and prefix length, with no I/E bit. |
| RFC 7794 | IS-IS Prefix Attributes for Extended IPv4 and IPv6 Reachability | Section 2.1 defines the X flag in the Prefix Attribute Flags sub-TLV, set on redistributed prefixes. |
| ISO/IEC 10589:2002 (2nd edition) | Intermediate System to Intermediate System intra-domain routeing information exchange protocol | The IS-IS specification itself. It has no mechanism for carrying IP prefixes, so it says nothing about IP redistribution. |
| Cisco IP Routing Configuration Guide, IOS XE 17.x | IPv6 Routing: Route Redistribution | Describes the four values of metric-type for IS-IS redistribute (external, internal, rib-metric-as-external, rib-metric-as-internal). It does not state the default metric value. |
Related articles
- What Is IS-IS
- IS-IS NSAP Addresses and the NET (System ID)
- IS-IS Level 1 and Level 2 (the hierarchy)
- IS-IS Packet Types and Header Format
- IS-IS Adjacency Formation and States
- IS-IS DIS and the Pseudonode
- IS-IS Network Types (broadcast / point-to-point)
- IS-IS Metrics (narrow and wide)
- IS-IS Authentication (hello-password and lsp-password)
- IS-IS LSPs and the Link-State Database
- The Main IS-IS TLVs
- IS-IS Flooding and LSDB Synchronisation
- IS-IS SPF Computation and Route Selection
- The IS-IS ATT Bit and the Level 1 Default Route
- IS-IS Route Leaking and the Up/Down Bit
- IS-IS Route Summarization
- The IS-IS Overload Bit
- IS-IS Convergence Timers (SPF / LSP Generation)
- IS-IS Redistribution (connected / static)
- IS-IS Redistribution of BGP Routes