IS-IS

From testwiki
Jump to navigation Jump to search

Template:Short description Template:About Template:Technical Template:More citations needed Template:OSI model

Intermediate System to Intermediate System (IS-IS, also written ISIS) is a link-state interior gateway protocol (IGP), typically deployed within a single autonomous system, and is used in large enterprise and service provider networks to exchange routing information. The IS-IS protocol is defined in ISO/IEC 10589:2002[1][2] as an international standard within the Open Systems Interconnection (OSI) reference model.

IS-IS operates by flooding link state information throughout a network of routers. Each IS-IS router builds its own link-state database (LSDB) by collecting the flooded link-state information from other routers. Like OSPF, IS-IS uses Dijkstra's algorithm for computing the shortest paths through the network. Packets (datagrams) are then forwarded along the computed shortest paths to their destinations.[2]

History

IS-IS was developed by Digital Equipment Corporation as part of DECnet Phase V.[3]

The Internet Engineering Task Force (IETF) published an IS-IS specification in 1990Template:Ref RFC, but that RFC was later retracted and marked as historicTemplate:Ref RFC because it republished a draft rather than a final version of the International Organization for Standardization (ISO) standard, causing confusion.

The protocol was standardised by ISO in 1992 as ISO 10589 for use between Intermediate Systems rather than end systems or hosts. The purpose of IS-IS was to make the routing of datagrams possible using the ISO-developed OSI protocol stack called Connectionless-mode Network Service (CLNS). IS-IS was developed at roughly the same time that the Internet Engineering Task Force IETF was developing a similar protocol called OSPF. IS-IS was later extended to support routing of datagrams in the Internet Protocol (IP), the network-layer protocol of the global Internet. This extension is known as Integrated IS-IS.Template:Ref RFC

By 2005, IS-IS had become the de facto standard for large service provider network backbones.[4]

IS-IS terminology

The ISO IS-IS standard defines its own terminology for network components, some of which differs from the terms usually found in the industry.

  • Intermediate System: A router
  • Designated Intermediate System: An IS selected to represent other ISs on a shared circuit.
  • End System (ES): A host or device that does not participate in routing.
  • Circuit: A Layer 2 broadcast domain. Such as a point-to-point link, or a LAN.
  • Adjacency: A neighboring IS that an IS exchanges routing information with.
  • Type-length-value (TLV): The link state information is encoded into TLVs and then packed into one or multiple LSPs.[5]
  • Link State PDU(LSP): IS-IS packets used for sharing link state information.[5]

Packet types

IS-IS operates over both broadcast (LAN) and point-to-point network links. Adjacencies are formed between neighboring routers to exchange routing information.[3]

IS-IS Hello PDU (IIH)
IS-IS Hello PDUs are exchanged periodically to establish and maintain adjacencies. On broadcast networks, a Designated Intermediate System (DIS) is elected based on interface priority and system ID. This hello packet will be sent separately for Level 1 or Level 2. There are three IS-IS hello packets depending on the circuit type.
  • LAN L1 (PDU type 15)
  • LAN L2 (PDU type 16)
  • P2P (PDU type 17). On point-to-point links, there are no separate hello packets per level like there are on broadcast links. Unlike OSPF, IS-IS does not require matching hello intervals, although significant mismatches may affect adjacency stability.[6]
Link State PDU (LSP)
This contains the actual routing information. The LSP contains a number of fields called type–length–values (TLVs), which contain the routing data. Each LSP is identified by an LSP ID and consists of a System ID, Pseudonode ID and Fragment ID. In this example LSP with ID 1921.6820.0002.02-01,
  • 1921.6820.0002 is the System ID (that generated this LSP),
  • 02 is the Pseudonode ID,
  • 01 is the Fragment ID.
