Network Routing Protocols and Methods, Part 1
Once an engineer has a basic understanding of how packet forwarding/routing works, the next step is to move on to the method of configuring routing. (If you're still not sure how packet forwarding/routing works, take a look at my article "Basic Layer 3 Routing Concepts.")
This article discusses the main categories of routing configuration and goes over the different types of dynamic routing protocols that are available and commonly used.
Choosing How to Configure Network Routing
There are two primary ways of configuring routing: statically and dynamically. Static routing is typically used on very small networks, where the number of routes to be configured is just as small. However, static routing is sometimes used in larger networks as a small piece of an overall dynamically controlled routing infrastructure. In such cases, static routes typically configure default routes, or direct traffic out of the network to another network controlled by another party.
Dynamic routing is built to deal with network changes automatically as the topology changes within the network, and are typically used on all other network types not previously mentioned.
Let's visualize this with the topology shown in Figure 1. This example shows a number of different paths that a message can take when leaving R1 and destined for R6. For example, it could go R1 > R2 > R4 > R6, or it could go R1 > R3 > R4 > R6. When configuring static routing, typically the engineer has a single path in mind to reach the destination. So, to configure a route from R1 to R6 using the path through R2 and R4, a static route would need to exist on R1, R2, and R4 for the forward trip (R1 > R6), and another route would need to exist on R6, R4, and R2 for the reverse trip (from R6 back to R1). Keep in mind that this route is for a single reachable destination.
Figure 1 Base topology.
To provide reachability to every destination that potentially exists in the network, the engineer would need to calculate the best paths for each destination initially, and then individually configure each route along each best path. Obviously, this process can quickly become very time-consuming. And what happens if a failure exists along the calculated best path?
These reasons indicate why dynamic routing protocols are used on larger networks, and static routing is left for very small networks or other specific use cases. Dynamic routing protocols avoid the manual configuration problem; they also are built to handle many complex topologies, as well as dealing with network outages—without the need for additional administrative attention.
Types of Dynamic Routing
After selecting the dynamic routing method, the engineer must make some additional decisions involving the types of dynamic routing protocols. At the highest level are two main categories of dynamic routing protocol: exterior gateway protocols (EGPs) and interior gateway protocols (IGPs). EGPs connect multiple network domains; they're called exterior because the protocol is exterior to the network domains. (A domain in this case is a specific organization or service provider network.) IGPs handle the routing inside these network domains; these protocols are the most common, as each company with a network handles its own network domain.
Modern networks use only a single EGP: the Border Gateway Protocol (BGP). As you might expect, a number of different IGPs are available, depending on the requirements of each network. Four IGPs are the most popular:
- Open Shortest Path First (OSPF)
- Enhanced Interior Gateway Routing Protocol (EIGRP)
- Intermediate System to Intermediate System (IS-IS)
- Routing Information Protocol (RIP)
These EGP and IGP protocols are split into three different types of routing protocol: distance vector, link-state, and path vector. There are a number of important differences between these types. The next three sections discuss each type of routing protocol in detail.
Distance Vector Protocols
A few main attributes are associated with traditional distance vector routing protocols:
- The router's view of the network is only discovered from the known routes of its neighbors ("routing by rumor").
- The router sends a complete version of its routing table to its neighbors at regular intervals.
- They take a long time to converge after a failure because the update is only sent at regular intervals.
- Compared with link-state protocols, distance vector protocols have a higher risk of causing routing loops.
The only modern routing protocol that is traditionally distance vector is RIP. It advertises a complete copy of its routing table every 30 seconds via all enabled interfaces.
Once a router receives an update from a neighbor, it places the update into the routing table (assuming that there are no conflicts). If something happens and the route becomes unreachable, the route remains in the routing table for at least 180 seconds (default invalid timer) before being marked as unreachable. This technique slows down the convergence of a failed route and delays traffic from being routed along an alternate path.
RIP comes in three versions: RIP version 1, RIP version 2, and RIPng. Their operations are very similar; however, there are a few differences: RIP version 1 broadcasts updates, whereas RIP version 2 multicasts updates. This design prevents non-RIP devices from processing extra packets every 30 seconds. RIP version 2 also supports subnetted (classless) networks, while RIP version 1 only supports classful networks. RIPng works similarly to RIP version 2, but for IPv6 addresses.
EIGRP is technically a distance vector protocol in that its view is based on its neighbors' views alone, but it has some features that make it act like a link-state protocol. This is why EIGRP is usually discussed as being a hybrid protocol, using attributes from both traditional distance vector as well as link-state protocols. Crossover features include the use of neighborships and triggered partial updates, to name two.
Loop management for distance vector routing protocols uses two different methods: poison reverse and split horizon. Poison reverse is used every time a new route is learned from a neighbor; when this happens, the router automatically sends a route advertisement back out the learned interface with an infinite metric. This action prevents the neighbor from using that route to the newly learned destination.
Split horizon is also used when a router advertises routes out its interfaces. With split horizon, if a route was learned on interface 1, it will not advertise that same route back out interface 1.
Link-state protocols provide each of the routers in a network with a network-wide view, giving each router the ability to calculate the best path through the network. All modern link-state routing protocols use Dijkstra's shortest path algorithm.
Link-state protocols work by establishing neighborships with connected routers and exchanging a copy of the known network (not just the routing table contents) to these neighbors. All updates that are received are immediately relayed to all other connected neighbors.
Both OSPF and IS-IS are link-state protocols, and both use Dijkstra's algorithm for best-path mapping. However, their configurations are quite different, and the selection of one versus the other is based mainly on the requirements of a specific network. OSPF is more commonly deployed in enterprises, and IS-IS is more popular in service provider networks.
Path Vector Protocols
The only path vector protocol in use today is BGP. When BGP is configured, it will have a copy of all reachable autonomous systems (BGP's term for network domains, discussed earlier) and the path to reach them. This information gives the protocol a clear view of which networks it can reach and the advertised path to each.
A BGP router also uses a number of different path attributes to determine which path it will end up using to reach a specific destination. Since BGP is an EGP and is used to route between routing domains, often multiple paths are available to reach a destination. By using a combination of these path attributes, a router selects the route it uses.
Whether to use a static or dynamic method of routing is frequently determined by the size of the network; if the network is very small (a few nodes), a static routing solution could work. However, even if the network is small, a dynamic routing method can be used without a lot of configuration, and it will continue to work as the network grows.
The type of dynamic routing protocol to use largely depends on the vendor of the networking equipment in use. OSPF and EIGRP are two of the most popular routing protocols used on enterprise networks. Of these two, EIGRP is typically considered easier to configure, but until recently it has been Cisco proprietary, and therefore typically not supported on other vendors' equipment.
If you're deploying only Cisco equipment, the selection is a bit more dependent on the training of your staff and which protocol they best understand and prefer.
Part 2 of this series will walk through how a network converges for a distance vector network versus a link-state network, along with covering a few common additional dynamic routing protocol features.