L1 ISs maintain a copy of the L1 area LSDB; and L2 ISs maintain a copy of the L2 area LSDB. Every IS-IS router maintains a copy of the LSDBs for the levels it is responsible for.
An L1/L2 router informs all L1 routers within its area that it is a potential exit point of the area. L1 routers use default route to forward traffic destined to other areas to the nearest L1/L2 router. L2 or L1/L2 routers in different areas exchange area address information and use Dijkstra’s SPF algorithm to compute the best paths between areas, followed by forwarding traffic destined to other areas to the best L2 or L1/L2 router to reach the area.
The System ID is used for routing within an area; the area address is not considered. The area address is used for routing between areas; the System ID is not considered.
Since each IS-IS router makes its own best-path decisions upon every hop along the traffic path, there is a significant chance of asymmetric routing, in which traffic flow taking different paths in different directions. Therefore, it is important to know the traffic patterns within a network and fine-tune IS-IS for optimal path selection when necessary.
IS-IS Routing Example
Below describes the traffic flow from RT1 to RT9 in the figure above:
- RT1 notices the prefix of RT9 (49.0003) is not same as its prefix (49.0001).
RT1 forwards the traffic to the nearest L1/L2 router – RT3.
RT1 uses its L1 topology database to find the best path to RT3.
- RT3 uses its L2 topology database to find the best next hop to reach the 49.0003 prefix – RT4. RT3 does not use the destination System ID for this decision.
- RT4 uses its L2 topology database to find the best next hop to reach the 49.0003 prefix – RT7. RT4 does not use the destination System ID for this decision.
- RT4 uses its L1 topology database to find the best path to reach RT7 – RT5, as they reside in the same area. RT4 uses the System ID of RT7 for this decision. Note: RT5 must support L2 routing to ensure that the backbone is contiguous. When RT5 fails, RT6 cannot perform L2 routing even it provides a physical path across the area. RT6 should be configured as a L1/L2 router to provide redundancy.
- RT7 uses its L2 topology database to find the best next hop to reach the 49.0003 prefix – RT8. RT7 does not use the destination System ID for this decision.
- RT8 notices that the prefix of RT9 (49.0003) is same as its prefix (49.0003).
RT8 forwards the traffic to RT9 using its L1 topology database to find the best path to RT9.
IS-IS Asymmetric Area Routing
Below describes the traffic flow initiated from RT1 to RT8 and back to RT1:
- RT1 forwards the packets to its nearest L1/L2 router – RT2.
- RT2 forwards the packets along the shortest path to the destination area – area 2.
- The packets are then forwarded along the shortest intra-area path from RT4 – RT6 – RT8.
- RT8 forwards the return packets to RT1 via its nearest L1/L2 router – RT7.
- RT7 recognizes the best route to area 1 via area 3 based on the lowest-cost L2 path.
Asymmetric routing is not a serious networking problem but troubleshooting can be difficult and it may be a symptom of suboptimal routing. A good IS-IS network design is generally hierarchical and symmetric.
Route leaking is a Cisco IOS feature that helps to avoid asymmetric routing and reduce suboptimal routing by leaking or redistributing L2 routes into L1 routers in a controlled manner. By having more details about inter-area routes, an L1 router is able to make better decisions upon forwarding traffic to the appropriate L1/L2 router.
Route leaking is defined in RFC 2966 – Domain-wide Prefix Distribution with Two-Level IS-IS for use with the narrow metric TLV Type 128 and Type 130. The IETF also defined route leaking for use with the wide metric using TLV Type 135. An Up/Down bit in the TLV is used to indicate whether the route identified in the TLV has been leaked.
If the Up/Down bit is set to 0 – the route was originated within the L1 area.
If the Up/Down bit is set to 1 – the route has been redistributed into the area from L2.
The Up/Down bit is used to prevent routing loops – an L1/L2 router will not re-advertise any L1 routes that have the Up/Down bit set into L2.
Route leaking should be planned and deployed carefully to avoid the situation where topology change in one area results in route recomputations in other areas.
L1 internal routes have higher precedence and are chosen over L2 routes – forwarding packets outside an area instead of within an area is often a suboptimal route and can cause a routing loop.