If the Pseudonode ID is equal to zero, then it represents a real intermediate system. Any non-zero value means that the LSP is generated by a DIS (Pseudonode).
If an LSP exceeds the maximum transmission unit (MTU), it is fragmented into multiple LSPs distinguished by a Fragment ID. Fragment numbering begins at zero; an unfragmented LSP consists of a single fragment (ID 0), while additional fragments are assigned incrementing identifiers.
Complete Sequence Number PDU (CSNP)
The Complete Sequence Number PDU (CSNP) is sent by the Designated Intermediate System (DIS) at regular intervals, typically every 10 seconds.[7] It contains a summary of Link State PDUs (LSPs), including sequence numbers and checksums.
Partial Sequence Number PDU (PSNP)
If a router detects discrepancies between its link-state database and a received CSNP, it sends a PSNP requesting the missing or updated LSPs.

IS-IS addressing and NET

Unlike most IP routing protocols, IS-IS operates directly over Layer 2 rather than relying on Layer 3 for transport, and does not use IP addresses to identify interfaces.

Instead, IS-IS identifies interfaces using Layer 2 addresses (SNPA, e.g. MAC addresses on Ethernet), and identifies routing nodes using ISO network addresses.

Each Intermediate System is assigned a Network Entity Title (NET), which is an NSAP address used to identify the router within the IS-IS routing domain. A NET is an NSAP used as a Network Entity Title where the NSEL field is set to zero.

While not required by the protocol, a common operational practice is to set the System ID field to a unique IPv4 address from one of the router’s loopback interfaces.

On a single intermediate system there can be up to 3 NET addresses. This may be useful during migration of an IS from one area to another.

The NET consists of an Area, System ID and NSEL field. Area itself consists of an AFI (Address Family Identifier) and an Area ID.

Area can have a variable length of 1–13 bytes. The System ID is six bytes long and the NSEL is one byte.

As an example, the fields of the ISO Network Address "49.0100.1921.6821.1138.00" are as follows:

  • 49 is the AFI. 49 specifically represents the "private address space", similar to RFC1918 for IPv4.,
  • 0100 is the Area ID,
  • 49.0100 is the Area,
  • 1921.6821.1138 is the System ID,
  • 00 is the NSEL, which must be zero. Routers will not form adjacencies with routers with a non-zero NSEL in their NET, as that field is only used by the NSAP.

Hostname resolution

When administering large networks, using IP addresses directly can be inconvenient.

In large networks, routers are often identified using hostnames such as "if-bundle-22-2.qcore1.pye-paris.as6453.net", which may encode location and topology information.

In many routing protocols, routers are identified by IP addresses and hostnames are resolved externally using DNS. Because IS-IS operates directly over the data link layer rather than over IP, hostname mappings can be distributed within the protocol itself.

IS-IS link-state PDUs may include Type-Length-Value 137 (TLV 137), which advertises a hostname associated with an IS-IS System ID derived from the router's NET.[8]

Areas and levels

Similar to OSPF, IS-IS employs the concept of areas to divide the network, reducing the overall burden on routers in the network, by only requiring them to have complete link-state information for their area.

In IS-IS, ISs operate at Level 1, Level 2 or Level 1/Level 2.

  • Level 1 routers are internal to an area, and only maintain a Link State Database (LSDB) for that area.
  • Level 2 routers form the backbone of an IS-IS network, and route traffic between areas. They maintain a separate Level 2 LSDB for inter-area routing. Level 2 routers must be contiguous, meaning the network of Level 2 routers must be fully internally routable without crossing into different areas.
  • Level 1/Level 2 routers are on the boundaries between Level 1 and Level 2 routers, and participate in both intra-area and inter-area routing, maintaining separate Level 1 and Level 2 LSDBs.

When a Level 1 router needs to send traffic to a destination not within its area, it directs it to a Level 1/Level 2 router.

Level 1/Level 2 routers advertise their status as boundary routers by setting the Attached Bit (ATT), in its Level 1 LSP. Routers that receive this LSP will add a default route to the origin of the LSP.

External routes may be redistributed into Level 1 areas via Level 1/Level 2 routers. By default, external routes are not advertised into the Level 2 backbone; redistribution into Level 2 must be explicitly configured on Level 1/Level 2 routers.

Attribute bits in LSPs

