This section explains the fundamental concepts behind link state protocols. Routing protocols can be classified in to Distance Vector Protocols such as Routing Information Protocol (RIP),3 Enhanced Interior Gateway Routing Protocol (EIGRP)4, and so on and as Link State Protocols such as Open Shortest Path First (OSPF)2 and IS-IS. The basic idea behind link state protocols is that each node is made aware of the entire network topology. The protocol ensures that all the nodes have accurate information of the entire topology. Then, all the nodes independently run the same Shortest Path First (SPF) algorithm to compute the shortest route between each node. Because the topology information is the same, the route computation will also be the same at all the nodes. Synchronizing the topology database with the neighbors and computing the routes are independent operations and can be done in parallel. The mechanism by which this is achieved is left to the details of the individual protocol. Now consider a simple topology, as shown in Figure 3-1, to illustrate neighbor discovery, topology exchange, and synchronization in an IS-IS network. Assume that a new node (labeled as “G” in Figure 3-1) is connected to the network. A typical link state protocol has multiple stages.
Figure 3-1 IS-IS Network
Neighbor discovery is the first stage of the protocol in which a node discovers its neighbors. Every node sends a multicast packet on all the interfaces configured for the link state protocol to run. This packet contains the properties of the protocol. The other routers respond to this packet with their capabilities. After processing the information, the router accepts or rejects the adjacent nodes as neighbors. The next section on IS-IS goes into the specifics that detail the packet format, the three-way hand shake, and so on. Every node also sends a periodic keepalive packet. When the keepalive packet is not heard for a specific duration, the corresponding neighboring router is considered unreachable and not taken into consideration for computing routes. For the topology shown in Figure 3-1, after the neighbor discovery phase, node G would have established nodes E and F as its neighbors and vice versa.
As stated previously, every node has the complete topology information. This means that the amount of data exchanged between the nodes is large and, needless to say, it increases with the increase in the number of nodes in the topology. During every topology change, such as link failures, the node going down triggers topology updates. The obvious intention of any routing protocol is to minimize the number of times the route computation algorithm is run, minimize the number of topology updates, and reduce the size of the topology updates whenever possible.
After the neighbor discovery is done, the nodes exchange in short packets, describing the revision of the topology information it has. If both the nodes have the same information, no exchange of topology is needed. Otherwise, the node having the latest information sends only the portion of the topology database, which is out of date in the neighbor node. In this way, topology information is exchanged only when needed. Considering the topology shown in Figure 3-1 because node G’s topology database is empty, it can request nodes E and F to send the entire database.
Information about new nodes or network changes is propagated to all the nodes in the network through flooding. The idea behind flooding is simple. A change picked up by a node is transmitted on all the links where the link state protocol is configured. The other nodes, after receiving the flood packet, in turn send it out on all its links, except the link through which the packet arrived. This process continues until all the nodes have obtained the packet. It is normal for a node to receive multiple copies of the same packet. Usually, the classic split horizon rule is employed, wherein a node will not transmit the packet back to the neighbor from which it received the announcement. There are other optimizations employed like having a hold-down timer, wherein after receiving a flood packet, it is not transmitted immediately but transmitted after waiting for a small random time. There are numerous optimizations proposed for flooding that include limiting the number of duplicate packets, corruption detection, versioning of the flooded packets, and so on. You see how IS-IS handles some of these in the subsequent sections. For a deep dive on this, refer to the reference for IS-IS.1 Refer to the topology shown in Figure 3-1. As soon as the nodes E and F detect the new neighbor G, they will flood the topology change information to their neighbors. In this example, node E sends the information to node C, and node F sends the information to node D. Nodes C and D in turn flood the information to both the nodes A and B. In this way, all the nodes in the network have the same topology information.
After a node has built its database, it calculates the shortest path to all the other nodes in the network. Usually Dijkstra’s shortest path first (SPF) algorithm is employed. This algorithm was originally proposed for Graph Theory, wherein each vertex is treated as a node, and the edges connecting the vertices are the links connecting the nodes. The cost of the edges is the metric associated with the link. When the network topology is redrawn by only considering the path computed by SPF algorithm, it forms a spanning tree with itself as the root. The tree is composed of the shortest path from the root to all the other nodes in the network. Because a tree is an acyclic graph, there are no loops. This plays an important role in how TRILL and FabricPath support forwarding of multidestination frames. For the topology shown in Figure 3-1, every node computes a shortest path to reach the new node G. In this topology, node A has two equal cost paths to reach node G, assuming the metric of all the links are the same. The two equal cost paths are A-C-E-G and A-D-F-G.
Link State Protocol Scaling
Scaling poses a big threat especially to link state protocols. Recall that all the nodes maintain the topology of the entire network. The higher the number of nodes, the higher the size of the database maintained by each node and the higher the time spent by each CPU to compute the routes. Because flooding is the mechanism used to propagate the database, any topology change can trigger a flood, the effects of which will be severe for a larger network. The higher the floods, the higher the network traffic and time spent by the CPU in processing the messages. To address the scalability concern, link state protocols usually divide the network into areas. Flooding is limited to an area. Flood packets originated within an area are not sent to other areas. Flood packets terminate at the area boundary. Each area has a border router that synchronizes the database with the border router of the adjacent area. The database that gets synchronized between the border routers and later on distributed inside an area is summarized and not the complete database of the other area. Limiting the scope of flooding and the size of the database can improve the scalability by a big factor.
Link State Protocol in a Local Area Network
Figure 3-1 has routers connected to each other through point-to-point links. But it is not uncommon for multiple routers to be connected through a shared media or a local-area network (LAN) as shown in Figure 3-2.
Figure 3-2 IS-IS LAN Network
In this example, Routers R1, R2, and R3 that are running a link state protocol have one of their ports connected to the LAN. R1, R2, and R3 can see each other as neighbors. Even though they are part of the LAN, neighbor discovery, topology exchange, and flooding of information happen between every peer (or neighbor pairs). When the number of routers connected to the LAN increases, the number of peers increases, and this increases the number of messages seen in the network, the redundant information in the messages leading to increased CPU utilization in the routers to process extra messages and compute the routes. To get around this issue, the concept of designated router (DR in OSPF) or designated intermediate-system (DIS in IS-IS) was introduced. A DR or DIS is elected among all the routers in the LAN during the neighbor discovery phase. Figure 3-2 shows R1 as the DIS. A DR or DIS has the following additional functionality:
- All the routers synchronize their database only with the DR or DIS.
- The DR or DIS synchronizes the topology database information with the rest of the LAN.
- All the routers in a network form a neighbor relationship only with the DR in OSPF. In IS-IS, a full mesh of adjacencies is established.
This scalability issue is seen not only within the LAN, but also in the routers that are not a part of the LAN but are directly connected to the routers in the LAN, as shown in Figure 3-3.
Figure 3-3 IS-IS LAN Connected to an External Router
In Figure 3-3, an external Router R4 is connected to both R1 and R2 but is not a part of the LAN. If every router in the LAN includes all the nodes in its topology database as a part of its topology database advertisement to the external router, this can lead to a lot of redundant information being carried, and a single topology advertisement can become big. So, the concept of pseudo-node was introduced, wherein a special message is sent with the pseudo-node as the source of the advertisement that includes reachability to all the other nodes in the LAN with a cost of zero. The DR or DIS sends this special advertisement. When the routers in the LAN advertise their topology database to the external routers, they just advertise the reachability to the pseudo-node (or virtual node) with the actual cost of the broadcast link rather than advertising their reachability to all the other nodes in the LAN. The logical topology as viewed by the external routers after processing the topology advertisements from the routers in the LAN is shown in Figure 3-4. There is no pseudo-node in the actual physical topology. The pseudo-node will be seen as another router connected to all the routers in the LAN. Running a link state protocol in a LAN environment introduces a lot of additional complexities as discussed in this section. A link state protocol in a LAN environment is a detailed topic and you are encouraged to refer to IS-IS1 and OSPF2 for additional details.
Figure 3-4 IS-IS Pseudo-Node