Routing domain
- Network in which all routers run IS-IS routing protocol
IS-IS areas
- Network domain can be segmented => areas
- Defined as stubs
- All routers in the area requires to be configure in same way - either CLNP or IP
- Level-1 routers are routing traffic between areas via closest Level-2 router
Segmentation benefits
- Hides the topology between different levels
- Change in the area doesn’t require SPF calculation in other areas
- Decrease the size of LSPDB
- Allows summarization between areas
NSAP
- Network Service Access Point
- Identify router
- Up to 160 bits (20 bytes)
- Two main components: IDP (initial domain part) and DSP (domain specific part)
- Simplified NSAP
- Area ID - First byte is AFI
- SysID - each IS-IS has it unique
- N-Selector - Refers to network service user/transport protocol/routing layer
- AFI 49 - designated to local private use
- System ID
- each node in the same area has to have unique SysID
- All nodes in the same IS-IS domain must be of the same length
- Up to 3 NSAP addresses per node all of which has to have same SysID with different area prefix
NET
- Unique AreaID + SysID + N-Selector
- NSAP address with N-Selector 0
Multi-homing
- Multiple NET addresses on the same router differentiated only by the Area ID
- Allows the router to multihome to the multiple areas defined
- Use case
- Merging multiple areas into single area
- Splitting areas
- Renumbering
- Router act as area border router interconnecting multiple isolated areas
- Multi-homing vs. Multi-area
- Multi-homing § Multiple areas under single process with single NETs with different areaID
- Multi-area § Multiple areas under multiple processes with multiple NETs § Supporting multiple independent Level-1 areas § Connecting multiple isolated areas to L-2 backbone
Level-1 only routers
- routers are only aware of local topology - all nodes in the area
- They depend on Level-2 routers for access to other areas
- Routing all traffic for other areas to closest L2 router
- Default route via ‘attached’
Level 1-2 routers
- Maintain two separate LSDB for Level 1 and Level 2
Level-2 routers
- Backbone
- L2 backbone must be contiguous to ensure the connectivity between endpoints
- Propagate default route between L2 routers
- default-information originate
DIS
- Designated Intermediate System
- Broadcast/Multicast network only
- Single router is designated
- Election of DIS based on highest iface priority with the highest SNPA address
- No backup of DIS
- DIS creates Pseudonode
- Default hallo interval 3.3s
- Sends CSNPs (on behalf of Pseudnode) every 10 seconds
Pseudonode
- All IS-IS routers connected over a common LAN multicast hellos to well-known IPs
- Reduce the number of adjacencies between nodes
- All routes on the broadcast link including DIS form adjacencies with the pseudonode
- Created by DIS
- Separate DIS for L1 and L2 routing
- Routers on LAN only send advertisements to the pseudonode
- LSPs generated by DIS on behalf of Pseudonode
- Responsibilities
- Generating pseudonode link-state packets
- Carrying out flooding over the LAN
IS-IS packets
- packet header + optional variable-length fields
- Hello packets (IIH)
- Establish and maintain adjacency
- Cisco router - hello interval 10 sec
- DIS router - 3,3 s
- Hello multiplier - default 3
- Hold-time = hello multiplier x hello interval => 30 sec § If router doesn’t receive IIH for 30 sec=>adj is down
- Immediate transmission - changes in network conditions=>change of TLV
- Election/resignation from LAN DIS
- Link-state packets (LSP)
- Distribute routing information
- Sequence number packets (SNP)
- Control distribution of link-state protocol
- Ensure reliability of the flooding process
IS-IS Adjacencies
- Requirements to form adjacency
- Match MTU
- Consistent length of SysID on all routers across the domain § On Cisco 6-byte
- Maximum number of area addresses supported must match § Default 3
- Based on Area ID in IIH receiving router will decide what type of adjacency this will be
- Two routers with non-matching Area ID can form Level 2 adjacency only
- Hello packets are padded to the MTU size
- P2P IIH - only over p2p links
- Do not contain IS Neighbors TLV (Type 6) => impossible to do 3way handshake
- L1 LAN IIH - broadcast links, L1 adjs
- L2 LAN IIH - broadcast links, L2 adjs
- Successful formation adj => exchange of LSP + SNP
- Circuit ID - The circuit ID is a one-octet number that the router uses to uniquely identify the IS-IS interface
IS-IS Adjacencies - P2P
- P2P (ISO 10589) - Two-way IS handshake
- Initialized by Intermediate System Hello (ISH) and followed by P2P IIH
- Newly received IIH checking SysID against adj DB
- Receiving router sets state to ‘init’ and send the new neighbor an IIH in response.
- Check MTU, Check Circuit Type field, Length of SysID, max number of areas, Area ID
- Authentication
- P2P (RFC 5303) - 3-way IS handshake
- Addition of TLV 240
- If system doesn’t supports this it can ignore TLV 240
- SNPA - Subnetwork point of addresses § MAC address on a LAN § local data link connection identifier (DLCI) on a Frame Relay network
- Each router sends PSNP to ack the receipt of LSP
- Both router change state to ‘up’ only after confirming there is bidirectional communication=>hellos are reaching other router § Router know that hellos are reaching neighbor when its Circuit ID (SNPA) is listed in neighbor TLVs.
Sequence
- R1 sends out P2P hello packet. Set TLV 240 ‘adj down’ and includes Circuit ID (SNPA)
- R2 sends out P2P hello packet. Set TLV 240 ‘adj down’ and includes Circuit ID(SNPA)
- R1 recieves R2 P2P hello and verifies: form adj (L1, L2, L1/L2), authentication, area ID, SysID, TLV 129 (OSI or IP), subiface on shared subnet, MTU
- R2 recieves R1 P2P hello and verifies: form adj (L1, L2, L1/L2), authentication, area ID, SysID, TLV 129 (OSI or IP), subiface on shared subnet, MTU
- R1 creates new record in tables and sends out P2P hello packet. TLV240 set to ‘init’ with R2 circuit ID.
- R2 creates new record in tables and sends out P2P hello packet. TLV240 set to ‘init’ with R1 circuit ID.
- R1 receive the packet and check circuit ID. If it is OK state to ‘up’
- R2 receive the packet and check circuit ID. If it is OK state to ‘up’
- Both routers send CSNP
- Each LSP has been ack by PSNP
- R1 and R2 runs Dijkstra SPF algorithm against DB
IS-IS Adjacencies - Broadcast
- Difference from P2P
- Process is not triggered by receipt of IIH, interface sends IIH as soon as it is enabled on the interface
- Broadcast medium = pseudonode
- LAN broadcast their hellos to well-known L1 and L2 MAC addresses
- 01-80-C2-00-00-15 for Level 2 adjacencies (AllL2ISs)
- 01-80-C2-00-00-14 for Level 1 adjacencies (AllL1ISs)
- Two way communication confirmed by 3-way handshake similar - the presence of IS neighbors, similar to TLV 240
Sequence
- R1 send out IIH packet with locally defined LAN ID (consisting SysID and unique circuit ID)
- R1 starts to listen to IIH
- DIS election - whether it is eligible to be L1 or L2 DIS
- R2 send out IIH packet with locally defined LAN ID (consisting SysID and unique circuit ID)
- R2 starts to listen to IIH
- R1 receive R2 IIH without IS neighbor => creates adj with state ‘init’
- R2 receive R1 IIH without IS neighbor => creates adj with state ‘init’
- R1 send out IIH packet with locally defined LAN ID (consisting SysID and unique circuit ID) and with IS neighbor (R2)
- R2 receive IIH and put adj to ‘up’
- LSPs exchanged
Link-state packets
- LSP contains - area info, adjacent routers, IP subnets, Metric information, authentication information
- LSP Level1 PDU type - 18
- LSP Level2 PDU type - 20
- Header fields following PDU length are LSP specific
- Remaining lifetime
- 2 threshold values - maxage and refresh
- LSP maxage - 20 minutes
- LSP refresh - 15 minutes
- When received time starts count down
- When LSP age reach LSP refresh -> source will regenerate LSP
- LSP ID
- Distinguish LSPs from each other
- To identify originating router
- SysID + Pseudonode ID + LSP number
- Pseudonode ID - associated with multicast link generated by DIS on the link, ID=0 generated by router
- Seq number - starts with 1, increased by 1 when new LSP is generated
- Checksum - for checksum remaining lifetime field is removed
- Partition - not used
- Attached - viz Area
- Overload
- Setting overload bit during maintenance route the traffic around the router
- New routers use overload bit after they boot up to ensure they won’t be blackholing the traffic
- IS Type - L1 or L2
- LSP Attached
- indicate attachment to other area
- Set by L2 routers in their L1 LSPs to indicate to same area L1 routers that they are connected in other areas
- Attribute ‘attached’ relevant only in L1 routing
- All routing information are bundled in single LSP and fragmented if needed
- Maximum size 1492 bytes
Level-1 LSPs TLV
- Area Address
- Lists the set of area addresses configured on router
- IS Neighbors
- List of adjacent Level 1 routers
- Different from hello packet TLV - it carries metric
- ES Neighbors
- Available only in Level-1 LSP
- Lists adjacent Level 1 routers and end systems
- IP Internal Reachability Information
- List of DIRECTLY connected IP prefixes
- Each prefix assigned metric value
- Default routes are not advertised in L1 LSPs
- Router will interpret ‘attached bit’ as a route of last resort (GW)
TLV | Type | Source | |
---|---|---|---|
Area Address | 1 | ISO 10589 | |
Intermediate System Neighbors | 2 | ISO 10589 | |
End System Neighbors | 3 | ISO 10589 | |
Authentication Information | 10 | ISO 10589 | |
Extended Intermediate System Reachability | 22 | RFC 5305 | |
IP Internal Reachability Information | 128 | RFC 1195 | |
Protocols Supported | 129 | RFC 1195 | |
IP External Reachability Information | 130 | RFC 1195 | |
IP Interface Address | 132 | RFC 1195 | |
Extended IP Reachability | 135 | RFC 5305 | |
Hostname | 137 | x |
Level-2 LSPs TLV
- Prefix Neighbors - relevant only for ISO CLNP
- IP External Reachability Information
- IP routes obtained from other routing protocols - redistributed
TLV | Type | Source | ||
---|---|---|---|---|
Area Address | 1 | ISO 10589 | ||
Intermediate System Neighbors | 2 | ISO 10589 | ||
Partition-Designated Level 2 Intermediate System | 4 | ISO 10589 | ||
Prefix Neighbors | 5 | ISO 10589 | ||
Authentication Information | 10 | ISO 10589 | ||
Extended Intermediate System Reachability | 22 | RFC 5305 | ||
IP Internal Reachability Information | 128 | RFC 1195 | ||
Protocols Supported | 129 | RFC 1195 | ||
IP External Reachability Information | 130 | RFC 1195 | ||
Interdomain Routing Protocol Information | 131 | RFC 1195 | ||
IP Interface Address | 132 | RFC 1195 | ||
Extended IP Reachability | 135 | RFC 5305 |
IS-IS Metrics
- TLV containing metric
- ES Neighbors (3)
- IS Neighbors (2)
- Prefix Neighbors (5)
- IP Internal Reachability (128)
- IP External Reachability (130)
- Extended Intermediate System Reachability TLV (22)
- To replace IS Neighbors (2)
- Support larger metrics
- Using sub-TLVs => Support MPLS TE
- Extended IP Reachability TLV (135)
- To replace IP Internal Reachability Information (128)
- Utilize QoS metric fields
- Support larger metrics
- Using sub-TLVs => Support MPLS TE
- NEW up/down bit - set when route propagated L2=>L1
- Preventing from propagating the route back to L2
- Default metric = cost
- default metric has a possible range of 0-63
Sequence Number Packets (xSNP)
- Complete sequence number packets (CSNP)
- Contains summaries of all known LSPs in router DB
- Fields
- Source ID - SysID router generated
- Start LSP ID
- End LSP ID
- LSP Entries - Collection of LSP summaries
- Auth info
- Partial sequence number packets (PSNP)
- Contains subset of LSPs in router DB
- P2P links uses PSNP as ack receipt
- PSNP used to request specific copies for P2P and Bcast links
- Fields
- Source ID - SysID router generated
- LSP Entries - Collection of LSP summaries
- Auth info
- Separate CSNP/PSNP generated for L1 and L2 LS DB
- CSNP/PSNP contains
- LSPID
- Sequence Number
- Checksum
- Remaining lifetime
- CSNP used to check consistency of their LSPDB
- On broadcast domain CSNP are sent periodically by DIS
- LSP and CSNPs are broadcasted to addresses AllL1IS for Level 1 LSPs and AllL2IS for Level 2 LSPs
Link-State Database
- Efficient collection of routing information
- Information elements of the database => LSP
- Process of exchanging LSP is called flooding
- LSPs learned from neighbors from within the area are stored in L-1 Link-State database
- All routers in the area will have the same L-1 database
- Each router will run SPF over its database
- L1 LSPDB - routing within the area
- L2 LSPDB - routing between L1 areas
Routes
- Intra-area route
- Routes learned from another router
- Interarea route
- Learned from another L2 router which has been learned from L1 router
- Learned from another L2 router with different area address
- External route
- Routes redistributed into IS-IS domain
Path Selection
- Identifying route with the lowest path metric for each stage:
- L1 intra-area routes
- L1 external routes with internal metrics
- L2 intra-area routes
- L2 external routes with internal metric
- Leaked routes (L2 –> L1) with internal metrics
- L1 external routes with external metrics
- L2 external routes with external metric
- L1 –> L2 interarea external routes with external metrics
- Leaked routes (L2 –> L1) with external metrics
ECMP
- Default maximum are for IOS 4 routes and IOS XR 16 routes
Interface Metrics
- Narrow metrics
- Does not scale very well for design with different bandwidths
- Value 1 - 63
- Included in IS Neighbor TLV (2) and IP Reachability TLV (128 and 130)
- Default Metric 10
- Default for IPv4
- Wide Metrics
- Provides better scalability
- 24 bits = Value between 1 and 16,777,214
- Included in Extended IS Reachability (22) and Extended IP Reachability (135)
- Concept of sub-TLVs for MPLS TE
- Enabling different type of metric on each side will cause an issues => TLVs are independent from each other
Summarization
- Only for routes
- L1 routes => L2 backbone
- L2 routes leaking => L1
- Redistribution routes into area
- No summarization between routers in L2 area
- No summarization between routers in L1 area
- Default metric for summarized route = smallest metric of any matching prefix
- If the route with lowest metric disappear it will regenerate new summarization route with new metric
Prefix Suppression
- To minimize routing tables
- Not advertising interface subnets
- IOS
- no isis advertise-prefix
- Advertise-passive only
- IOS XR
- Suppresed - per interface
Passive interface
- Making the network interface passive still adds the network segment into the LSPDB, but prohibits the interface from forming IS-IS adjacencies.
- A passive interface does not send out IS-IS traffic and will not process any received IS-IS packets.
Resources
https://tools.ietf.org/html/rfc5305
IP Routing on Cisco IOS, IOS XE, and IOS XR: An Essential Guide to Understanding and Implementing IP Routing Protocols