IS-IS LSPs contain information about the LSP itself in the attribute block of the LSP header, which is 8 bits long.

  • P bitTemplate:DashPartition repair bit, 8th bit, indicates if a partitioned Level 1 area can be repaired (joined) over Level 2 area. Modern deployments of IS-IS generally do not support partition repair, and will not set the P bit.
  • ATT bitTemplate:DashAttached bit, 7th–4th bits, indicates if the originating router is attached to another area.
    • If these bits are set by the Level 1/Level 2 router in its Level 1 LSP, other routers in the Level 1 area will automatically generate a default route to the originator.
    • There are 4 ATT bits which represent the Error, Expense, Delay and Default metrics respectively.
    • Typically, only the 4th (default) ATT bit is used, as typical IS-IS networks only use the Default (Cost) metric.
  • OL bitTemplate:DashOverload bit, 3rd bit, indicates if the router is overloaded.
    • If this bit is set, then this router will not be forwarded traffic. However, it will be still reachable.
    • The overload bit can be set automatically by a router under heavy load or intentionally by an administrator.
    • Operators commonly use the overload bit during maintenance to temporarily prevent transit traffic from being forwarded through a router.
    • The overload bit may also be set while a router waits for other dependent protocols (such as BGP) to establish neighborship, before allowing traffic to be routed to itself. This may be desirable because IS-IS converges much faster than some dependent protocols, and a router that becomes available before another dependent routing protocol converges, the router could become a traffic black hole.
    • An example of this behavior is a provider edge router running an MPLS VPN with IS-IS and BGP. After the router boots, it establishes IS-IS adjacency before it finishes establishing BGP neighborship with other routers. When BGP is finished establishing neighborship, the overload bit is cleared and this router joins the MPLS VPN.
  • IS type bitsTemplate:Dash2nd and 1st bits, indicate the IS type of the originator. It can be Level 1 only, Level 2 only, or Level 1/Level 2.

Wide metrics

When IS-IS was initially introduced, the default type–length–value (TLV) formats for IS reachability (TLV 2) and IP reachability (TLVs 128 and 130) used a 6-bit link metric field with a maximum value of 63 and a 10-bit path metric field with a maximum value of 1023.

As network scale and link speeds increased, these metric limitations became restrictive for larger topologies.

To address this, new TLVs were introduced: TLV 22 for extended IS reachability and TLV 135 for extended IP reachability.

These extensions increase the supported link metric to 24 bits (maximum value 16,777,215) and the path metric to 32 bits (maximum value 4,294,967,295).

Metrics without TLV 22 and 135 are called narrow, and metrics that include them are called wide.[9]

Wide and narrow metrics may be configured independently on a per-level basis.

Adjacency formation

Compared to OSPF, IS-IS adjacency formation rules are simpler and depend primarily on the router's level.

  • Level 1 routers form adjacencies only with other Level 1 or Level 1/Level 2 routers within the same area.
  • Level 2 routers form adjacencies with other Level 2 or Level 1/Level 2 routers regardless of area.
  • Level 1/Level 2 routers may form Level 1 adjacencies with Level 1 or Level 1/Level 2 routers in the same area, and Level 2 adjacencies with Level 2 or Level 1/Level 2 routers regardless of area.

Level 1 adjacencies require matching area addresses, whereas Level 2 adjacencies are formed independently of area membership.

Broadcast segments and designated intermediate system

Similar to OSPF, all routers in a broadcast domain need to form adjacencies and exchange LSPs, resulting in there being n2 adjacencies for each router in the domain.

In order to overcome this issue, on each LAN segment a designated intermediate system (DIS) is elected. The router with the highest priority and System ID is elected as the DIS, but if another router is connected with a higher priority (or higher System ID if the priorities are equal), it will be elected as the new DIS.

Instead of each router forming an adjacency with every other router in the broadcast domain, each router forms an adjacency with just the DIS, and the DIS becomes responsible for relaying LSPs to the subordinate routers, in a hub-and-spoke topology.

An elected DIS router is a pseudonode, which uses the resources (including System ID) of one real router.

LSPs originated by a DIS always have a non-zero Pseudonode ID field.

