ISO CLNP, IS-IS and ISO IGRP
Introduction
Connectionless Network Protocol (CLNP) is a protocol stack developed originally as a replacement
for TCP/IP with the anticipation that this OSI suite would take over being based upon the standard OSI
7-layer model. This has not happened, however one protocol within CLNP called IS-IS has become very popular
within the Internet community due to its scalability as the Internet grows.
IS-IS and ISO IGRP
Intermediate System to Intermediate System (IS-IS) was designed as the routing protocol for ISO's
CLNP described in IS0 10589.
IS-IS is a Link State routing protocol akin to OSPF and was developed by DEC for use with DECnet Phase V.
It was originally thought that TCP/IP would gradually make way for the seven layer OSI architecture
so an enhancement to IS-IS was developed called Integrated IS-IS also known as Dual IS-IS
that could route both Connectionless-Mode Network Service (CLNS) as well as IP.
Nowadays, Integrated IS-IS is used primarily to route IP rather than CLNS.
IS-IS is similar to OSPF with the following characteristics:
- A Link State Database is maintained.
- Dijkstra's Algorithm is used to construct a SPF tree.
- Adjacencies are maintained with Hello packets.
- The idea of Areas are used to form a dual-layer structure.
- Addresses can be summarised between areas.
- It is a classless routing protocol.
- A Designated Router is elected for broadcast networks.
- Authentication can be used.
ISO calls a host machine an End System and a router is called an Intermediate System. The protocol
that allows End Systems to connect to Intermediate Systems is End System to Intermediate System (ES-IS)
and this is done by forming adjacencies between the ES and the IS.
In the TCP/IP world the equivalent to the job that ES-IS does is carried out by ARP, IRDP or by setting a default gateway.
An interface that is attached to a subnetwork is called a Subnetwork Point of Attachment. A frame
such as an Ethernet frame is called a Data Link PDU (DLPDU) and a layer 3 packet is called
a Network PDU (NPDU). In OSPF, Link State information is passed around using LSAs which are packets
with an OSPF and an IP header. In ISO link state information is shared using the Link State PDU (LSP)
which is a packet in itself without other headers.
IS-IS splits up the network into areas in a similar way to OSPF.
An IS can be a Level 1 router which has only links to other ISs in the area, or a Level 2 router
which is in or has a link to the backbone, or both level 1 and level 2 which means that the router must maintain
a Link State Database for the backbone area and the area(s) that it is in. An IS can link to maximum of 3 areas.
To send traffic outside an area, a Level 1 router must forward it to a L1/L2 router and then through the backbone to the
destination area.
Addressing
Unlike OSPF, ISs can only sit inside areas, it is the links that traverse areas. For this
reason the Area ID applies to the whole box rather than individual interfaces. In addition, the
IS has a System ID that identifies the box within an area. The Area ID and the System ID help make up
the Network Entity Title (NET) which is the ISO address described in ISO 8348. Two formats of the
Net are detailed below:
The second format is also known as the OSI NSAP format. NSAP means Network Service Access Point and
the NSAP Selector (SEL) (sometimes shortened to 'N selector')
is an attachment to a service at the network layer. Normally the SEL is set to
0x00 meaning that the whole address is a NET. If the SEL is anything other than 0x00, then the address is an NSAP
and is analogous to the combination of IP address and protocol number.
ISO IGRP is an alternative routing protocol to IS-IS and allows the use of routing between
domains and therefore greater scalability of ISO.
There is a third format called the GOSIP NSAP format that is more complex and not covered here.
Given that for the NET the SEL is 0x00, the next 6 bytes are most often the MAC address of the device be it
an ES or an IS and is the System ID. Together the Area ID, System ID and the SEL form the Domain Specific Part (DSP)
which must be unique within a Domain.
The rule is that there must be at least one byte for the Area ID and the maximum size for the Area ID is 13 bytes
giving the maximum NET size of 20 bytes. If a minimum of one byte is required for the Area ID then the minimum
size for the IS-IS NET is 8 bytes. An example is if you are given the area address 0x49de4f, then because
you know that a further 7 bytes will be used for the System ID (6 bytes) and the SEL (1 byte) the total
address size is going to be 10 bytes.
With ISO IGRP as the routing protocol (as opposed to IS-IS)
the Area ID field is shrunk to 2 bytes and the Domain ID is added. This allows further scalability
of IS-IS as domains containing many areas can be created. There must be a minimum of 1 byte for a domain ID.
Now if you are given the Domain/Area ID of 0x49de4f, then you will know that the Domain ID is 0x49 and the Area ID
is 0xde4f.
The IS-IS PDU
The following diagram details the IS-IS Protocol Data Unit fields:
- Intradomain Routing Protocol Discriminator (IRPD) - all IS-IS PDUs have 0x83.
- Length Indicator - length of the header in bytes.
- Version/Protocol ID Extension - Set to 1.
- ID Length - if a value of 1 to 8 then this is the length of the System ID in bytes. If 0 then the
System ID has 6 bytes and if 255 then there is no System ID.
- R - reserved bits set to 0.
- PDU Type - has one of values in the table below indicating the type of PDU.
- Version - set to 1.
- R - reserved bits set to 0.
- Maximum Area Address (MAA) - if the value is between 1 and 254 then this is the number of areas
allowed. If this value is 0 then only three areas are allowed.
The PDU types are detailed in the following table:
PDU |
Type |
Hello |
|
Level 1 LAN |
15 |
Level 2 LAN |
16 |
Point-to-point |
17 |
Link State |
|
Level 1 LSP |
18 |
Level 2 LSP |
20 |
Sequence Numbers |
|
Level 1 CSNP |
24 |
Level 2 CSNP |
25 |
Level 1 PSNP |
26 |
Level 2 PSNP |
27 |
The PDU type will determine the PDU fields which can be variable in length. Typically the PDU field starts with a byte
for a Code indicating the information in Value field. Then there is a byte for the Length of
the Value field and then there is the Value field itself. The Code could be 1 for Aread addresses, 9 for LSP entries etc.
When IS-IS is used just to route TCP/IP, because IS-IS is still an ISO CLNP protocol, CLNS PDUs are still used to communicate
between ISs (routers). Therefore an IS must still have an ISO address. In normal IS-IS the CLNS routes are encapsulated
in IS-IS packets which are in turn encapsulated in CLNP packets. In Integrated IS-IS IP routes are encapsulated in
IS-IS packets and then in CLNP packets.
IS-IS Operation
The Network layer is split into two sub-layers, the Subnetwork-Independent Sublayer that provides consistent
network services to the Transport layer and the Subnetwork-Dependent Sublayer that accesses the services of the Data link layer.
The organisation of the Network layer is specified in ISO 8648.
The Subnetwork-Dependent layer looks after PDU transmission, IS-IS Hello PDUs, adjacency maintenance and the
distinction between OSI PDUs and IP packets.
Subnetwork-Dependent Layer
IS-IS has two types of networks, broadcast and point-to-point.
Adjacencies are formed by the exchange of Hello PDUs every 10 seconds by default. The Hello PDU contains
information on the device, the interface and its capabilities. When neighbours capabilities agree with each other
they become adjacent, the Hello PDUs continue and act as a keepalive.
There are two types of adjacencies, Level 1 and Level 2. ISs that are both Level 1
and Level 2 form both types of adjacencies, however a Level 1 IS will NOT form an adjacency with a Level 2
IS. Level 1 ISs are referred to as Local Routers and communicate with all the ESs in their area.
Level 2 ISs are referred to as Area Routers communicate with other Areas in the Domain.
In a broadcast network
The IS-IS version of the Designated Router is one that represents the network (called a pseudonode) and
advertises links to all the other ISs in the network. All the ISs advertise a single link to the pseudo node
and unlike OSPF, all the ISs form adjacencies with each other, they just do not advertise them as this is
left to the DR. As part of the adjacency status each IS multicasts Link State PDUs (LSP) to each neighbour
while the DR uses Sequence Number PDUs (SNP) to make sure that the flooding process is reliable.
Each IS interface has a priority level between 0 to 127 for both Level 1 and Level 2
(Default being 64). The higher
the priority the more likely the IS will become the DR. In a tie the IS with the highest System ID
becomes the DR. A value of 0 makes the IS ineligible to become a DR.
Once elected the DR creates a LAN ID for the network which is made up of the DR's System ID and the
Pseudonode ID.
There is no such thing as a backup DR. If the current DR fails then a new election occurs and a new set of LSPs
are flooded. This also happens if a new IS is added to a broadcast network with a higher priority.
Subnetwork-Independent Layer
This defines how CLNS delivers packets through the CLNP internetwork via four stages; the Update
Process, the Decision process, the Forwarding process and the Receive process.
The Update process involves constructing the Level 1 and Level 2 link databases by flooding L1 and L2
LSPs. An LSP contains a Remaining Lifetime field, a Sequence Number and a Checksum. The MaxAge starts
at 1200 seconds by default and on reaching 0 the LSP will be remain in the Link State Database (LSD) for a
period of time called the Zero Age Lifetime which has a default value of 60 seconds.
The LSP is regularly flooded out and the originator is forced to resend the LSP if the Remaining Lifetime is zero
so if the checksum is wrong the receiving IS can set the Remaining Lifetime to zero to force a resend.
You can set an LS to ignore errors if you want to to reduce LSP traffic. Errors are picked up from the sequence
numbers in SNPs anyway.
Sequence numbers for LSPs start at 1 and increment by 1 each time. If the sequence number reaches 0xFFFFFFFF
then the IS-IS process must shut down for 21 minutes (MaxAge + Zero Age Lifetime) in order to age out
the LSPs.
Level 1 LSPs are sent to the MAC identifier 0x0180.c200.0014 called AllL1ISs and Level 2 LSPs
are sent to the MAC identifier 0x0180.c200.0015 called AllL2ISs.
When an IS receives an LSP it replies with an SNP as acknowledgement and to maintain database synchronisation.
On point-to-point networks the IS sends a Partial SNP (PSNP) that contains the LSP ID, the sequence number,
the Remaining Lifetime and a checksum. If an IS sends an LSP and a PSNP is not received within the Minimum
LSP Transmission Interval (default of 5 seconds), then the IS sends another LSP.
LSPs are not acknowledged on broadcast networks. The DR is responsible for periodically (default every 10 seconds)
multicasting (to the MAC identifiers AllL1ISs and AllL2ISs)
a Complete SNP (CSNP) which lists every LSP in the LSD.
On receipt of a CSNP the IS compares the LSPs listed with those in its LSD. If its LSD has a extra LSP or a newer
one (identified by the sequence number) then that LSP is multicasted on to the network. If the LSD has an old LSP or
one missing then the IS multicasts a PSNP with a list of the required LSPs. The DR is the one that responds with the
LSPs that are needed.
If an IS cannot store all the LSPs in its LSD due to a memory shortage, a fault or the area being too large
it sets an Overload Bit (OL) (sometines called Hippity Bit in its LSPs to warn the
other ISs not to use this IS as a hop for transit traffic. The other ISs still send routing packets though.
Once the OL bit clears normal routing of traffic resumes. A router running both at Level 1 and Level 2
could be in overload at one level but not the other.
The Decision Process involves using the LSD to calculate a SPF tree for each of Level 1 and Level 2.
The metrics used can include the Default, Delay, Expense (in money terms) and Error (a bit like
Reliability in EIGRP). The values of each metric can range from 0 to 63 and SPF has to be calculated
for each metric if they are used. The cost of a route on a particular interface is just the sum of the metrics being used.
Level 1 route is preffered over a Level 2 route if the metrics are the same.
Level 1 routes are always considered to be Internal i.e. paths to destinations within the IS-IS domain.
Level 2 routes can either be Internal or External (paths to destinations outside of the IS-IS routing domain).
If multiple destinations exist with equal cost and equal level then equal-cost load balancing can operate.
When routing TCP/IP instead of CLNS you need to remember that CLNS is still used to decide the routes between
ISs. TCP/IP is just relevant for one hop as it has no routing information relevant for IS-IS.
RFCs
RFC 1195 describes IS-IS.
RFC 1237 describes OSI NSAP allocation.
|