IS-IS and fast convergence ongoing tricks
Been a while since my last post, I was extremely busy doing a lot of things, anyway I am glade to be back.
This post I am going to cover a nice tool for enhancing IS-IS convergence, I am really amazed by the ideas that the guys out there pop up. Inventing such wonderful tools requires intellectual open minds (it's not relatively a new feature), enough talking and lets get to the point.
Practically speaking in most Service Providers' backbones the IGP is required to make the loopback IP addresses of the providers' routers reachable to each other in order to be able to have all the MPLS stuff operational, no other IP addresses information is required to be exchanged by the IGP in the global routing table for things to work out (if the Service Provider is providing internet through the global routing table, this kind of routes are carried via BGP and not the IGP).
IS-IS has a characteristic that has always made it more flexible and scalable (at least in the single area designs) than OSPF, and that is it separates the neighbors and the IP addresses information. It uses IS Reachability TLV (or Extended IS Reachability TLV with wide metrics) and IP Internal/External Reachability Information TLV (or Extended IP Reachability TLV with wide metrics).
This well engineered data-structure of IS-IS has leveraged it huge benefits when it came to Partial SPF calculation (AKA Partial Route Computation - PRC) , since it was easy for a router to understand whether there is a topology change that needs full SPF calculation, or is it just IP addresses reachability that would just require a partial SPF calculation.
This well engineered data-structure keeps providing IS-IS with flexibility that features like the one that I am going to talk about today leverages as well. Cisco names the feature "IS-IS Mechanism to Exclude Connected IP Prefix from LSP Advertisements". It is all about minimizing the database that is required to be flooded, synchronized, stored and processed on all the network routers and thus enhancing the convergence process.
Back to the second paragraph, since in most service providers' backbones only the looback IP addresses reachability is required for proper operation (I am of course talking about a MPLS backbone), thus why not only maintain such information and discard any other useless information.
Cisco has introduced two mechanisms for this feature (check Cisco's documentation):
- Explicit (Small-Scale method as named by Cisco): In this method you simply explicitly configure an IS-IS interface not to advertise its IP information to neighbors using the no isis advertise-prefix interface command - Which is of course not a scalable method (that's how it got its name).
- Passive Only (Large-Scale method as named by Cisco): In this method you simply notify the IS-IS router not to advertise any connected IP information to its neighbors using the advertise passive-only command under the IS-IS process, except those configured as passive-interfaces, which is the most common way of advertising the loopback interfaces.
The logic behind this feature is extremely simple; "don't advertise useless IP addresses reachability information" by not advertising their IP reachability TLVs in the LSPs.
This feature affects only connected interfaces running IS-IS, it has nothing to do with redistribution, and accordingly any redistributed IP information is never affected by this information.
Find below the lab illustration of this feature - this is my fast lab with six inline routers: CE1(R5) <--> PE1(R1) <--> P1(R2) <--> P2(R3) <--> PE2(R4) <--> CE2(R6).
Note that in the first output both the connected IP information (18.104.22.168/24) and the redistributed IP information (22.214.171.124/32) are received by P2, while in the second output, after configuring this feature on PE1 only the connected IP information disappears, while the redistributed IP information persists, since this command excludes the connected IP prefixes only.
Before configuring the feature on PE1
P2(R3)#sh isis database verbose IS-IS Level-2 Link State Database: LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL PE1(R1).00-00 0x000002FD 0x6CF8 1191 0/0/0 Area Address: 49.0001 NLPID: 0xCC Hostname: PE1(R1) IP Address: 126.96.36.199 Metric: 10 IS-Extended P1(R2).00 Metric: 0 IP 188.8.131.52/32 Metric: 10 IP 184.108.40.206/24 Metric: 0 IP 220.127.116.11/32 P1(R2).00-00 0x000002FE 0x5509 515 0/0/0 Area Address: 49.0001 NLPID: 0xCC Hostname: P1(R2) IP Address: 18.104.22.168 Metric: 10 IS-Extended PE1(R1).00 Metric: 10 IS-Extended P2(R3).01 Metric: 0 IP 22.214.171.124/32 Metric: 10 IP 126.96.36.199/24 Metric: 10 IP 188.8.131.52/24
After configuring the feature on PE1
P2(R3)#sh isis database verbose IS-IS Level-2 Link State Database: LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL PE1(R1).00-00 0x000002FE 0xB6FB 1183 0/0/0 Area Address: 49.0001 NLPID: 0xCC Hostname: PE1(R1) IP Address: 184.108.40.206 Metric: 10 IS-Extended P1(R2).00 Metric: 0 IP 220.127.116.11/32 Metric: 0 IP 18.104.22.168/32 P1(R2).00-00 0x000002FE 0x5509 474 0/0/0 Area Address: 49.0001 NLPID: 0xCC Hostname: P1(R2) IP Address: 22.214.171.124 Metric: 10 IS-Extended PE1(R1).00 Metric: 10 IS-Extended P2(R3).01 Metric: 0 IP 126.96.36.199/32 Metric: 10 IP 188.8.131.52/24 Metric: 10 IP 184.108.40.206/24
I hope that I've been informative.