The DIS will send periodic CSNPs on the LAN segment and reply to PSNPs from other routers.

If the DIS stops communicating, a new DIS will be elected in the segment.

Authentication

IS-IS supports authentication of Protocol Data Units (PDUs), including IIH (IS-IS Hello), Link State PDUs (LSPs), and Sequence Number PDUs (SNPs). Authentication may be configured on a per-interface and per-level (Level 1 or Level 2) basis.

Authentication mechanisms include simple password authentication and cryptographic authentication using HMAC-MD5, as well as HMAC-SHA variants.

IPv6 support and multi-topology

Unlike OSPF, which operates at Layer 3, IS-IS encapsulates its PDUs into Layer 2 frames, and does not depend on Layer 3 protocols, such as IPv4 or IPv6.

To support IPv6 routing information, TLV 232 for IPv6 interface address and TLV 236 for IPv6 reachability were added.

To display supported Layer 3 protocols, also called NLPID (Network Layer Protocol ID), TLV 129 is used. Here, IPv4 has code of 0xCC, while IPv6 has a code of 0x8E.

There might be an issue if the IPv4 and IPv6 topologies do not overlap. This could happen due to misconfiguration or lack of support for IPv6 by routers in the network. For these situations, multi-topology support is added to IS-IS.

TLV 229 was added to indicate support for multi-topologies, such as IPv4 unicast and IPv6 unicast.

If multi-topology is enabled, IS-IS will calculate separate SPF trees for IPv4 and IPv6. This means twice the resource usage, but prevents traffic black holes.

When multi-topology is enabled, then IS-IS will use TLV 222 for Multi-topology IS reachability, TLV 235 for Multi-topology IP reachability and TLV 236 for Multi-topology IPv6 reachability.

IS-IS path selection

IS-IS computes the shortest paths by running Dijkstra's algorithm independently on each Link-State Database (LSDB): once for Level 1 and once for Level 2. Each router builds its own shortest-path tree from its position in the network. Path cost is the sum of the individual link metrics along the path; the lowest cost wins.

Equal-cost multipath

When multiple paths to the same destination have the same cost, IS-IS can install all of them in the routing table for load balancing. This capability is known as equal-cost multipath (ECMP).

Route preference

When a router learns the same destination prefix from multiple sources - for example in both its Level 1 and Level 2, or from both internal and external routes - IS-IS applies a fixed preference order.

With narrow metrics (TLVs 128 and 130), the preference order is:[10]

Preference Route types
1 L1 intra-area (internal metric); L1 external (internal metric)
2 L2 intra-area (internal metric); L2 external (internal metric); L1→L2 inter-area (internal metric); L1→L2 inter-area external (internal metric)
3 L2→L1 inter-area (internal metric); L2→L1 inter-area external (internal metric)
4 L1 external (external metric)
5 L2 external (external metric); L1→L2 inter-area external (external metric)
6 L2→L1 inter-area external (external metric)

Wide metrics

Wide metrics (TLV 135 for IPv4, TLV 236 for IPv6) do not support the internal/external metric-type distinction. RFC 7775 defines a separate preference order for these TLVs:[11]

Preference Route types
1 L1 intra-area; L1 external
2 L2 intra-area; L2 external; L1→L2 inter-area; L2→L2 inter-area
3 L2→L1 inter-area; L1→L1 inter-area

BFD support

IS-IS uses Hello packets (IIH) to share information about routers and to establish adjacencies. Hello packets also help detect faults between neighboring routers.

Fault detection can be sped up by lowering the hello packet transmission intervals, but this increases CPU load.

As an alternative, BFD can be used. BFD is a low-overhead fault detection protocol that operates independently of the routing protocol and can provide sub-second detection with minimal impact on the CPU.

Other uses

IS-IS is the base for the control plane in Shortest Path Bridging (SPB). SPB enables equal-cost multipath routing among Ethernet switches in a mesh topology: Ethernet frames are forwarded along multiple load-balanced, service-specific paths, which are all equally the shortest. To support this, SPB extends IS-IS with new TLVs.Template:Ref RFC

References

Template:Reflist