When internetworking started to take off during the mid-1980s, internetworks were smaller and simpler. The interior gateway protocol of choice back then was Routing Information Protocol (RIP). At that time, the two predominant proprietary networks were IBM SNA and Digital Equipment's DECnet implementation of Ethernet, each with its own routing scheme. But at the time, the "open" networking market was booming, with UNIX servers connecting to Novell's NetWare IPX LANs. RIP shipped with most UNIX server systems and emerged as the de facto standard. Thus, RIP is an open standard, not a Cisco proprietary technology.
RIP is simple to understand, easy to configure, and works well enough for small, homogeneous networks. To this day, RIP is still the most widely installed routing protocol in the world.
But the early versions of RIP were limited to just the hop count metric. This didn't provide the routing flexibility needed to manage complex environments. Also, RIP was slow to converge, and thus limited to a maximum hop count of 16. Configure a longer route and the user will encounter a "destination unreachable" message. As a distance-vector protocol, RIP issues routing updates at a fixed interval. (The default update interval for most RIP products is every 90 seconds.)
It gradually became apparent that RIP was a roadblock to continued internetwork expansion. The 16-hop-limit, single-metric scheme constrained network size and capacity. Cisco seized the opportunity by devising a replacement routing technology that did away with most of RIP's disadvantages: a more robust distance-vector protocol named IGRP (Interior Gateway Routing Protocol).
IGRP, a company-proprietary extension of the open RIP standard, was first released by Cisco in 1986 for IP only. In the succeeding years, IGRP implemented support for other network-layer protocols (IPX, AppleTalk, and so on), and it became the standard in customer shops using only Cisco equipment. By around 1990, RIP's limitations had become apparent, and IGRP was positioned as its general replacement for client-server networks.
Many observers regard IGRP as the single most important factor behind Cisco's explosive growth. The competition had devised OSPF as their primary replacement to RIP-but it was (and still is) limited to IP-only networks. IP-only compatibility is acceptable in some enterprises, but the reality is that most internetworks still run multiple protocols (IPX, AppleTalk, DECnet, and so on). Cisco was able to couple IGRP's superior functionality with the 1990s' UNIX/Internet juggernaut to attain the market dominance it enjoys today.
IGRP was a major departure in that it used multiple metrics: distance, delay, bandwidth, reliability, and load. This advance was a big deal, because it enabled network administrators to get a handle on increasing network complexity and provide better service. Figure 12-20 compares IGRP's features with RIP's.
Figure 12-20: Cisco's IGRP eclipsed RIP and helped vault the company to its dominant market position
A big virtue of IGRP is the granularity of its metrics. For example, being able to set parameters for reliability or load to any value between 1 and 255 gives administrators the granularity needed to finely tune IGRP route selection. IGRP's ability to specify alternate routes boosts reliability and performance. This provides redundancy, so that if a link goes down, the IGRP routing algorithm dynamically begins to steer traffic to the secondary route. Multipath routing also introduced load balancing-the ability to dynamically shift traffic between alternate routes, depending on how busy each is. These were important benefits during a period when most internetworks were in their infancy and prone to slowing to a crawl or going out altogether.
In 1994, Cisco augmented IGRP with a product called Enhanced Interior Gateway Domain Protocol (EIGRP). EIGRP is a substantial advance over its predecessor-so much so that Cisco touts it as a hybrid routing protocol instead of a mere distance-vector protocol.
EIGRP combines the advantages of link-state protocols with those of distance-vector protocols. It provides superior convergence properties and operating efficiency. Here are the key EIGRP features:
DUAL finite state machine The software engine used by the EIGRP algorithm. DUAL (Diffusing Update Algorithm) is used to provide loop-free operation at every instant throughout a route computation. DUAL allows routers to synchronize route changes and does not involve routers unaffected by the change. The key architectural feature is that routers running DUAL store all of their neighbors' routing tables (called neighbor tables ) so that they can more intelligently recalculate alternate paths in order to speed convergence.
Variable-length subnet masks (VLSMs) The ability to automatically summarize subnet routes at the edge of a subnet. Before VLSM, routing protocols such as RIP could not build routes with subnet addresses included. All subnets had to be the same.
Partial updates Also called event-triggered updates, this means routing updates are issued only when the topology has changed. This saves control message overhead.
Bounded updates The method whereby routing update messages are sent only to those routers affected by the topology change. This saves overhead and helps speed convergence.
Reliable Transport Protocol (RTP) A protocol guaranteeing the orderly delivery of priority update packets to neighbor routers. RTP works by classifying control message traffic into four priority groups: Hello/ACKs, updates, queries and replies, and requests. Only updates and queries/replies are sent reliably. By not sending Hellos/ACKs or requests reliably, resources are freed to guarantee the delivery of message types more critical to EIGRP's internal operations.
It is commonplace for enterprises using Cisco hardware to migrate their internetworks from IGRP to EIGRP over time. EIGRP routers can be operated as compatible with IGRP routers. The metrics between the two are directly translatable. EIGRP does this by treating IGRP routes as external networks, which allows the network administrator to customize routes to them. EIGRP advertises three types of routes:
Internal routes Routes between subnets in a network attached to a router's interface. If the network is not subnetted, no interior routes are advertised for that network.
System routes Routes to networks within the autonomous system. System routes are compiled from routing updates passed within the internetwork. Subnets are not included in system routing updates.
External routes Routes learned from another routing domain or those entered into the routing table as static routes. These routes are tagged individually to track their origin.
Figure 12-21 shows the interplay between these three types of EIGRP routes. Breaking down routes into these three categories facilitates advanced functions within the EIGRP algorithm. The internal routes designation enables EIGRP to support variable-length subnet masks; external routes make it possible for EIGRP to exchange routes that are discovered outside the autonomous system.
Figure 12-21: EIGRP defines three types of routes: internal, system, and external
Configuring any Cisco routing protocol is largely a matter of setting its options. The number of steps is a function of how many options the routing protocol has for you to set. The more options a routing protocol has to set, the more commands there are for you to use. Because all Cisco routing protocols are implemented within IOS software, the initial configuration steps are the same. Table 12-1 explains the standard IOS routing protocol configuration steps.
Initialize and number the routing process.
The routing protocol must be running on a router so it can begin exchanging routing updates with other routers. This is done using the router command and giving the new routing domain an autonomous system number.
Configure LANs into the routing domain.
The network command is used to configure networks into the routing domain.
Set other routing protocol parameters.
Once the routing domain is constructed, its behavior is specified by using the routing protocol's various commands from the (configrouter)# prompt.
Routing domains are built router by router. In other words, because routing protocols are peer arrangements, the routing process must be configured in each router that will be included in the routing domain. This is done by working with each router's configuration file individually. Once all the routing processes are configured on all the routers in the internetwork, the routing domain is complete.
The router command initializes the routing process on a router. In this example, an EIGRP for autonomous system 999 is turned on in a router called MyRouter:
MyRouter(config)# router eigrp 999 MyRouter(config-router)#
An autonomous system number must be given in order to start a routing process. IOS uses the autonomous system number to distinguish one routing process from others. Notice that the IOS prompt changed to MyRouter(config-router)# when the eigrp 999 routing process was invoked. All routing protocol parameters are set from this prompt.
The network command is used to start the routing protocol running over specific networks. The network must be connected to a corresponding interface on the router. Sticking with our example, the following command would make network 10.1.13.0 part of the routing process:
MyRouter(config-router)# network 10.1.13.0
The preceding command initializes EIGRP across network 10.1.13.0. If MyRouter is a four-port router and the other three LAN segments are also to run EIGRP, the network command must be used to make them part of the eigrp 999 routing process also:
MyRouter(config)# router eigrp 999 MyRouter(config)# network 10.1.14.0 MyRouter(config)# network 10.1.15.0 MyRouter(config)# network 22.214.171.124
Now the EIGRP routing process is running across all four of MyRouter's LAN segments, subnets 10.1.13.0–10.1.15.0, and network 126.96.36.199.
Each routing protocol has its own command set. These commands reflect the protocol's particular capabilities. Once a routing protocol is initialized, its commands are used to set various parameters in the configuration file to tune the behavior of the routing process as it operates in that router. EIGRP's command set is listed in Table 12-2.
Enables automatic network number summarization
Sets a command to its defaults
Controls distribution of default information
Sets the metric of redistributed routes
Defines an administrative distance
Filters networks in routing updates (used with commands that are specific to EIGRP)
Forwards packets over multiple paths
Modifies IGRP routing metrics and parameters
Specifies a neighbor router
Enables routing on an IP network
Adds or subtracts offset from IGRP or RIP metrics
Suppresses routing updates on an interface
Redistributes information from another routing protocol
Adjusts routing timers
Computes traffic share for alternate routes
Controls the load-balancing variance
Given that this is an introductory guide, we won't go into the commands for EIGRP or the other Cisco protocols-each one has its own complete command reference manual. But looking at the commands in Table 12-2 gives you a notion of how the concepts introduced in this chapter are implemented. Let's take one example of an advanced command to give you an idea of how things work:
MyRouter(config-router)# metric maximum-hops 25
What the preceding command does is set a maximum network diameter for the routing domain. Network diameter is a limit on how many hops a route may have before the routing protocol stops advertising it. The setting in this use of the maximum-hops command will enforce a limit of 25 hops. Should the router receive a routing update with 26 or more hops indicated in its distance metric, the router will decline to enter it into its routing table. The maximum-hops command is an easy way to limit the kind of traffic a router will carry.
Although the severe limitations of early RIP versions opened the door for EIGRP, the competition fought back. The Internet Engineering Task Force (IETF) oversaw the release of the RIP 2 open standard in 1998. RIP 2 has most of the advanced functionality of other state-of-the-art interior gateway protocols such as EIGRP and OSPF. None of the improvements are unique to RIP 2, but they go a long way toward catching up RIP's functionality with other routing protocols. The IETF felt this was a good thing because RIP has such a huge installed base and is still quite useful for small internetworks.
But even with its advances, the use of RIP 2 is still limited to smaller internetworks by its 16-hop limit. Also, RIP 2 still issues routing updates on a fixed-interval cycle, causing it to converge more slowly than EIGRP or OSPF.
Configuring RIP 2 involves the same generic commands as other Cisco routing protocols, where the commands must be used to initialize the routing process on the router and its networks:
MyRouter(config)# router rip MyRouter(config-router)# network 188.8.131.52
You'll notice that no autonomous system number was entered (as in router rip 999 ), since neither RIP nor RIP 2 supports this. Also, the command to initialize RIP 2 is router rip (not router rip2 ), because the version of RIP you can run is a function of the version of IOS the router has loaded. That said, the version of RIP is defined by running the version command from the router configuration mode.
MyRouter(config-router)#version ? <1-2> version
Once the RIP 2 process is launched, configuring it is a matter of setting its other parameters. In RIP 2, these include router authentication using the rip authentication command, route summarization using the auto-summary command, and validation of the IP addresses of routers sending routing updates using the validate-update-source command.
Let's take a look at an example RIP 2 command that's more generic in nature. The timers basic command is used to set the routing update intervals within an RIP routing domain. The default is 30-second intervals. If you wanted to change the routing update frequency to every 25 seconds, you'd enter the following command:
MyRouter(config-router)# timers basic 25
However, changing basic metrics such as this is discouraged. Making updates five seconds more frequently will help speed convergence, but will increase network overhead by causing more routing messages.
In 1991, the industry moved to establish what could best be called an open standard replacement for RIP. The result was OSPF (Open Shortest Path First), which, as the name implies, is an open standard used to seek out shortest path routes just like RIP. But that's where the similarities end. OSPF is a link-state, not distance-vector, routing protocol. OSPF converges faster than RIP and operates under the link-state concept, in which each router keeps a database of all links in a network and information on any delays it might be experiencing. In addition, OSPF saves control message overhead by issuing routing updates only on an event-driven basis.
Most OSPF features are designed to help cope with internetwork size. The central concept behind OSPF is internetwork areas. As stated earlier in the chapter, an area is a zone within an autonomous system that is composed of a logical set of network segments and their attached devices. The areas are used by the routing system as a strategy to control traffic flow and sift out unwanted routing table details. Every OSPF domain must have a backbone area with number 0. Areas are created by using the keyword area as an argument with the network command, as shown next:
MyRouter(config-router)# network 10.0.0.0 0.255.255.255 area 0
This command puts the subnet 10.0.0.0 into OSPF area 0. It's possible to run a one-area OSPF network, having only an area 0. Figure 12-22 shows a three-area OSPF network.
Figure 12-22: OSPF implements routing areas and redirects routes between them
A key functionality of OSPF is that it can redirect routing updates between areas. Redirect is a routing update that passes through one or more areas of a routing domain, usually through a number of filters designed to cut down routing update traffic.
OSPF networks are frequently used to tie together preexisting routing domains, such as RIP internetworks. This is done by creating an OSPF area for each RIP domain and passing routing updates between them through the OSPF backbone (area 0). The routers at the edges of the areas are called autonomous system boundary routers (or ASBRs, for short). The ASBRs sit between the OSPF autonomous system and the RIP networks, and run both OSPF and RIP protocols.
Variable-length subnet mask (VLSM) support is a critical feature for OSPF. Respective areas often have their own subnet schemes that fit their particular needs. In Figure 12-23, all the serial line-based networks in area 0 use the .252 subnet mask, typical for longdistance connections. This is because the .252 mask allows up to 64 subnets, but only two hosts per subnet. While the subnet mask could vary, based on a given set of requirements, this is ideal for networks composed of a serial-line connection because only two hosts are needed: one at each end of the line.
Figure 12-23: The variable-length subnet mask feature makes areas possible
Each of the other end-system areas uses its own scheme. Area 1 uses the .248 mask (yielding a maximum of 32 subnets and six hosts each), area 2 uses the .192 mask (up to four subnets with 62 hosts each), and area 3 uses the .224 mask (up to eight subnets with 30 hosts each).
VLSM support means that the routes exchanged in updates passed among the OSPF areas can include the subnet addresses (instead of just the network address). This is an important feature, because it allows complete routes to be shared across areas using differing subnet schemes, which means each area can use only the amount of address space required for its needs. For example, in area 0 in Figure 12-23, there are only a few hosts connected to the serial lines, and being able to use the .248 masks lets area 0 use up only a few addresses (a .248 mask has only six hosts per subnet).
Even with all of OSPF's power, it would be hard to scale internetwork size very much without VLSM. This is because most LANs use subnetted addressing schemes in order to conserve precious IP address space. OSPF areas make possible large-scale expansion of routing domains and, therefore, internetwork size. VLSM enables routers to have full address visibility between areas, and thus route traffic within internetworks with much greater efficiency.
The Border Gateway Protocol (BGP) is the high-level routing protocol that makes the Internet possible. Optimized to coordinate internetworking between autonomous systems, BGP is, at this point, virtually the only exterior gateway protocol in use today.
There are several versions of BGP, and Cisco IOS supports all of them. BGP version 2 is defined in RFC 1163, version 3 in RFC 1267, and version 4 in RFC 1771. It's a worthwhile read for those interested in digging deeper into BGP. But for now, let's keep it above ground.
EIGRP and OSPF let network operators scale their internetworks to large capacities, but it is BGP that ties them all together along so-called Internet trunks or peer networks. Most networking types will never work with BGP; its use is mainly left to ISP administrators concerned with discovering routes across high-speed backbones. However, it's helpful to briefly review how BGP fits in.
The predominance of a single exterior routing protocol is unsurprising in light of the fact that the world's network operators need a single standard to integrate the millions of autonomous systems operating in the world. If the industry hadn't settled on BGP as the common platform, some other exterior gateway protocol would be the de facto standard instead.
Like interior gateway protocols, BGP uses routing update messages and metrics to maintain routing tables. BGP is a modified link-state architecture routing protocol, but obviously is radically different in architecture to be able to scale to Internet growth. BGP's architecture is characterized by the use of route aggregation and the ability to work with interior gateway protocols. BGP supports three types of routing:
Interautonomous system Interautonomous system routing is the basic function of BGP in the Internet routing operations.
Intra-autonomous system Intra-autonomous system routing is performed by BGP when two or more BGP routers operate inside the same autonomous system. This is generally seen in cases in which it's necessary to cross a large internetwork from one edge to the other.
Pass-through autonomous system Pass-through autonomous system routing occurs when it is necessary for BGP traffic to traverse a non-BGP autonomous system in order to connect to another BGP autonomous system.
As an exterior gateway routing protocol optimized to scale to Internet size, BGP differs sharply from interior protocols in some fundamental ways:
Peer routers The network administrator specifies a list of BGP routers representing other autonomous systems (usually other ISPs or large internetwork portals). This is done because it isn't feasible to pass routing updates through a worldwide routing domain.
Routing table contents A table entry in BGP is an autonomous system (not a LAN, as it is in an interior gateway protocol). Each route consists of a network number and a list of autonomous systems that must be passed through, called an AS path.
Single routing metric BGP uses a single metric to determine the best path to a given network. This metric consists of an arbitrary number to weigh the degree of preference to a particular link. It's not dynamic; it must be input and updated by a network administrator.
Incremental route updates When a routing update is received, BGP simply replaces the old route with the new one. No best path recalculation is done, because to maintain a link-state database on the Internet's topology is not feasible.
Cisco's implementation of BGP supports each router establishing a set of neighbors, or peers, with which to exchange reachability information. A variety of techniques are used to aggregate routes to help simplify route processing and to reduce the size of routing tables. One is the use of route maps-a practice that restricts the dissemination of routing updates to certain routers. Another is the use of a simplified form of administrative distance, where, instead of having the choice among 255 relative weightings, a route can take on any of three trustworthiness ratings, depending on the topology position of the router.
BGP's key facet is its ability to filter, reduce, and simplify the routing information it gathers from the Internet.
Another way to route packets through an internetwork is with a protocol that streamlines the whole process. Multiprotocol Label Switching (MPLS) is a way to forward packets through an internetwork. Routers situated on the edge of a network apply simple labels to packets. Then routers, switches, or other network devices within the network can switch packets based on the labels. This process is ideal, because it requires minimal lookup overhead.
Conventional layer-3 IP routing is based on the exchange of network availability information. As a packet winds its way through a network, each router makes decisions about where the packet will be sent next. This information is based on information in layer 3 of the header, and is used as an index for a routing table lookup to determine the packet's next hop. This process is repeated at each router in the network. At each hop, the router has to resolve the next destination for the packet.
The downside of this process is that the information within the IP packets-like information about precedence or VPN data, for example-is not considered when forwarding packets. For best performance, only the destination address is considered, but, because other fields within the packet could be relevant, an in-depth header analysis must take place at each router along the packet's path.
MPLS streamlines this process by placing a label on each packet. Think of conventional IP routing like addressing a letter. It tells the post office where to send the letter. MPLS takes addressing to another level by adding extra instructions-like writing "Perishable" or "Do Not Bend" on the envelope.
The label includes important information about the packet, including:
A specific route for the packet, if one is needed
Virtual private network membership
Quality of Service (QoS) information
MPLS causes the layer-3 header analysis to be performed only twice-at the edge label switch router (LSR) as it enters and exits an internetwork. At the LSR, the layer-3 header is mapped into a fixed-length label and applied to the packet. Figure 12-24 shows how a label is applied to a packet.
Figure 12-24: MPLS packets contain seven fields
The 32-bit MPLS header contains the following fields, as numbered in Figure 12-24:
The label field (20 bits) carries the actual value of the MPLS label.
The Class of Service (CoS) field (3 bits) can affect the queuing and discard algorithms applied to the packet as it is transmitted through the network.
The Stack (S) field (1 bit) supports a hierarchical label stack.
The TTL (time-to-live) field (8 bits) provides conventional IP TTL functionality.
Next, as the packet crosses the routers in an internetwork, only the label needs to be read. Once it reaches the other end of the network, another edge LSR removes the label, replacing it with the appropriate header data linked to that label.
A key result of this arrangement is that forwarding decisions based on some or all of these different sources of information can be achieved by means of a single table lookup from a fixed-length label. Label switching is the merger of switching and routing functions-it combines the availability information of routers with the traffic engineering benefits of switches.
MPLS offers many advantages over traditional IP and ATM routing protocols. Label switching and hardware switching work together to deliver high degrees of performance. For multiservice networks, MPLS allows a switch to provide ATM, Frame Relay, and IP service on a single platform. This is ideal, because supporting all these services on a single platform is not only cost-effective, but it also simplifies provisioning for multiservice providers.
The following benefits highlight some of the usefulness of MPLS:
Integration MPLS combines IP and ATM functionality, making the ATM infrastructure visible to IP routing and eliminating the need for mappings between IP and ATM features.
VPN performance With an MPLS backbone, VPN information need only be processed where packets enter and exit the network. In addition, BGP is used to deal with VPN information. The use of both MPLS and BGP makes MPLS-based VPN services easier to manage and much more scalable.
Reduction of burden on core services Because MPLS examines packets when they enter and exit a network, internal transit routers and switches need only process the connectivity with the provider's edge routers. This prevents the core devices from becoming overwhelmed with the routing volume exchanged over the Internet.
Traffic engineering capabilities MPLS's traffic engineering capabilities enable network administrators to shift the traffic load from overburdened sections to underused sections of the network, based on traffic destination, type, load, and time of day.
An MPLS network has three basic components. They are:
Edge label switch routers Edge LSRs are situated at the physical and logical boundaries of a network. These devices are usually routers (like the Cisco 8500), but can also be multilayer LAN switches (like the Cisco Catalyst 6500) or a proxy device.
Label switches These devices switch packets based on the labels. In addition, label switches may also support layer-3 routing or layer-2 switching. Some label switches include the Cisco 6500, the Cisco 8540 Multiservice Switch Router, and Cisco 8500.
Label Distribution Protocol The Label Distribution Protocol (LDP) is used alongside network layer routing protocols and distributes label information between MPLS network devices.
MPLS provides internetworks with an unprecedented level of control over traffic, resulting in a network that is more efficient, supports more predictable service, and can offer the flexibility required to meet constantly changing networking situations.
The move around 1990 to replace RIP with a more robust interior gateway protocol was a key moment in the history of the internetworking industry. (Keep in mind that 1990 is ancient history in Internet time.) The ability to scale beyond 16 hops or a network diameter of 50 routers was sorely needed. Faster convergence was also on the critical list, because loops were becoming a pressing problem.
Cisco exploited the moment by promoting IGRP as a RIP replacement. This was a risk, because IGRP was (and is) a proprietary standard. But the strategy was wildly successful, because it solved customers' needs to continue internetwork expansion and, at the same time, persuaded network managers to standardize on Cisco equipment. Most of those that did have since migrated to EIGRP.
OSPF is an IP-only routing protocol. The technology planners on the OSPF Working Group were right to promote a RIP replacement. And they were probably right that one day all networks will be based on the Internet Protocol, but that won't happen for another ten years. It was only ten short years ago that many were pointing a finger at Novell and complaining that Novell held a monopoly on client-server LAN operating systems. There are millions of IPX LANs to this day. The reality is that most enterprises still have a mix of network-level protocols and need to support them using an interior gateway technology like EIGRP. This was the marketing window Cisco exploited.
Cisco supports an OSPF product as a complement to its EIGRP strategy. OSPF is a powerhouse in its own right. Most ISPs (and an increasing number of enterprises) are running large IP-only routing domains, and given the standards-setting clout of the Internet, many think that one day everybody will be IP-only. OSPF has built the mission-critical infrastructure surrounding and sustaining the BGP peer networks. Without OSPF, BGP peer networks probably wouldn't be possible. Both are enabling technologies that made the explosive growth of internetworks and the Internet possible. Also, EIGRP and IGRP are only used in complete Cisco environments. When other vendor's equipment is added to the network, OSPF becomes important.
Furthermore, Cisco support of MPLS streamlines routing through internetworks. As we've seen, by affixing a header on a packet when it enters your network, then stripping it as it leaves, MPLS improves network functionality and eases the burden on core network devices. The use of MPLS is certainly beneficial when issues of network performance and capacity are involved.
Comparing the functionality of current routing protocols can be confusing. Although RIP is the lowliest of the interior gateway protocols, it has been so heavily enhanced that it now shares much of the advanced functionality available with EIGRP and OSPF. Further confusing the routing protocol landscape is that RIP and other protocols are being subsumed into OSPF domains as routing domain areas. Things get more clouded because OSPF is so scalable that it has a lot of the size-scaling functionality associated with BGP.
Suffice it to say that today's routing protocols overlap so much that they're hard to keep straight. Just keep in mind that the essential distinctions are distance-vector versus link-state architectures and interior gateway protocols versus exterior gateway protocols.