IEN 196 11 September 1981
ISSUES INVOLVING NON-ROUTING GATEWAYS
B. Bowman & P. Cook
Ford Aerospace & Communications Corporation
Colorado Springs, Colorado
(303-471-9110)
IEN # 196
September 11, 1981
IEN 196 11 September 1981 INTRODUCTION This note presents some proposed modifications to the gateway routing algorithm and the protocol for exchanging routing information described in IEN #109, "How To Build A Gateway". The described algorithm modifications were defined as a result of problems encountered in the implementation of the gateway to gateway control protocol specified in IEN # 109. The problems encountered in implementing the algorithm involve the mechanisms for incorporating non-routing gateways in the catenet. Therefore, this discussion focuses on modifications designed to facilitate use of non-routing gateways in concert with routing gateways in the catenet. As indicated above, the issues discussed resulted from our implementation of the IEN # 109 algorithm. Some initial implementation questions concerning interpretation of the rules for assembling routing updates from non-routing gateways led to our analysis of the design of this routing strategy. From routing strategy design issues, our study progressed to questions regarding the intended/optimal role of non-routing gateways in the catenet. As a result, this note presents specific modifications to IEN # 109 necessary for successful implementation and also includes discussion of the broader issues of the role of the non-routing gateway in the catenet. Finally, we propose a modification to the routing information exchanged in the IEN # 109 algorithm, which we believe has significant advantages in reducing the logical complexity of the algorithm and traffic between gateways. Although we have looked at design approaches of other authors in this field, we have not done an exhaustive search to determine the "novelty" of our approach. We would also like to stress that our goal was not to design a new routing algorithm but simply to implement the IEN # 109 algorithm. In a very real sense, it can be said that we backed into these routing design issues as a natural consequence to our implementation efforts. I. Non-Routing Gateways It should be noted that any solution must be based on an understanding regarding the intended role of the non-routing gateway in the catenet. Unambiguous rules for incorporating non-routing gateways in the routing scheme can only be specified when the intended role is clearly defined. An optimal solution, then, would involve clarification of the role of the non-routing gateway followed by revision of the routing specification consistent with the defined role. -2-
IEN 196 11 September 1981
IEN # 109, "How to Build a Gateway", contains a section (Sect.9,
Page 7) discussing the interface between routing gateways and
non-routing gateways and, in particular, discussing the use of a
non-routing gateway by a routing gateway for routing packets.
Two areas of this section are problematic with respect to a
successful implementation. These are, (1) initialization with
respect to the non-routing gateway and (2) computation of the
minimum distance vector.
A. Initialization
IEN # 109 gives the following instructions for initializing with
respect to a non-routing neighbor gateway.
* "For each non-routing neighbor gateway of gateway G1, compute
the routing update that would be sent to G1 assuming that all
gateways and network connections are operational. These routing
updates are assembled in G1."
This rule can be interpreted in one of two ways. The first is to
assemble the non-routing gateway's routing update showing actual
distances to each network from the non-routing gateway. Figure 1
shows an example of this interpretation.
In this example, Gateway (B) is a non-routing gateway and Gateway
(A) is a routing gateway. Initially, G(A) assembles G(B)'s
update as actual distances from G(B) to the 3 networks. Based on
this initialization, G(A) assumes that it is a distance of 1 from
Net.#1 because the non-routing gateway provides the only path to
Net.#1. G(A) also assumes that it is directly (0) connected to
Nets.#2 and #3. G(A) builds its initial minimum distance vector
reflecting these distances.
Assume, then, that G(A)'s link to Net.#3 goes down at some time.
When this happens, G(A) recomputes it's minimum distance vector.
Since G(A) is no longer connected to Net.#3, there is no path
available unless the non-routing gateway's path is used. G(B)'s
update indicates a distance of 1 to Net.#3. Therefore, G(A)
assumes a path to Net.#3 of distance 2 through G(B). Of course,
there is no path to Net.#3 but G(B) does not accept or transmit
routing tables so any packets addressed to Net.#3 will shuttle
indefinitely (until the IP4 time to live field is decremented to
zero) from G(A) to G(B) to G(A), etc. When this example is
extended to larger catenets, the shuttling problem persists and
simply involves higher distance shuttles. Therefore, this
interpretation of the initialization instructions is unworkable.
-3-
IEN 196 11 September 1981 FIGURE 1: INITIALIZATION OF NON-ROUTING GATEWAY UPDATE "ACTUAL DISTANCE" METHOD CATENET CONFIGURATION __________ __________ __________ | | | | | | | NET #1 |----G(B)----| NET #2 |----G(A)----| NET #3 | |__________| |__________| |__________| where G(A) = Gateway A: Routing Gateway G(B) = Gateway B: Non-Routing Gateway G(A) DISTANCE MATRIX AFTER INITIALIZATION NETWORKS GATEWAYS 1 2 3 A 1 0 0 B 0 0 1 G(A) DISTANCE MATRIX (ASSUMING LOSS OF CONNECTIVITY TO NET.#3) NETWORKS GATEWAYS 1 2 3 A 1 0 2 B 0 0 1 -4-
IEN 196 11 September 1981 The other possible interpretation of the IEN # 109 instructions is to assemble the non-routing gateway's update showing actual distances to each network from the non-routing gateway only when the non-routing gateway is as close to or closer to the network than the gateway assembling the routing update. This interpretation incorporates a rule from Section 7, page 7 regarding computation of routing updates. Figure 2 shows an example of this interpretation. In this example, Gateway (B is a non-routing gateway and Gateways A and C are routing gateways. The example is presented from the perspective of Gateway A. Gateway B's update is initialized showing 0 distance to Nets.#1 and #2. A distance of 1 is shown to Net.#3 because Gateway B is as close to Net.#3 as is Gateway A. An infinite distance is shown to Net.#4 because Gateway A is closer to Net.#4 than Gateway B. The example shows receipt of a routing update from Gateway C which shows Gateway C's distances calculated according to the rules for preparation of a routing update. Gateway A calculates its minimym distance vector as 0 distance from Nets.#2 and #4 because they are directly connected, distance 1 from Net.#1 because of the path through Gateway B and distance 1 from Net.#3 because of the path through Gateway C. Assuming that Gateway C loses connectivity to Network #3 at some time, Gateway C would send Gateway A a new routing update showing infinite distance to Network #3. Gateway A would then recalculate its minimum distance vector. G(A) would assume that the only path to Net.#3 is through the non-routing gateway (G(B)) and that this is a path of distance 2. This occurs because G(B) neither accepts nor transmits routing updates so it is unaware of the connectivity loss and G(A) is assembled with G(B)'s routing update so there is no provision for changes to this information in G(A). The situation is complicated by the fact that G(A), upon recalculation of its minimum distance vector, will transmit a routing update to G(C) showing the distance of 2 from G(A) to Network #3. G(C) will recompute its distance vector to show a path of distance 3 from G(C) to Network #3. Since no path actually exists and all 3 Gateways believe a path exists, packets addressed to Net.#3 will shuttle indefinitely (until the IP4 time to live field is decremented to zero). Thus it seems that Thus it seems that both interpretations of the IEN # 109 instruction for assembling the non-routing gateway's update present serious problems. -5-
IEN 196 11 September 1981 FIGURE 2: INITIALIZATION OF NON-ROUTING GATEWAY UPDATE "TAILORED UPDATE" METHOD CATENET CONFIGURATION __________ __________ __________ | | | | | |----G(A)----| NET #4 | | NET #1 |----G(B)----| NET #2 | |__________| | | | | __________ | | | | | | |__________| |__________|----G(C)----| NET #3 | |__________| where G(A) = Gateway A: Routing Gateway G(B) = Gateway B: Non-Routing Gateway G(C) = Gateway C: Routing Gateway G(A) DISTANCE MATRIX AFTER INITIALIZATION NETWORKS GATEWAYS 1 2 3 4 A 1 0 1 0 B 0 0 1 INF C 1 0 0 INF G(A) DISTANCE MATRIX (ASSUMING LOSS OF CONNECTIVITY TO NET.#3) NETWORKS GATEWAYS 1 2 3 4 A 1 0 2 0 B 0 0 1 INF C 1 0 INF INF -6-
IEN 196 11 September 1981
B. Computation of the Minimum Distance Vector
IEN # 109 goes on to provide the following instructions for
calculating the minimum distance vector when non-routing gateways
are included.
* "The gateway, G(A), first computes its minimum distance
vector using only the routing updates from neighbors that
participate in routing. If the minimum distance to any
network is infinity, i.e., the network is unreachable via
any of the routing gateways, then the minimum distance to
that network is re-computed using the routing update
compiled for the non-routing neighbor gateway."
This rule appears inefficient if we look at the example shown in
Figure 3. In this example, Gateway B is a non-routing gateway
and Gateways A and C are routing gateways. The example is
presented from the perspective of Gateway A and the focus of the
example is on the distance to Network #1.
G(A) is assembled with the update of G(B) (the non-routing
gateway) and G(B) shows a distance of 0 from Net.#1 since it is
directly connected. In our example, G(A) has received an update
from G(C). G(C) shows a distance of 1 to Net.#1 based on its
path through G(B). According to the rule, G(A) has to prefer the
route through G(C) since G(C) is a routing neighbor and G(B) is
non-routing. Therefore, G(A) assumes a path of distance 2 to
Net.#1 and G(A) will route to G(C) any packets addressed to
Net.#1. On receipt of the packet addressed to Net.#1, G(C) will
route the packet to G(B) where it will be delivered to Net.#1.
This solution is not unworkable but it does cause delay and
inefficiency by forcing an additonal transfer with respect to the
optimal path. In a geographically dispersed network, this delay
and additional network traffic could become significant.
-7-
IEN 196 11 September 1981 FIGURE 3: COMPUTATION OF THE MINIMUM DISTANCE VECTOR CATENET CONFIGURATION __________ __________ __________ | | | | | |----G(A)----| NET #4 | | NET #1 |----G(B)----| NET #2 | |__________| | | | | __________ | | | | | | |__________| |__________|----G(C)----| NET #3 | |__________| where G(A) = Gateway A: Routing Gateway G(B) = Gateway B: Non-Routing Gateway G(C) = Gateway C: Routing Gateway G(A) DISTANCE MATRIX NETWORKS GATEWAYS 1 2 3 4 A 2 0 1 0 B 0 0 1 INF C 1 0 0 1 -8-
IEN 196 11 September 1981
C. Proposed Solution to Non-Routing Gateway Problems
Role Clarification
As indicated above, a solution to the problems in incorporation
of non-routing gateways must address clarification of the role of
the non-routing gateway in the catenet. Three possible roles for
the non-routing gateway have been identified and are discussed in
this section. In general, we see potential for non-routing
gateways to be used to provide 1) the "only" route, 2)
"redundant" routes or 3) "parallel" routes. Use of the
non-routing gateway to provide "redundant" and "parallel" routes
is discussed in Section D.
Figure 4 illustrates use of the non-routing gateway to provide
the "only" route. This role basically restricts the use of
non-routing gateways to allow (i.e., recognize) them in the
catenet only when the non-routing gateway provides the "only"
connection to a network or network branches.
Although other possible roles will be discussed , this particular
role definition is the one we recommend. Using non-routing
gateways where they provide the "only" possible route seems the
most logical use of these gateways and also lends itself most
easily to unambiguous rule definition. The mechanisms for
incorporating non-routing gateways consistent with the "only"
route role are described in the following paragraphs.
-9-
IEN 196 11 September 1981 FIGURE 4: NON-ROUTING GATEWAY AS "ONLY" ROUTE CATENET CONFIGURATION __________ __________ | | | | | NET #1 |----G(R)----| NET #3 | |__________| |__________| | | | | G(R) | | | | | __________ | | | | | NET #2 |----G(R)----------| |__________| | | G(NR) | | __________ | | | NET #4 | |__________| | | etc. (network branch) G(R) = Routing Gateway G(NR) = Non-Routing Gateway NOTE: In this configuration, the non-routing gateway provides the only connection to Network #4. -10-
IEN 196 11 September 1981 Rules for "Only" Route Role It appears that the initialization and route computation problems associated with non-routing neighbor gateways described above, could be solved by a few rule changes. The proposed new rules are as follows: * IEN # 109 Rule: For each non-routing neighbor gateway of gatewayG(A), compute the routing update that would be sent to G(A) assuming that all gateways and network connections are operational. These routing updates are assembled in G(A). New Rule: F or each non-routing neighbor gateway of gateway G(A), compute the routing update that would be sent to G(A) assuming that all gateways and network connections are operational. In computing these routing updates, show actual (non-infinite) distances to networks which are reachable only through the non-routing gateway. Networks which are reachable by a routing gateway shall be initialized with distance equal infinity. These routing updates are assembled in G(A). IEN # 109 Rule: T he gateway, G(A), first computes its minimum distance vector using only the routing updates from neighbors that participate in routing. If the minimum distance to any network is infinity, (i.e., the network is unreachable via any of the routing gateways), then the minimum distance to that network is re-computed using the routing update compiled for the non-routing neighbor gateway. New Rule: The gateway, G(A), first computes its minimum distance vector using all the routing updates (including updates from both routing and non-routing gateways). These proposed rule changes, taken together, cause non-routing gateways to be used only when they provide the only path to a network or string of networks. These rules also eliminate the possibility of selecting any other path (i.e., through a routing gateway) when a non-routing gateway provides the only path. Thus, non-routing gateways are used for packet routing if and only if they provide the only route to a destination. -11-
IEN 196 11 September 1981 Figure 5 shows how the new rules solve the problems identified in Examples 1, 2, and 3. In this example, Gateway B is a non-routing Gateway and Gateways A and C are routing gateways. The example is presented from the perspective of Gateway A. The G(A) Distance Matrix after initialization shows that the problem depicted in Figure 3 (computation of the minimum distance vector) is resolved through application of the new rules. Since the minimum distance vector is calculated based equally on the routing and non-routing gateway updates, the shortest path (and only path) to Network #1 is selected by both routing gateways (G(A) and G(C)). The G(A) Distance Matrix resulting from loss of connectivity to Net.#4 shows that the problem depicted in Figure 1 (Initialization of non-routing gateway update) is resolved through use of the new rules. Since the assembled non-routing gateway update no longer shows paths to networks reachable by routing gateways, G(A) is able to determine that Net.#4 is now unreachable and does not attempt to route traffic to Net.#4 through Gateway (B). The G(A) Distance Matrix resulting from loss of connectivity to Net.#3 shows that the problem depicted in Figure 2 (Initialization of non-routing Gateway update) is also resolved through application of the new rules. This problem is resolved because the assembled non-routing gateway update no longer show paths to networks reachable by routing gateways. Thus, when Net.#3 is declared unreachable by Gateway C, G(A) determines that Net.#3 is unreachable by all gateways. -12-
IEN 196 11 September 1981 FIGURE 5: PROPOSED SOLUTION CATENET CONFIGURATION __________ __________ __________ | | | | | |----G(A)----| NET #4 | | NET #1 |----G(B)----| NET #2 | |__________| | | | | __________ | | | | | | |__________| |__________|----G(C)----| NET #3 | |__________| where G(A) = Gateway A: Routing Gateway G(B) = Gateway B: Non-Routing Gateway G(C) = Gateway C: Routing Gateway G(A) DISTANCE MATRIX AFTER INITIALIZATION NETWORKS GATEWAYS 1 2 3 4 A 1 0 1 0 B 0 INF INF INF C 1 0 0 INF G(A) DISTANCE MATRIX (ASSUMING LOSS OF CONNECTIVITY TO NET.#4) NETWORKS GATEWAYS 1 2 3 4 A 1 0 1 INF B 0 INF INF INF C 1 0 0 INF G(A) DISTANCE MATRIX (ASSUMING LOSS OF CONNECTIVITY TO NET.#3) NETWORKS GATEWAYS 1 2 3 4 A 1 0 INF 0 B 0 INF INF INF C 1 0 INF INF -13-
IEN 196 11 September 1981
D. Other Possible Approaches
Redundant Role
Restricting the use of non-routing gateways in the catenet to
locations where they provide the only configured path and
adoption of the corresponding rule changes is our recommended
solution to the implementation problems we've identified. In
reviewing IEN # 109 and it's predecessor IEN # 30, we find it
difficult to determine the intended role of the non-routing
gateways.
Both papers indicate that non-routing gateways are to be used to
forward traffic only when they provide the only route to a
network. This seems to indicate that the initial intent was to
use non-routing gateways in the role defined above (i.e. "only"
route role). On the other hand, it's possible that the authors
actually intended to use the non-routing gateways to provide the
only configured path and to provide backup routes to networks
connected by routing gateways. This role for non-routing
gateways is what we have called the "redundant " role. Figure 6
illustrates this use of non-routing gateways. This role is
basically an addition to the "only" route role.
Here the non-routing gateway can also be configured in parallel
with a routing gateway but the non-routing path is only used if
connectivity through the routing gateway is lost. Thus, the
non-routing gateway is used as a backup for the routing gateway.
As long as the routing gateway and its connections are
functional, the non-routing gateway is not used to forward any
traffic.
749/
-14-
IEN 196 11 September 1981 FIGURE 6: NON-ROUTING GATEWAY AS "REDUNDANT" ROUTE CATENET CONFIGURATION __________ __________ | |----G(NR)---| | | NET #1 | | NET #2 | |__________|----G(R)----|__________| | | | | G(R) G(R) | | | | __________________________________ | | | NET #3 | |__________________________________| WHERE G(R) = Routing Gateway G(NR) = Non-Routing Gateway -15-
IEN 196 11 September 1981 It seems that this second role interpretation is implementable. Basically, the corresponding rules would be: 1) Assemble routing update showing direct network connections and actual distances to networks reachable only by the non-routing gateway. 2) Calculate minimum distance vector using non-routing gateway paths only when they provide the only route. Implementing this role concept, then, involves the added complexity of the two stage minimum distance vector calculation (with bias toward routing gateway paths). While this may be the role anticipated by the authors of IEN # 109 and # 30, we feel the backup role is of little added value for the additional complexity involved. It seems unlikely to us that networks would buy a processor which was to be idle the majority of the time. Instead, if need existed for a backup, it seems a routing gateway would be a better choice and cost efficient as it could increase bandwidth as well as providing redundancy. Parallel Role At the other end of the spectrum, it is possible that some group might wish to use non-routing gateways in any configuration where routing gateways can be used. In this role, which we call the "parallel" role, non-routing gateways are used to provide additional (parallel) paths and thus effectively increase bandwidth. This role differs from the "redundant" route role in that non-routing gateways are used to forward traffic even when they do not provide the only path. It is this facility which allows the effective increase in real-time bandwidth. Whether this intended role is implementable is an open question. Obviously, it would be more complex to implement and would basically require a redefinition of some of the ground rules. We rejected this possible role application because it significantly reduces catenet reliability and seems to defeat the whole idea behind the routing algorithm function. If non-routing gateways are used routinely to forward traffic in parallel with routing gateways, connectivity changes occuring with the non-routing gateways are unreported and therefore the non-routing gateways could easily become traffic sinks. -16-
IEN 196 11 September 1981 We felt that the only possibility for using non-routing gateways to increase bandwidth would be to implement the role outside the gateway-gateway control protocol. This function could be implemented as a host function where there was an understanding between hosts on two networks that traffic would be split on some basis between routing and non-routing gateways. Thus, the decision to sacrifice catenet reliability in favor of increased traffic flow would be made by the parties involved without involving any gateway control function awareness or participation. II. Routing Update Calculations In the process of designing the gateway routing software IAW IEN # 109, we determined that a subset of the routing algorithm rules dictated a logically cumbersome implementation. These rules, from IEN # 109 are as follows: A. "The gateway reports its distance to a network to a neighbor only if it is as close or closer to a network than its neighbor." (p.7) B. "The gateway maintains a copy of the most recent routing updates that it sent to each of its neighbors. The gateway computes the new routing updates to send to each of its neighbors. If any of these routing updates are different than the preceding updates, then the gateway sends new routing updates to its neighbors." (p.7) Rule A calls for "tailoring" routing updates for each neighbor such that the transmitting gateway reports its distance relative to the connectivity of each recipient gateway. Thus, when a gateway calculates its routing update, it first calculates its minimum distance vector and then compares that vector to the last routing update from each neighbor. From this comparison, it creates the "tailored" routing update for each neighbor which reflects not only the transmitting gateway's connectivity but also the connectivity of each neighbor. The comparison process is performed as follows: -17-
IEN 196 11 September 1981 DO (For each neighbor) DO (For each network) IF (Transmitting gateway is as close or closer to the network) Report actual distance ELSE (Report infinity distance) ENDDO ENDDO Rule B requires that, having performed the calculations based on Rule A resulting in routing updates for each neighbor, these updates be compared to the updates last sent to each neighbor. If any of the updates are different from those last sent, all the updates are transmitted. If there are no changes to any neighbor since the last transmittal, no updates are sent. Implementation of this rule requires that copies of the last updates sent be maintained at the gateway. The basis for these rules, particularly Rule A, is prevention of shuttling which could occur if only one path existed to a network and that network became disconnected. If gateways were allowed to report actual distances rather than infinity, then two gateways could, because of their dependent or relative distance relationship, begin step increments of their distances to the disconnected network eventually approaching infinity and thus shuttle packets until the IP4 time to live field is decremented to zero. This shuttling problem is, in fact, a natural outcome of a routing scheme which involves the exchange of distance information only. Thus, the problem can be solved by the addition of special rules such as Rule #1 above or can be solved by going to a routing scheme which exchanges connectivity information (distance and path). -18-
IEN 196 11 September 1981 After studying the current solution of exchanging relative distance vectors, it seems that going to a routing scheme involving exchange of both connectivity information and distance provides a simpler and more efficient solution. The added information exchange proposed is more than offset by the computational simplicity and the reduction in routing update traffic afforded. The routing scheme proposed provides for including in routing updates both the actual distance vector (as opposed to the current tailored relative distance vector) and the routing table. Figure 7 is a configuration used as the basis for illustration of the updates. To see how these routing updates are constructed, examine the update from G3 in Figure 8 (Step 3). G3 is directly connected to Nets.#2 and #26, so G3 shows a distance of 0 to each with G3 as the "next" gateway address for routing. G3 is 1 away from Net.#1 and this path to Net.#1 is through G2. Similarly, G3 is 1 away from Nets.#3 and #27 and these paths are through G5 and G6 respectiviely. G3 is also a distance of 1 from Net.#10. -19-
IEN 196 11 September 1981 FIGURE 7: CATENET CONFIGURATION __________ __________ | | | | | NET #1 | | NET #4 | |__________| |__________| | | | | G2 G4 | | | | __________ __________ | | | | | NET #26 |-----G1----| NET #10 | |__________|---- |__________| | | | | | | G3 |------------G5 | | | | __________ __________ | | | | | NET #2 | | NET #3 | |__________| |__________| | | G6 | | __________ | | | NET #27 | |__________| NOTE: Gateways G1 - G6 are all routing gateways. -20-
IEN 196 11 September 1981 FIGURE 8: ROUTING UPDATES BASED ON NEW ROUTING METHOD (SEE FIGURE 7 FOR CONFIGURATION) NETWORK DISTANCES/"NEXT" NEIGHBOR ADDRESS(ES) STEP SOURCE DEST. 1 2 3 4 10 26 27 1. G1 ALL Distance INF INF INF INF 0 0 INF "Next" G1 G1 2. G2 ALL Distance 0 1 1 2 1 0 2 "Next" G2 G3 G5 G1 G1 G2 G3 3. G2 ALL Distance 1 0 1 2 1 0 1 "Next" G2 G3 G5 G1 G1 G3 G6 G5 G5 4. G4 ALL Distance 2 2 1 0 0 1 3 "Next" G1 G1 G5 G4 G4 G1 G1 G5 G5 G5 G5 5. G5(10) ALL Distance 1 1 0 1 0 0 2 "Next" G2 G3 G5 G4 G5 G5 G3 6. G5(26) ALL Distance 1 1 0 1 0 0 2 "Next" G2 G3 G5 G4 G5 G5 G3 7. G1 ALL Distance 1 1 1 1 0 0 2 "Next" G2 G3 G5 G4 G1 G1 G3 Assume loss of connectivity by G2 to Net.#1 8. G2 ALL Distance INF 1 1 2 1 0 2 "Next" G3 G5 G5 G5 G2 G3 G1 G1 9. G1 ALL Distance INF 1 1 1 0 0 2 "Next" G3 G5 G4 G1 G1 G3 NOTE: G5(10) is gateway 5 on network 10. A gateway which is a neighbor on two networks is treated as two gateways. Thus G5 is identified as G5(10) and G5(26) by Gateway 1. -21-
IEN 196 11 September 1981 FIGURE 9: ROUTING UPDATES BASED ON IEN # 109 METHOD (SEE FIGURE 7 FOR CONFIGURATION) NETWORK DISTANCES SOURCE DEST. 1 2 3 4 10 26 27 G1 ALL INF INF INF INF 0 0 INF G2 G1 0 1 1 2 1 0 2 G1 G2 INF INF INF INF 0 0 INF G1 G3 1 2 2 3 0 0 3 G1 G4 1 2 2 3 0 0 3 G1 G5(10) 1 2 2 3 0 0 3 G1 G5(26) 1 2 2 3 0 0 3 G3 G1 1 0 1 2 INF 0 1 G1 G2 INF 1 INF INF 0 0 2 G1 G3 1 INF INF 2 0 0 INF G1 G4 1 1 2 2 0 0 2 G1 G5(10) 1 1 2 2 0 0 2 G1 G5(26) 1 1 2 2 0 0 2 G4 G1 INF INF 1 0 0 INF INF G1 G2 INF 1 INF 1 0 0 2 G1 G3 1 INF INF 1 0 0 INF G1 G4 1 1 INF INF 0 0 2 G1 G5(10) 1 1 2 1 0 0 2 G1 G5(26) 1 1 2 1 0 0 2 G5(10) G1 1 1 0 1 0 0 2 G5(26) G1 1 1 0 1 0 0 2 G1 G2 INF 1 1 1 0 0 2 G1 G3 1 INF 1 1 0 0 INF G1 G4 1 1 1 INF 0 0 2 G1 G5(10) 1 1 INF 1 0 0 2 G1 G5(26) 1 1 INF 1 0 0 2 Assume loss of connectivity by G2 to Net.#1. G2 G1 INF 1 1 INF INF 0 2 G1 G2 7 1 1 1 0 0 2 G1 G3 INF INF 1 1 0 0 INF G1 G4 INF 1 1 INF 0 0 2 G1 G5(10) INF 1 INF 1 0 0 2 G1 G5(26) INF 1 INF 1 0 0 2 -22-
IEN 196 11 September 1981 However, in this case, G3 has two paths of distance 1 through which it can reach Net.#10. G3 can go through G1 to reach Net.#10 in 1 hop or it can go through G5. Since both paths are equal and minimum distance, both are reported in the routing update. When routing updates are constructed to include both distance and connectivity information as described above, gateways receive enough information to perform path checks. This capability enables gateways to avoid shuttling problems. The performance of path checks is illustrated in Figure 7. In Figure 8, step 8, G2 sends a routing update which shows that G2 has lost connectivity to Net.#1 (i.e., distance =inf.). G1 then recomputes its minimum distance and routing with respect to Net.#1. In these calculations G1 wants to find the shortest path but also wants to ensure that it is a "true" path. Therefore, G1 looks at the first path of distance 1. This path is provided by G3. However, G3's "next" neighbor address on this path is G2. G2 now shows a path of infinity to Net.#1, so G1 rejects the G3 route. In examining the other routes of distance 1 (i.e., G5(10) and G5(26)), G1 finds that they all go through G2 which G1 knows is disconnected. Thus, all the paths of distance 1 are rejected. Next, G1 looks at the route of distance 2 provided by G4. G4 shows two "next" addresses, G1 and G5, G1 rejects the path through "next" address G1 since this path would obviously result in shuttling. G1 then traces the route through "next" address G5. Looking at the routing update provided by G5, G1 sees that G5 intends to route traffic addressed to Net.#1 through G2. G2 has already been identified as a dead-end. As G1 has examined all known routes to Net.#1 and found no acceptable route, G1 determines that it is infinity distance to Net.#1 and sends a routing update to all its neighbors showing infinity distance to Net.#1 (step 9). The rules involved in the routing scheme described in the example plus a few additional rules of the proposed routing scheme are defined as follows: A. On transmission of routing updates, the gateway reports its actual distance (minimum distance vector) from each network. In addition, for each network, the gateway reports the "next" gateway address through which it will route any packets addressed to the network. If more than one path of the same minimum distance exists, the gateway will report all possible "next" gateway addresses associated with that network. In IEN # 109 terminology, then, each gateway exchanges its "minimum distance vector" and its "routing table (list of neighbor gateways through which to send traffic to each network)." -23-
IEN 196 11 September 1981 B. On transmission of routing updates, the gateway sets a timer The transmitting gateway does not recompute its minimum distance vector or send any new routing updates prior to timer expiration. C. Gateways calculate their routing updates and routing tables on the basis of the minimum distance rule. Having selected the minimum distance path to a network, the gateway checks the "next" gateway address. 1. If the "next" gateway address is this gateway this path is considered unacceptable and the next candidate path is checked. 2. If the "next" gateway address is other than this gateway, use the information in the routing update matrix to determine if this path (distance of 1 or greater) is through a gateway which has reported "infinite" distance to the network in question. If any step of the path is through a gateway showing "infinite" distance to the network, the path is considered unacceptable and the next candidate path is checked. Figure 8 shows the routing updates transmitted for the configuration shown in Figure 7 when routing is performed IAW IEN # 109. Figure 8 shows the routing updates transmitted for the same configuration (Figure 7) when the proposed routing scheme is used. Both examples are worked from the perspective of G1. The examples show the differences in the routing updates generated under each rule. In both cases, packets would be routed correctly. In the proposed routing scheme (see Figure 8), fewer routing updates are transmitted with the same results obtained. This reduced traffic is due, in part, to the rule requiring the gateway to observe a time-delay between transmission of routing packets. This rule is particularly useful when bringing a gateway on-line because it allows the gateway to receive updates from all or almost all of its neighbors before responding with its next updates. In addition, the gateway is able to respond to the loss of connectivity to Net.#1 correctly based on the update input from G2 (see Figure 8) following the new method whereas, following the old rules (see Figure 9), G1 must receive updates from all neighbors before correctly determining that it has no path to Net.#1. -24-
IEN 196 11 September 1981 Under the proposed method, the gateway has a more complex algorithm to calculate its routing table. However, once calculated, the gateway does not need to "tailor" the updates to each neighbor but sends the same information to all neighbors. Also, the gateway does not maintain a copy of the last update transmitted to determine whether there is new information to be transmitted since it transmits updates only when its routing table changes. Under IEN # 109, the gateway is required to maintain copies of each update last sent to each neighbor and compose the new "tailored" updates on an individual basis to those last sent. Finally, the proposed routing method can be correctly implemented without requiring any special rules regarding treatment of non-routing neighbors. The path checks built into the new routing scheme preclude the shuttling problems described above which could have occured if non-routing gateways were not treated as exceptions. References 1) V. Strazisar, "Gateway Dynamic Routting", IEN # 25, Bolt, Beranek and Newman, January 25, 1978. 2) V. Strazisar, R. Perlman, "Gateway Routing, An Implementation Specification", IEN # 30, April 11, 1978. 3) V. Strazisar, "How to Build a Gateway", IEN # 109, August 31, 1979. -25-
mirror server hosted at Truenetwork, Russian Federation.