A Case Study in Deploying IS-IS
Now that we've looked at the IS-IS protocol in detail and discussed some deployment options and questions, let's work through deploying IS-IS on a network to put some of this knowledge into use. The network we will implement IS-IS on is illustrated in Figure 4-9.
Figure 4 9 Network for IS-IS implementation case study
While this is a simple network in many respectsfor instance, it's a two-layer design rather than a three-layer designit will provide some interesting areas of consideration for implementing IS-IS. We'll first consider some fundamental questions, such as whether or not to divide the network into domains, and then we'll focus on each area of the network, and consider the design and problems we might face in each one.
To Divide or Not to Divide
The first question we need to answer when looking at implementing IS-IS on this network is whether to divide it into domains or leave it as one large area. Since this is a moderate-sized network (it is about 300 routers), it could easily be placed in a single routing domain. If we decided to place it in a single domain, would we place it in a single L2 domain or a single L1 domain? Our choice would be to place it in a single L2 domain, for the reasons we described in "Putting the Network in One Routing Domain," earlier in this chapter.
However, there are a number of good reasons to break this network into separate level 1 and level 2 domains. For instance, the IT lab probably wants to be separated from the network in some way, so any experiments going on there have minimal (or no) impact on the rest of the network. At the same time, the IT lab would like to receive full routing information from the network, so this information can be recorded and fed into the test networks for various purposes (rather than relying entirely on network topology generators).
The most compelling reason to break the network into areas is, of course, so we can discuss the process of breaking the network into areas and describe how to handle the various issues that arise when doing so. Let's begin by determining that we should break the network into separate level 1 and level 2 routing domains.
Dividing the Network
Once we've decided to divide the network, where should the dividing lines be? Looking at Figure 4-9, there appear to be several areas of the network which naturally fall into domains.
The remotes sites could fall into a single L1 domain, or two L1 domains.
The data center could be placed within an L1 domain.
The IT lab could be placed in its own L1 routing domain.
The DMZ and connection to the Internet and the corporate partner could be placed in a separate L1 domain.
The remainder of the intermediate systems, the core of the network, could be placed in an L2 routing domain.
The term DMZ, or Demilitarized Zone, comes from the common practice of having an area between two countries which is demilitarized, or that no arms are allowed into, with checkpoints and other safeguards between the DMZ and the country proper. In networking, the DMZ is the area between an untrusted network and the internal (trusted) network where security is implemented, or where servers and other devices are located without compromising the integrity of the trusted (internal) network.
With this set of domains as our background, let's look at each section of the network and determine what design challenges we are going to face in each one.
We'll begin our tour of the network by examining several issues in handling the remote sites, beginning with IP address summarization.
Remote Site Summarization
Figure 4-10 illustrates just the remote sites with their connections to the net
Figure 4 10 Remote sites
These two sets of remote sites fall within two natural IP address ranges, 10.1.0.0 through 10.1.120.0 and 10.4.128.0 through 10.4.250.0. Since we are concerned with the ability to summarize IP address spaces, and summarization is possible only at an L1/L2 border, the best place to put this border is going to be at intermediate systems A and B in Figure 4-10, where the remote sites converge. One of the tasks entails configuring the links towards the remote site routers as level 1only links, and configuring the links towards the remainder of the core as level 2only links.
IP summaries of 10.1.0.0/17 and 10.4.128.0/17 seem to be the most natural summaries intermediate systems A and B could advertise: they would cover 10.1.0.0/24 through 10.1.127.0/24 and 10.4.128.0/24 through 10.4.255.0/24. There is an obvious problem with the lower of these two summaries, 10.1.0.0/17, since 10.1.127.0/24 is being used as the DMZ connecting this network to external networks. Does the overlap mean that we can't summarize this address range?
Noremember that routers always make a forwarding decision based on the longest prefix match, which means a router switching a packet which could be switched based on two different learned paths will use the more specific one. Assume we go ahead and summarize at intermediate systems A and B, using the summaries indicated above. Intermediate system C would then receive the following paths:
10.4.128.0/17, reachable through intermediate systems A and B
10.1.0.0/17, reachable through intermediate systems A and B
10.1.127.0/24, reachable through intermediate system D.
If intermediate system C receives a packet destined to 10.1.1.1, for instance, it would switch it along the path available to 10.1.0.0/17, as this is the only match for the destination of the packet. If, however, intermediate system C receives a packet destined to 10.1.127.1, it will find that the packet's destination address matches both 10.1.0.0/17 and 10.1.127.0/24. Because 10.1.1127.0/24 has a longer prefix length (is more specific), C will route the packet along that path towards that destination.
The next issues we must consider when summarizing two points in the network are routing black holes and suboptimal routing on link failure. Suppose that we've configured the 10.1.0.0/17 summary on both intermediate systems A and B, and we then lose the link between A and some remote site, say 10.1.0.0/24, as illustrated in Figure 4-11.
Figure 4 11 A routing black hole and suboptimal routing
Even though this link fails, intermediate systems A and B will still be advertising the 10.1.0.0/17 summary to C and the rest of the core. Suppose that C chooses the path through A instead of the path through B. If there is filtering of some type in place, A simply might not know about the path through E and will drop the packets (see the earlier section "Routing Black Holes").
If A does know about this alternate path (which is generally the case in an IS-IS network), it will send the packets along to E, which will then forward the packets to B, which will then forward them to the intermediate system F. Of course, if these are truly remote sites, the links between these sites and the hubs will most likely not be sized to handle the traffic for two sites. For example, in this case the links between E and intermediate systems A and B will likely become overwhelmed and either fail or cause some traffic to be dropped.
The most common solution to routing black holes and suboptimal routing is to make certain that some other link, designed to handle the traffic load, is available between intermediate systems A and B within the level 1 routing domain. Here the direct link between A and B should be placed in the level 1 routing domain, along with the remote sites. As a result, traffic received by A, and destined to the remote site, will traverse the link to B and then be routed to F.
Remote Site Optimal Routing
Finally, we need to consider suboptimal routing within the level 1 routing domain created for the remote sites. Figure 4-12 illustrates this scenario.
Figure 4 12 Suboptimal routing within the remote sites level 1 domain
For clarity, only one remote site, 10.1.120.0/24, is shown in Figure 4-12. If intermediate systems A and B are setting their attached bits, each remote site IS will choose one of the two possible exit points, or it will decide to load share between the two exit points, depending on what the metrics of each link are within the routing domain. Let's assume the network administrator wants to direct the traffic towards the data center through intermediate system A.
We could accomplish the task with a number of techniques, including the use of static routes. However, we'd rather use something that relies entirely on the IS-IS protocol already deployed in the network and requires minimal configuration and maintenance. The most straightforward way to achieve the desired result is to leak the routes to the data center into the level 1 routing domain at intermediate system A, and not leak them at intermediate system B. The remote sites would now use the leaked routes to reach the data center, and the default routes, which result from the attached bit set on A and B, to reach all other destinations outside the level 1 domain.
Remote Site Routing Domain
After considering each of the issues outlined in the section above, the best option for the remote site intermediate systems is to put them all in one domain, as illustrated in Figure 4-13.
Figure 4 13 Remote site level 1 domain
The Data Center
Next, let's consider how to handle the data centershould it be a single level 1 routing domain? Figure 4-14 shows just this area of the network for closer examination.
Figure 4 14 The data center
There are two primary considerations when we examine this small piece of the network. The first is those parallel links where all the servers are attached at the top, running between intermediate systems G and H. While it might not seem like a big deal, as the number of links increases, the number of duplicate LSPs flooded along these parallel links could become excessive. What can we do to cut down on the amount of flooding in this area of the network?
The first solution we want to explore is to mark the interfaces to which servers are connected as passive interfaces. This setting allows IS-IS to route to and from the server links, but not through them. Since these links probably were not sized with the idea of transiting traffic over them, the result is acceptable.
Marking an interface passive in the Cisco IOS Software instructs the routing protocol, in this case IS-IS, to include the interface in any reachability information it is transmitting to other intermediate systems, but not to run the protocol over the actual link connected to the interface. In practice, this means IS-IS will not transmit hello packets over an interface which is marked passive in the Cisco IOS Software.
Another option is to use a mesh group to prevent A and B from excessively flooding across these links. They will still route traffic across (through) each of these links, but they will not flood any information across them. For this network, we'll choose to configure all the server links as a mesh group, and only to forward information across the one direct link between these two intermediate systems with no servers attached. This last task is achieved by configuring a lower metric on that link.
Should we also worry about these links flooding into the rest of the network? No, because intermediate systems G and H will advertise only one link between them anyway. Intermediate system G will recognize, from the information in the hello packets, that all of these parallel links are connected to H, so it will only include in its LSP one connection to H, rather than one for every link.
The second consideration for this area of the network is if part of it should be L1 only, or if this entire piece should be included in the L2 routing domain. The three primary options seem to be
Making the entire set of intermediate systems, G, H, I and J, all part of the L2 routing domain.
Making intermediate systems G and H a part of an L1 routing domain, while I and J are part of the L2 routing domain.
Making all four intermediate systems, G, H, I and J, a part of an L1 routing domain.
Are there any major advantages or disadvantages to each of these approaches? In this case the decision comes down to at which point the summarization should occur. Since the data center appears to be a self-contained unit behind just two intermediate systems (G and H), we'll opt to place them in the L1 routing domain. We can then summarize the 10.2.0.0/24 through 10.2.15.0/24 routes into just one advertisement. In order to give the data center room to grow, we'll summarize 10.2.0.0/16 on intermediate systems G and H. Figure 4-15 illustrates the results of these decisions.
Figure 4 15 Summarization within the data center
The first approach, placing all the intermediate systems in the level 2 domain,
Connections to the Outside
There are several connections to outside networks; Figure 4-16 illustrates this part of the network.
Figure 4 16 Connections to the outside of the network
We've added a bit more detail in Figure 4-16 about the connections to outside networks, including routers that belong to the Internet Service Providers or partners and their routing protocol connections. Should this small group of intermediate systems be placed in their own level 1 routing domain?
At first glance, it looks like there will probably be a good number of destinations learned from these various outside connections. However, all those routes (potentially full Internet routing) are carried by BGP and are isolated only to the routers running that protocol. In any case, we still need to propagate, somehow, reachability information about the external prefixes to the rest of the network. To avoid overloading the IS-IS databases with that information, and because all the exits can be reached through intermediate system K, it is easier to just propagate a default route.
Where should the dividing point between this area and the level 2 routing domain within the core be? It could be either on intermediate systems D or K, or on intermediate systems C and J. The biggest advantage to including D in the level 1 routing domain, but not C or J, is that all the configuration required to block the external information within the level 1 area into the core of the network can be placed on a single intermediate system; we can also isolate the DMZ inside the level 1 domain. We'll follow this designintermediate systems D and K in the level 1 routing domain, while C and J are not in itfor simplicity of configuration.
The primary information we want this area to provide to the level 2 routing domain is the default route, so that hosts and servers within the network can reach devices connected to the Internet and the corporate partner's network. We can do this using the ability to originate a 0.0.0.0/0 default route on a L1/L2 router into a level 2 routing domain.
There is also the issue of the DMZ itself, which is the 10.1.127.0/24 network. We summarized around this range when we were working on the design for the remote sites, so we need to be careful that we maintain reachability to this segment from the rest of the network. In this case, the reachability to the DMZ is maintained automatically through the advertisement of level 1 information to the level 2 domain by intermediate system D.
Finally, we need to consider the BGP connections, both internal and external. It might be good to use the IS-IS ability to set the overload bit while BGP is converging on the three border intermediate systems to avoid black holing traffic unnecessarily. Figure 4-17 illustrates the results of these design decisions.
Figure 4 17 The design of the outside connections
Connecting to the Lab Network
Finally, let's consider how we should handle the connection of the lab to the production network. This small piece of the network is illustrated in Figure 4-18.
Figure 4 18 The IT lab
The primary issue when dealing with a network lab connected to a production network is to protect the production part of the network from mistakes and the constant changes propagating from the lab. To do this, it's best to isolate the lab network as much as possible. Rather than summarizing at the connection point between the lab and the production network, we'll use a static route which is redistributed into IS-IS at the L1/L2 border. The redistribution will prevent any accidental inflows of information into the level 2 routing domain and isolate all routing changes from leaving the level 1 domain.
On the other hand, the IT lab is going to want access to the whole routing table information from the production network, so it can be used in testing and for monitoring. To do this, we need to configure the level 1/level 2 border with full route leaking, so the entire level 2 routing table is leaked into the lab network.
Where should the level 1/level 2 routing domain border be placed? The most logical place, at first glance, is on intermediate system L. However, giving the lab a little buffer intermediate system within the level 1 routing domain, where further filtering and access control can be placed, may not be a bad idea, so we'll place the level 1/level 2 border between intermediate system A and the remainder of the core.
Figure 4-19 illustrates the final layout of the routing domains.
Figure 4 19 Routing domain and routing layout
This section contains sample configurations for some of the intermediate systems in the case study. Only the L1/L2 router configurations are included, and only the relevant parts to the case study are shown.
hostname IS_A ! ! Intermediate System A: L1/L2 intermediate system in domain 49.0100. ! The routes from the Data Center are leaked through this node into the ! level 1 domain. The reachability information from the remote sites is ! summarized in two blocks. ! interface POS1/0 description Template for interfaces facing the core. ip router isis isis circuit-type level-2-only ! interface Serial3/1 description Template for interfaces facing the remotes. ip router isis isis circuit-type level-1 ! router isis summary-address 10.1.0.0 255.255.128.0 summary-address 10.4.128.0 255.255.128.0 redistribute isis ip level-2 into level-1 distribute-list 101 net 49.0100.0000.0000.000a.00 metric-style wide log-adjacency-changes ! ! access-list that allows the leaking of only the Data Center routes. ! access-list 101 permit ip 10.2.0.0 0.0.255.255 255.255.0.0 0.0.255.255 ! hostname IS_B ! ! Intermediate System B: L1/L2 intermediate system in domain 49.0100. ! The reachability information from the remote sites is summarized in ! two blocks. ! interface POS1/0 description Template for interfaces facing the core. ip router isis isis circuit-type level-2-only ! interface Serial3/1 description Template for interfaces facing the remotes. ip router isis isis circuit-type level-1 ! router isis summary-address 10.1.0.0 255.255.128.0 summary-address 10.4.128.0 255.255.128.0 net 49.0100.0000.0000.000b.00 metric-style wide log-adjacency-changes ! hostname IS_C ! ! Intermediate System C: L1/L2 intermediate system in domain 49.0400. ! All routes are leaked into the level 1 domain, while all reachability ! information local to the domain is prevented from propagating into the ! core. Reachability to the IT Lab is maintained by redistributing a ! static route. ! interface POS1/0 description Template for interfaces facing the core. ip router isis isis circuit-type level-2-only ! interface POS2/0 description Interface facing intermediate system L. ip router isis isis circuit-type level-1 ! ! First off, the static route (10.3.0.0/16) is redistributed only into ! level-2. All IP reachability is denied from propagating outside the ! level 1 domain and all level 2 routes are leaked into level 1. ! router isis redistribute static ip level-2 redistribute isis ip level-1 into level-2 distribute-list 102 redistribute isis ip level-2 into level-1 distribute-list 103 net 49.0400.0000.0000.000c.00 metric-style wide log-adjacency-changes ! ! The static route points to the Null0 interface because specific ! information should be learned from intermediate system L. The route ! prevents any type of instability from being propagated into the core. ! ip route 10.3.0.0 255.255.0.0 Null0 ! ! These access lists control the flow of information between level 1 and ! level 2 (all denied by 102) and vice versa (all permitted by 103). ! access-list 102 deny ip any any access-list 103 permit ip any any ! hostname IS_D ! ! Intermediate System D: L1/L2 intermediate system in domain 49.0200. A ! default route is originated so that the whole network can reach the ! external destinations (ISPs and Corporate Partners). ! interface FastEthernet0/0 description DMZ ip address 10.1.127.1 255.255.255.0 ip router isis isis circuit-type level-1 ! interface POS1/0 description Template for interfaces facing the core. ip router isis isis circuit-type level-2-only ! ! The default-information originate command creates a default route into ! the level 2 domain; in this case, into the rest of the network. ! router isis default-information originate net 49.0200.0000.0000.000d.00 metric-style wide log-adjacency-changes ! ! IS_D is not running BGP, so it needs a default route itself to reach ! IS_K (10.1.127.2), which has full routing information. ! ip route 0.0.0.0 0.0.0.0 10.1.127.2 ! hostname IS_G ! ! Intermediate System G: L1/L2 intermediate system in domain 49.0300. ! The Data Center routes are summarized and a mesh group is used to ! prevent excessive flooding. ! interface FastEthernet0/0 description Template for the server links. ip router isis isis circuit-type level-1 isis mesh-group 1 ! interface POS1/0 description Template for interfaces facing the core. ip router isis isis circuit-type level-2-only ! ! The circuit type for the POS2/0 link is the default (level-1-2). The ! link is placed in the same mesh group as the other links to prevent ! excessive flooding. Only the level-1 metric needs to be lowered (it ! is 10 by default), as we only want to favor intra-domain traffic ! between the two intermediate systems. ! interface POS2/0 description Link to IS_H with no servers, lower metric. ip router isis isis metric 5 level-1 isis mesh-group 1 ! router isis summary-address 10.2.0.0 255.255.0.0 net 49.0300.0000.0000.0010.00 metric-style wide log-adjacency-changes ! hostname IS_H ! ! Intermediate System H: L1/L2 intermediate system in domain 49.0300. ! The Data Center routes are summarized and a mesh group is used to ! prevent excessive flooding. ! interface FastEthernet0/0 description Template for the server links. ip router isis isis circuit-type level-1 isis mesh-group 1 ! interface POS1/0 description Template for interfaces facing the core. ip router isis isis circuit-type level-2-only ! ! The circuit type for the POS2/0 link is the default (level-1-2). The ! link is placed in the same mesh group as the other links to prevent ! excessive flooding. Only the level-1 metric needs to be lowered (it ! is 10 by default), as we only want to favor intra-domain traffic ! between the two intermediate systems. ! interface POS2/0 description Link to IS_G with no servers, lower metric. ip router isis isis metric 5 level-1 isis mesh-group 1 ! router isis summary-address 10.2.0.0 255.255.0.0 net 49.0300.0000.0000.0011.00 metric-style wide log-adjacency-changes !