A New AURP Loop Detection Mechanism
Greg Bruell <gbruell@wellfleet.com> Tue, 27 April 1993 21:58 UTC
Received: from ietf.nri.reston.va.us by IETF.CNRI.Reston.VA.US id aa16242; 27 Apr 93 17:58 EDT
Received: from CNRI.RESTON.VA.US by IETF.CNRI.Reston.VA.US id aa16238; 27 Apr 93 17:58 EDT
Received: from cayman.cayman.com by CNRI.Reston.VA.US id aa17704; 27 Apr 93 17:58 EDT
Received: by cayman.Cayman.COM (4.1/SMI-4.0) id AA02936; Tue, 27 Apr 93 17:24:46 EDT
Return-Path: <gbruell@wellfleet.com>
Received: from lobster.wellfleet.com by cayman.Cayman.COM (4.1/SMI-4.0) id AA02931; Tue, 27 Apr 93 17:24:33 EDT
Received: from plato.wellfleet ([192.32.236.15]) by lobster.wellfleet.com (4.1/SMI-4.1) id AA12139; Tue, 27 Apr 93 17:22:57 EDT
Received: by plato.wellfleet (4.1/SMI-4.1) id AA03084; Tue, 27 Apr 93 17:20:18 EDT
Sender: ietf-archive-request@IETF.CNRI.Reston.VA.US
From: Greg Bruell <gbruell@wellfleet.com>
Message-Id: <9304272120.AA03084@plato.wellfleet>
Subject: A New AURP Loop Detection Mechanism
To: apple-ip@cayman.com
Date: Tue, 27 Apr 1993 17:20:17 -0400
X-Mailer: ELM [version 2.3 PL11]
Here's a rough draft of a proposal for using BGP's loop detection mechanism in AURP. The reason for making this proposal now is because AURP will be discussed at the up coming Appletalk Networking Forum at Mactivity and I'd like to give people a chance to think about it. Greg. Draft A New AURP Loop Detection Draft Greg Bruell Wellfleet Communications 4/27/93 AURP version 1 is limited to topologies that don't have loops. This is because AURP allows the user to map network numbers and in the context of a loop AURP can map the network recursively such that the same network number is mapped multiple times within a single domain. The mechanism employed by AURP to detect a loop only finds out about the loop after it's created. This means that possible recursive mapping behavior can happen before AURP can do anything about it. In addition there is no mechanism for deciding which path should be taken if a loop is discovered. The Boarder Gateway Protocol has a loop detection mechanism that detects the loop before it's created and can therefore be used safely in the context of mapping. The way BGP does this is to propogate the entire domain path through which each individual route is learned. In order for AURP to employ BGP's loop detection mechanism the following changes must be made. 1) Each transit AURP speaker must prepend all routes that it learns externally with its domain id. External networks consist of the Appletalk routing tuple plus the entire domain path leading back to the original source of the route. These changes effect: a) the packet format for RI's (both parsing an generation) b) the storage or AURP routes c) the logic for AURP route selection 2) Each AURP speaker must open an AURP Tr connection with all other AURP speakers in it's domain. All external routes learned by the AURP router must be sent to all other AURP routers. This is done so that AURP routers can distinguish between internal and external routes. This is needed only for transit or multihomed AURP domains. These changes effect: a) the state machine for AURP connections b) the logic for storage of AURP routes c) a new ddp type should be reserved for AURP Tr d) the internal connections must be configured (although one could use NBP for router discovery) A New AURP Loop Detection G. Bruell Example: Domain A Domain B ____________ ____________ | _1__BR1-----------BR3__1__ | | | | | | | | IR1 | | IR2 | | |_2__BR2-----------BR4__2__| | |____________| |____________| IR = internal router BR = boarder router Note the network numbers in the two domains are the same (1, 2). Mapping is enabled on both external links. Let's assume for this example that the boarder routers come up in the order: BR1, BR2, BR3, BR4 although it doesn't matter which order the routers come up. 1) BR1 comes up and tries to establish all internal links and external links. 2) BR2 comes up and establishes an internal link with BR1. 3) BR3 comes up and establishes an external link with BR1. a) BR3 advertises: B1-1,2-2 b) BR1 advertises: A1-1,2-2 4) BR1 maps B1-1,2-2 to B3-3,4-4 5) BR3 maps A1-1,2-2 to A3-3,4-4 6) BR1 advertises B1-1,2-2 to BR2 and 3-3,4-4 internally 7) BR3 advertises 3-3,4-4 internally 8) BR4 comes up and establishes an internal link with BR3 and an external link with BR2 9) BR3 advertises A1-1,2-2 to BR4 10) BR2 advertises A1-1,2-2 to BR4 11) BR4 finds A1-1,2-2 being advertised externally and applies the policy of taking possibly mapped routes from internal neigbors over external routes. (NOTE: One alternative is that both mapped and unmapped versions of routes are sent internally in which case it doesn't matter which path the router choses). After thinking about this some more I've decided that AURP+ should use exactly the same policy as BGP. This means that the router with the lowest BGP identifier (some equivalent identifier would be need for AURP+) is the boarder router that gets to advertise the route internally.
- A New AURP Loop Detection Mechanism Greg Bruell