Why IS-IS has a hierarchy
A link-state routing protocol works by having every router hold the same LSDB (topology map) and compute SPF from it (IS-IS as a whole is covered in What Is IS-IS). That is excellent for correctness, but it runs into problems as the network grows.
- The LSDB grows in proportion to the size of the whole network
- Every time a link changes anywhere, every router receives an LSP and recomputes SPF
- The cost of SPF rises with the number of nodes and links
IS-IS therefore divides the network into areas and routes in two levels: Level 1 (inside an area) and Level 2 (between areas). Splitting into areas splits the LSDB as well, so a change inside one area no longer triggers SPF in another.
The idea is the same as OSPF’s hierarchy with area 0 at the top, but the way the hierarchy is cut is completely different. That difference is the heart of this article.
Level 1, Level 2 and Level 1-2
IS-IS routers come in three kinds, depending on which level of routing they take part in.
| Kind | Role | Closest OSPF equivalent |
|---|---|---|
| Level 1 (level-1) | Intra-area routing only. Forms adjacencies only with routers in the same area, and holds no individual routes to other areas | Internal router (inside a stub area) |
| Level 2 (level-2-only) | Inter-area routing only. Makes up the backbone. Can form adjacencies with routers in different areas | Backbone-only router |
| Level 1-2 (level-1-2) | Takes part in both. Acts as the boundary between its area and the others | ABR (though it behaves differently, as shown below) |
The default in Cisco implementations is Level 1-2, taking part in both. Restricting a router to one level takes an explicit is-type. Left at the default a router holds both a Level 1 and a Level 2 LSDB and tries to form both kinds of adjacency, so on larger networks it is normal to narrow it to the levels actually needed.
The area boundary runs along a link
Where the area boundary sits is the easiest thing to confuse between IS-IS and OSPF.
An OSPF ABR (Area Border Router) belongs to several areas at the same time. The area is configured per interface, so the boundary runs inside the router.
An IS-IS router gets its area from the Area ID in its NET and belongs to exactly one area (the structure of a NET is covered in NSAP Addresses and the NET) (clause 6.3 of ISO/IEC 10589:2002 says the same: “each system resides in exactly one area”; configuring several NETs merges those areas, so it still belongs to one). Routers in different areas are joined by a Level 2 adjacency, so the boundary runs along the link, not through a router.
That difference feeds straight into design. In OSPF you think “make this router an ABR”; in IS-IS you think “make this link the area boundary”.
Test environment
Five Cisco IOS XR routers (XRd 26.1.1) form a topology in which all three kinds of router appear. R2–R5–R3 is the Level 2 backbone, with a Level 1 area hanging off each end.
| Router | NET | is-type | Role |
|---|---|---|---|
| R1 | 49.0001.0010.0100.1001.00 | level-1 | Internal router of area 49.0001 |
| R2 | 49.0001.0020.0200.2002.00 | (default = level-1-2) | Border of area 49.0001 |
| R5 | 49.0005.0050.0500.5005.00 | level-2-only | Backbone only |
| R3 | 49.0002.0030.0300.3003.00 | (default = level-1-2) | Border of area 49.0002 |
| R4 | 49.0002.0040.0400.4004.00 | level-1 | Internal router of area 49.0002 |
R5 sits in an area of its own, 49.0005. That lets us confirm that a Level 2 only router can form Level 2 adjacencies even though its Area ID matches nobody.
The table says “(default)” for R2 and R3 because level-1-2 is the default value and no is-type line appears in show running-config.
router isis 1
net 49.0001.0020.0200.2002.00
log adjacency changes
address-family ipv4 unicastThe test runs in five stages (STEP 0 to 4). The show output, syslog and running-config collected from all five routers at every STEP are gathered in Verification config and show output at the end of the article.
| STEP | Action | State |
|---|---|---|
| 0 | Initial state | R1–R2 and R3–R4 are Level 1 adjacencies, R2–R5 and R5–R3 are Level 2 |
| 1 | Change R2 to is-type level-2-only | The Level 1 adjacency with R1 can no longer form |
| 2 | Return R2 to the default (level-1-2) | Recovered |
| 3 | Add circuit-type level-1 to R2’s interface facing R5 | No Level 2 adjacency forms and the backbone is cut in two |
| 4 | Remove the circuit-type (final state) | Same as the initial state |
The adjacencies in the initial state look like this: Level 1 within an area, Level 2 across the section where the areas differ.
RP/0/RP0/CPU0:R2#show isis neighbors
Tue Sep 8 05:37:45.086 UTC
IS-IS 1 neighbors:
System Id Interface SNPA State Holdtime Type IETF-NSF
R1 Gi0/0/0/0 *PtoP* Up 22 L1 Capable
R5 Gi0/0/0/1 *PtoP* Up 27 L2 Capable
Total neighbor count: 2RP/0/RP0/CPU0:R5#show isis neighbors
Tue Sep 8 05:38:39.541 UTC
IS-IS 1 neighbors:
System Id Interface SNPA State Holdtime Type IETF-NSF
R2 Gi0/0/0/0 *PtoP* Up 29 L2 Capable
R3 Gi0/0/0/1 *PtoP* Up 22 L2 Capable
Total neighbor count: 2R5 is in area 49.0005, matching neither R2 (49.0001) nor R3 (49.0002), yet both adjacencies form because they are Level 2.
Each level has its own LSDB
Level 1 and Level 2 each keep an independent LSDB. A Level 1-2 router holds both at once.
show isis database prints one table per level.
RP/0/RP0/CPU0:R2#show isis database
Tue Sep 8 05:37:45.886 UTC
IS-IS 1 (Level-1) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R1.00-00 0x00000005 0x2dee 636 /1200 0/0/0
R2.00-00 * 0x00000007 0x2d31 637 /* 1/0/0
Total Level-1 LSP count: 2 Local Level-1 LSP count: 1
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R2.00-00 * 0x00000008 0x70d0 638 /* 0/0/0
R3.00-00 0x00000008 0x7f84 650 /1200 0/0/0
R5.00-00 0x00000006 0x8835 649 /1200 0/0/0
Total Level-2 LSP count: 3 Local Level-2 LSP count: 1| Database | LSPs it holds | Meaning |
|---|---|---|
| Level-1 | R1, R2 | Only the two routers in area 49.0001. No LSP from R3, R4 or R5 |
| Level-2 | R2, R3, R5 | The three routers on the backbone. No LSP from R1 or R4 |
R5, being Level 2 only, holds no Level 1 database at all.
RP/0/RP0/CPU0:R5#show isis database
Tue Sep 8 05:38:39.903 UTC
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R2.00-00 0x00000008 0x70d0 584 /1200 0/0/0
R3.00-00 0x00000008 0x7f84 596 /1200 0/0/0
R5.00-00 * 0x00000006 0x8835 595 /* 0/0/0
Total Level-2 LSP count: 3 Local Level-2 LSP count: 1This is where splitting into areas pays off. When something changes inside area 49.0002, that Level 1 LSP never reaches area 49.0001 and R1 never recomputes SPF.
LSPs are carried in a different PDU type per level.
| PDU type | Number | Seen in the captures for this article |
|---|---|---|
| Level 1 LSP | 18 | Observed |
| Level 2 LSP | 20 | Observed |
| Level 1 CSNP / PSNP | 24 / 26 | Only the PSNP (26) was observed |
| Level 2 CSNP / PSNP | 25 / 27 | Both observed |
Anything marked observed can be confirmed by opening the attached pcap with tshark -V, which prints the number, as in PDU Type: L1 LSP (18). The Level 1 CSNP (24) never had occasion to appear in this topology, so it was not observed (it is captured on a topology that includes a broadcast link in IS-IS Packet Types and Header Format).
How a Level 1 router reaches other areas
A Level 1 router knows only the topology of its own area. So how does traffic reach a destination in another one?
The answer is a default route. A Level 1-2 router advertises the fact that it has a way out to other areas by setting the ATT (Attached) bit in its Level 1 LSP. A Level 1 router that receives it automatically builds a default route towards that router.
This behaviour comes straight from ISO/IEC 10589:2002. Clause 6.3 says that for a packet bound for another area, a Level 1 IS “sends the NPDU to the nearest level 2 IS in its own area, regardless of what the destination area is”, and clause 7.2.9.1 has each Level 1 IS compute the set of attached Level 2 ISs with the lowest total cost. The condition for setting ATT is in clause 7.2.9.2: a Level 2 IS considers itself attached when it can reach at least one other area, or has at least one enabled reachable address prefix, and it then regenerates its Level 1 LSP with LSP number zero to carry the flag. In the IP world, “send it to the nearest Level 2 IS” is implemented as exactly this default route.
The ATT bit is the first digit of the ATT/P/OL column in show isis database (the standard actually has four ATT bits, one per metric type; show prints the one for the Default metric — see What Is IS-IS). In the STEP 0 output above, only R2’s Level 1 LSP reads 1/0/0. R2 has a way out to other areas, so it advertises “I am the exit” inside area 49.0001.
The routes R1 ends up with look like this.
RP/0/RP0/CPU0:R1#show route isis
Tue Sep 8 05:38:54.278 UTC
i*L1 0.0.0.0/0 [115/10] via 10.1.2.2, 00:10:28, GigabitEthernet0/0/0/0
i L1 2.2.2.2/32 [115/10] via 10.1.2.2, 00:10:28, GigabitEthernet0/0/0/0
i L1 10.2.5.0/24 [115/20] via 10.1.2.2, 00:10:28, GigabitEthernet0/0/0/0i*L1 0.0.0.0/0 is the default route created from the ATT bit. Asking for the detail spells it out as a candidate default path.
RP/0/RP0/CPU0:R1#show route 0.0.0.0/0
Tue Sep 8 05:38:54.567 UTC
Routing entry for 0.0.0.0/0
Known via "isis 1", distance 115, metric 10, candidate default path, type level-1
Installed Sep 8 05:28:26.105 for 00:10:28
Routing Descriptor Blocks
10.1.2.2, from 2.2.2.2, via GigabitEthernet0/0/0/0
Route metric is 10
No advertising protos. R1 holds no individual prefix from another area.
RP/0/RP0/CPU0:R1#show route 4.4.4.4/32
Tue Sep 8 05:38:54.731 UTC
% Network not in tableIt still reaches R4 through the default route.
RP/0/RP0/CPU0:R1#traceroute 4.4.4.4 source 1.1.1.1
Tue Sep 8 05:38:55.053 UTC
Type escape sequence to abort.
Tracing the route to 4.4.4.4
1 10.1.2.2 13 msec 5 msec 8 msec
2 10.2.5.5 10 msec 8 msec 9 msec
3 10.3.5.3 20 msec 11 msec 14 msec
4 10.3.4.4 26 msec * 16 msec The second hop, 10.2.5.5, is R5, the Level 2 only router. R1 knows none of the detail, yet its traffic crosses the backbone and arrives at R4 in another area.
The behaviour is close to an OSPF totally stubby area, which holds only intra-area routes plus a default. In IS-IS this is the standard behaviour and needs no configuration. When the ATT bit is set, and how to stop it being set, is covered in The ATT bit and the Level 1 default route.
is-type and circuit-type
Levels can be specified at two granularities.
| Command | Granularity | Meaning |
|---|---|---|
is-type | The whole router | Which levels of routing this router takes part in. Default level-1-2 |
circuit-type | One interface | Which levels of adjacency to form on that interface. Defaults to whatever is-type says |
The Circuit type in an IIH tells the peer
Which levels a router intends to form is carried to the peer in the Circuit type field of its IIH.
| Value | Meaning |
|---|---|
0x1 | Level 1 only |
0x2 | Level 2 only |
0x3 | Both Level 1 and Level 2 |
Capturing the R1–R2 and R2–R5 links at the same time in the initial state produces all three.
ISIS HELLO
.... ..01 = Circuit type: Level 1 only (0x1)
0000 00.. = Reserved: 0x00
SystemID {Sender of PDU}: 0010.0100.1001ISIS HELLO
.... ..11 = Circuit type: Level 1 and 2 (0x3)
0000 00.. = Reserved: 0x00
SystemID {Sender of PDU}: 0020.0200.2002ISIS HELLO
.... ..10 = Circuit type: Level 2 only (0x2)
0000 00.. = Reserved: 0x00
SystemID {Sender of PDU}: 0050.0500.5005The is-type setting becomes the bits in the IIH directly. R2 sends the same 0x3 both towards R1 and towards R5, which also shows that the level is decided by the router’s own configuration and not by its peer.
Narrowing the whole router with is-type (STEP 1)
Changing R2 to is-type level-2-only stops the Level 1 adjacency with R1 from forming.
RP/0/RP0/CPU0:Sep 8 05:44:39.514 UTC: isis[1003]: %ROUTING-ISIS-5-ADJCHANGE : ISIS (1): Adjacency to 49.0001.0020.0200.2002 (GigabitEthernet0/0/0/0) (L1) Down, Area addr/level differ Note that the message reads Area addr/level differ — the area address or the level. It is word for word the message seen in NSAP Addresses and the NET when the Area ID was changed. Here the area is still 49.0001 on both sides and the level is what changed. The log alone cannot tell you which, so you have to check both IS Levels and Manual area address(es) in show isis.
More than the adjacency goes away: the Level 1 LSDB itself disappears.
RP/0/RP0/CPU0:R2#show isis database
Tue Sep 8 05:46:36.843 UTC
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R2.00-00 * 0x0000000a 0xd109 1078 /* 0/0/0
R3.00-00 0x00000009 0x7d85 906 /1200 0/0/0
R5.00-00 0x00000007 0x8636 932 /1200 0/0/0
Total Level-2 LSP count: 3 Local Level-2 LSP count: 1Of the two tables present at STEP 0, the Level-1 one is gone. Disabling a level you do not need really does shrink both the LSDB and the adjacencies.
R1 loses every IS-IS route at this point. With no other Level 1-2 router in area 49.0001 the default route disappears too (show route isis returns % No matching routes found). STEP 2 applied no is-type, which removed the line, returned the router to the default level-1-2, and restored both the adjacency and the routes.
Narrowing one interface with circuit-type (STEP 3)
circuit-type level-1 goes on R2’s interface facing R5 (Gi0/0/0/1) alone. R5 is Level 2 only, so no level remains in common and the adjacency cannot form.
router isis 1
net 49.0001.0020.0200.2002.00
log adjacency changes
address-family ipv4 unicast
!
interface GigabitEthernet0/0/0/1
circuit-type level-1The effect shows up clearly in show isis interface brief. Compare it with STEP 0.
RP/0/RP0/CPU0:R2#show isis interface brief
Tue Sep 8 05:37:45.347 UTC
IS-IS 1 Interfaces
Interface All Adjs Adj Topos Adv Topos CLNS MTU Prio
OK L1 L2 Run/Cfg Run/Cfg L1 L2
----------------- --- --------- --------- --------- ---- ---- --------
Lo0 Yes - - 0/0 1/1 No - - -
Gi0/0/0/0 Yes 1 0 1/1 1/1 Up 1497 - -
Gi0/0/0/1 Yes 0 1 1/1 1/1 Up 1497 - -RP/0/RP0/CPU0:R2#show isis interface brief
Tue Sep 8 05:53:34.269 UTC
IS-IS 1 Interfaces
Interface All Adjs Adj Topos Adv Topos CLNS MTU Prio
OK L1 L2 Run/Cfg Run/Cfg L1 L2
----------------- --- --------- --------- --------- ---- ---- --------
Lo0 Yes - - 0/0 1/1 No - - -
Gi0/0/0/0 Yes 1 0 1/1 1/1 Up 1497 - -
Gi0/0/0/1 Yes 0 - 1/1 1/1 Up 1497 - -The Adjs column is split into L1 and L2, and the L2 entry for Gi0/0/0/1 went from 1 to -. - means the level is not enabled, 0 means it is enabled with no adjacency, and the distinction shows that circuit-type acted on that one interface.
The difference from is-type is clear in the LSDB.
RP/0/RP0/CPU0:R2#show isis database
Tue Sep 8 05:53:34.782 UTC
IS-IS 1 (Level-1) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R1.00-00 0x00000008 0x27f1 863 /1199 0/0/0
R2.00-00 * 0x00000003 0x2d3d 1069 /* 0/0/0
Total Level-1 LSP count: 2 Local Level-1 LSP count: 1
IS-IS 1 (Level-2) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
R2.00-00 * 0x0000000e 0x532c 1069 /* 0/0/0
R3.00-00 0x00000009 0x7d85 488 /1200 0/0/0
R5.00-00 0x00000007 0x8636 514 /1200 0/0/0
Total Level-2 LSP count: 3 Local Level-2 LSP count: 1| Action | R2’s LSDB |
|---|---|
STEP 1 (is-type level-2-only) | The Level 1 table disappears, because the router stopped running Level 1 altogether |
STEP 3 (circuit-type level-1) | Both tables remain, because the router still runs both levels and only one interface was narrowed |
Note that R3’s and R5’s LSPs are still in the Level 2 table at STEP 3. Losing an adjacency does not remove LSPs immediately; they stay until their LSP Holdtime (488 and 514 seconds at this moment) reaches zero.
The capture shows the moment R2’s Circuit type changed on that same link.
ISIS HELLO
.... ..11 = Circuit type: Level 1 and 2 (0x3)
0000 00.. = Reserved: 0x00
SystemID {Sender of PDU}: 0020.0200.2002ISIS HELLO
.... ..01 = Circuit type: Level 1 only (0x1)
0000 00.. = Reserved: 0x00
SystemID {Sender of PDU}: 0020.0200.2002R5 kept sending Level 2 only (0x2) throughout. The instant R2 went from 0x3 to 0x1 no level remained in common and the adjacency could no longer form. Both is-type and circuit-type ultimately surface in the same field of the same IIH.
The Level 2 backbone must be contiguous
The set of routers taking part in Level 2 is the backbone. It corresponds to OSPF’s area 0, except that an IS-IS backbone is not a particular area number but the chain of routers joined by Level 2 adjacencies.
The important constraint is that this Level 2 chain must not be broken. When the Level 2 adjacency between R2 and R5 was lost at STEP 3, the backbone split into an R2 side and an R5–R3 side.
RP/0/RP0/CPU0:Sep 8 05:51:24.667 UTC: isis[1003]: %ROUTING-ISIS-5-ADJCHANGE : ISIS (1): Adjacency to R5 (GigabitEthernet0/0/0/1) (L2) Down, Interface state down The damage reaches inside the area as well. Having lost its Level 2 adjacency, R2 clears the ATT bit, so R1’s default route disappears.
RP/0/RP0/CPU0:R1#show route isis
Tue Sep 8 05:54:31.352 UTC
i L1 2.2.2.2/32 [115/10] via 10.1.2.2, 00:06:33, GigabitEthernet0/0/0/0
i L1 10.2.5.0/24 [115/20] via 10.1.2.2, 00:06:33, GigabitEthernet0/0/0/0
RP/0/RP0/CPU0:R1#show route 0.0.0.0/0
Tue Sep 8 05:54:31.544 UTC
% Network not in table
RP/0/RP0/CPU0:R1#traceroute 4.4.4.4 source 1.1.1.1
Tue Sep 8 05:54:31.816 UTC
Type escape sequence to abort.
Tracing the route to 4.4.4.4
1 1.1.1.1 !N * !N The i*L1 0.0.0.0/0 line from STEP 0 is gone and traffic from R1 to R4 returns !N, network unreachable. Narrowing the level on a single interface stopped inter-area connectivity outright.
Removing the circuit-type at STEP 4 restored the adjacency, the default route and the four-hop path to R4, all back to the initial state.
Note also that most implementations, Cisco’s included, do not support partition repair, so a Level 1 area has to be contiguous for the same reason.
Per-level metrics and route preference
Metrics are computed independently per level. When the same destination is learned at both Level 1 and Level 2, the Level 1 route wins, on the grounds that a route inside your own area is more dependable than one that leaves it.
The topology in this article never presents the same prefix at both levels, so this preference was not verified on real equipment here. How metric values themselves work (narrow versus wide) is covered in Metrics.
Design guidance
Deciding how to cut areas comes down to these points.
- Keep the backbone (Level 2) contiguous. Breaking it costs you inter-area connectivity, as STEP 3 demonstrated
- The area boundary lands on a link. Think in terms of “which link is the boundary”, not “which router is the boundary”
- Level 1 routers hold no detail about other areas. Do not trap somewhere that needs fine-grained route control inside Level 1
- Disable the levels you do not need. Left at the default level-1-2 both the LSDB and the adjacencies double
Verification config and show output
At every STEP the following three files were collected from all five routers, separately per router. The verification config is the ..._run.txt file (the final state being the STEP 4 one).
| File | Contents |
|---|---|
..._show.txt | show version / show interface description / show route / show route isis / show isis / show isis hostname / show isis interface / show isis interface brief / show isis neighbors / show isis neighbors detail / show isis database / show isis database detail / show isis topology / show isis adjacency / show isis adjacency detail / show isis spf-log / show isis lsp-log / show isis statistics / show cef |
..._log.txt | show logging narrowed to that STEP only (STEP 0 alone holds the full history since boot) |
..._run.txt | show running-config at that STEP, i.e. the verification config for that STEP |
In addition, show route isis / show route 0.0.0.0/0 / show route 4.4.4.4/32 / traceroute 4.4.4.4 source 1.1.1.1 were collected from R1 at every STEP as ..._trace.txt.
STEP 0: initial state
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
Also collected: routes and traceroute on R1
STEP 1: change R2 to is-type level-2-only — the Level 1 adjacency with R1 can no longer form
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
Also collected: routes and traceroute on R1
STEP 2: return R2 to the default (level-1-2) — recovered
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
Also collected: routes and traceroute on R1
STEP 3: add circuit-type level-1 to R2’s Gi0/0/0/1 — no Level 2 adjacency forms and the backbone is cut in two
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
Also collected: routes and traceroute on R1
STEP 4: remove the circuit-type (final state) — same as the initial state
| Router | show output | syslog | running-config |
|---|---|---|---|
| R1 | show | log | run |
| R2 | show | log | run |
| R3 | show | log | run |
| R4 | show | log | run |
| R5 | show | log | run |
Also collected: routes and traceroute on R1
There are three capture files.
Download the capture of the R1-R2 link, Level 1 adjacency (isis-level-l1.pcap)
Download the capture of the R2-R5 link, Level 2 adjacency (isis-level-l2.pcap)
Download the capture of the circuit-type change, STEP 3 (isis-level-circuit-type.pcap)
References
| Standard | Title | Summary |
|---|---|---|
| ISO/IEC 10589:2002 (Second Edition) | Intermediate System to Intermediate System intra-domain routeing information exchange protocol | The IS-IS specification itself. This article draws on clause 6.3 (the Level 1 / Level 2 hierarchy and “each system resides in exactly one area”), 7.2.9.1 (a Level 1 IS finding the nearest Level 2 IS), 7.2.9.2 (the conditions for setting ATT) and 9.5 / 9.7 (the Circuit Type field of the IIH). |
| RFC 1142 | OSI IS-IS Intra-domain Routing Protocol | A republication of the ISO 10589 Draft Proposal (1990), now Historic. It must not be referenced in place of ISO/IEC 10589 (see RFC 7142). |
| RFC 7142 | Reclassification of RFC 1142 to Historic | Explains that the Draft Proposal differs considerably from the final standard and that references should be to ISO/IEC 10589:2002, Second Edition. |
| RFC 1195 | Use of OSI IS-IS for Routing in TCP/IP and Dual Environments | The extension for exchanging IP routes at Level 1 and Level 2. |