Tuesday, May 5, 2015

IS-IS Basics


Intermediate System-to-Intermediate System Protocol is an intradomain Open System Interconnection (OSI) dynamic routing protocol specified in International Organization for Standardization (ISO) 10589. 


 The protocol is designed to operate in OSI Connectionless Network Service (CLNS). Data is carried using the protocol specified in ISO 8473. 


Now, a little about CLNS:


Let's start with the acronyms. CLNS (Connection-Less Network Service) in combination with CLNP (Connection-Less Network Protocol) is the ISO (International Standards Organization) equivalent to IP.



It Features:



A two-level hierarchy is used to support large routing domains.


A large domain may be administratively divided into areas.


Each system resides in exactly one area.


Routing within an area is referred to as Level 1 routing.


Routing between areas is referred to as Level 2 routing.


A Level 2 Intermediate System (IS) keeps track of the paths to destination areas.


A Level 1 IS keeps track of the routing within its own area. For a packet destined for another area, a Level 1 IS sends the packet to the nearest Level 2 IS in its own area, regardless of what the destination area is. Then the packet travels via Level 2 routing to the destination area, where it may travel via Level 1 routing to the destination. It should be noted that selecting an exit from an area based on Level 1 routing to the closest Level 2 IS might result in suboptimal routing.


On broadcast multiaccess media, a Designated Intermediate System is elected and will conduct the flooding over the media. The DIS is analogous to the designated router in OSPF Protocol, even though the details including election process and adjacencies within a multiaccess media differ significantly.The DIS is elected by priority. The highest priority becomes the DIS. This is configurable on an interface basis. In the case of a tie, the router with the highest MAC address will become the DIS. 


But what actually is a IS-IS DIS and what does it do?


On broadcast multi-access networks, a single router is elected as the DIS. There is no backup DIS elected. The DIS is the router that creates the pseudonode and acts on behalf of the pseudonode.


Two major tasks are performed by the DIS:

  • Creating and updating pseudonode LSP for reporting links to all systems on the broadcast subnetwork. See the Pseudenode LSP section for more information.

  • Flooding LSPs over the LAN.

    Flooding over the LAN means that the DIS sends periodic complete sequence number protocol data units (CSNPs) (default setting of 10 seconds) summarizing the following information:

  • LSP ID

  • Sequence Number

  • Checksum

  • Remaining Lifetime

    What is a PSEUDONODE?

    In order to reduce the number of full mesh adjacencies between nodes on multiaccess links, the multiaccess link itself is modeled as a pseudonode(Virtual Node). The DIS creates the pseudonode. All routers on the broadcast link, including the DIS, form adjacencies with the pseudonode.

    pseodonode.gif

In IS-IS, a DIS does not synchronize with its neighbors. After the DIS creates the pseudonode for the LAN, it sends hello packets for each Level (1 and 2) every three seconds and CSNPs every ten seconds. The hello packets indicate that it is the DIS on the LAN for that level, and the CSNPs describe the summary of all the LSPs, including the LSP ID, sequence number, checksum, and remaining lifetime. The LSPs are always flooded to the multicast address and the CSNP mechanism only corrects for any lost protocol data units (PDUs). For example, a router can ask the DIS for a missing LSP using a partial sequence number packet (PSNP) or, in turn, give the DIS a new LSP.


CSNPs are used to tell other routers about all the LSPs in one router's database. Similar to an OSPF database descriptor packet, PSNPs are used to request an LSP and acknowledge receipt of an LSP.


 


Interestingly enough is the fact that having two different NET addresses under the IS-IS configuration will make the neighbor show up via the "show clns neighbor" however that is not the case for the "show isis neighbor" command. Also, the neighbor would show up as ES-IS as depicted below:


 


 NET Address format:



Is used to identify IS-IS routers in a network by describing an area ID and a system ID.

 

 A NET must begin with a single octet, e.g. 47.xxxx.xxxx.xxxx.xx


 Every IS-IS router must have at least one NET, but may have multiple 


 Although there are multiple ISO formats for the NET, only the ISO NSAP (Network Service Access Points) format is relevant.

Example of an ISO NET using the NSAP format:


 49.0001.0000.0001.0010.00

 49  - First portion of the area ID, a.k.a. the AFI (Authority and Format Indicator).

 0001 - Second portion of the area ID

 0000.0001.0010 - System ID

 00 - N-selector  (always 0)


In ISO terminology, packets are referred to as Protocol Data Units (PDUs). There are 3 categories of IS-IS packets:

  • IS-IS Hello Packets (IIHs): These packets establish and maintain adjacencies between IS-IS neighbors. One interesting fact is that having mismatched hellos between two IS-IS neighbors will not prevent the adjacency from coming up nor exchange LSPs.

  • Link State PDUs (LSPs): These packets are responsible to distribute routing information between IS-IS nodes.

  • Sequence Number PDUs (SNPs): These packets control the distribution of LSPs. SNPs provide mechanism to synchronize LSDBs between routers in the same area.

Each packet category consists of various types of packets; each type is assigned a Type Number. All IS-IS packets are multicast on LAN. For Level-1 ISs, the packets are sent to 01-80-C2-00-00-14, and for Level-2 ISs, the packets are sent to 01-80-C2-00-00-15.