draft-ietf-idr-aigp-03.txt   draft-ietf-idr-aigp-04.txt 
Network Working Group Pradosh Mohapatra Network Working Group Pradosh Mohapatra
Internet Draft Rex Fernando Internet Draft Rex Fernando
Intended Status: Proposed Standard Eric C. Rosen Intended Status: Proposed Standard Eric C. Rosen
Expires: October 16, 2010 Cisco Systems, Inc. Expires: April 8, 2011 Cisco Systems, Inc.
James Uttaro James Uttaro
ATT ATT
April 16, 2010 October 8, 2010
The Accumulated IGP Metric Attribute for BGP The Accumulated IGP Metric Attribute for BGP
draft-ietf-idr-aigp-03.txt draft-ietf-idr-aigp-04.txt
Abstract
Routing protocols that have been designed to run within a single
administrative domain ("IGPs") generally do so by assigning a metric
to each link, and then choosing as the installed path between two
nodes the path for which the total distance (sum of the metric of
each link along the path) is minimized. BGP, designed to provide
routing over a large number of independent administrative domains
("autonomous systems"), does not make its path selection decisions
through the use of a metric. It is generally recognized that any
attempt to do so would incur significant scalability problems, as
well as inter-administration coordination problems. However, there
are deployments in which a single administration runs several
contiguous BGP networks. In such cases, it can be desirable, within
that single administrative domain, for BGP to select paths based on a
metric, just as an IGP would do. The purpose of this document is to
provide a specification for doing so.
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 2, line 9 skipping to change at page 3, line 5
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Abstract
Routing protocols that have been designed to run within a single
administrative domain ("IGPs") generally do so by assigning a metric
to each link, and then choosing as the installed path between two
nodes the path for which the total distance (sum of the metric of
each link along the path) is minimized. BGP, designed to provide
routing over a large number of independent administrative domains
("autonomous systems"), does not make its path selection decisions
through the use of a metric. It is generally recognized that any
attempt to do so would incur significant scalability problems, as
well as inter-administration coordination problems. However, there
are deployments in which a single administration runs several
contiguous BGP networks. In such cases, it can be desirable, within
that single administrative domain, for BGP to select paths based on a
metric, just as an IGP would do. The purpose of this document is to
provide a specification for doing so.
Table of Contents Table of Contents
1 Specification of requirements ......................... 3 1 Specification of requirements ......................... 3
2 Introduction .......................................... 3 2 Introduction .......................................... 3
3 AIGP Attribute ........................................ 5 3 AIGP Attribute ........................................ 5
3.1 Applicability Restrictions and Cautions ............... 6 3.1 Applicability Restrictions and Cautions ............... 6
3.2 Restrictions on Sending/Receiving ..................... 6 3.2 Restrictions on Sending/Receiving ..................... 6
3.3 Creating and Modifying the AIGP Attribute ............. 7 3.3 Creating and Modifying the AIGP Attribute ............. 7
3.3.1 Originating the AIGP Attribute ........................ 7 3.3.1 Originating the AIGP Attribute ........................ 7
3.3.2 Modifications by the Originator ....................... 7 3.3.2 Modifications by the Originator ....................... 8
3.3.3 Modifications by a Non-Originator ..................... 8 3.3.3 Modifications by a Non-Originator ..................... 8
4 Decision Process ...................................... 9 4 Decision Process ...................................... 10
4.1 When a Route has an AIGP Attribute .................... 10 4.1 When a Route has an AIGP Attribute .................... 10
4.2 When the Route to the Next Hop has an AIGP attribute .. 10 4.2 When the Route to the Next Hop has an AIGP attribute .. 11
5 Deployment Considerations ............................. 11 5 Deployment Considerations ............................. 12
6 IANA Considerations ................................... 11 6 IANA Considerations ................................... 12
7 Security Considerations ............................... 11 7 Security Considerations ............................... 12
8 Acknowledgments ....................................... 12 8 Acknowledgments ....................................... 12
9 Authors' Addresses .................................... 12 9 Authors' Addresses .................................... 13
10 Normative References .................................. 13 10 Normative References .................................. 13
11 Informative References ................................ 13 11 Informative References ................................ 14
1. Specification of requirements 1. Specification of requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
2. Introduction 2. Introduction
There are many routing protocols that have been designed to run There are many routing protocols that have been designed to run
skipping to change at page 4, line 44 skipping to change at page 4, line 42
each running BGP. There are several reasons why a single each running BGP. There are several reasons why a single
administrative domain may be broken into several ASes (which, in this administrative domain may be broken into several ASes (which, in this
case, are not really "autonomous".) It may be that the existing IGPs case, are not really "autonomous".) It may be that the existing IGPs
do not scale well in the particular environment; it may be that a do not scale well in the particular environment; it may be that a
more generalized topology is desired than could be obtained by use of more generalized topology is desired than could be obtained by use of
a single IGP domain; it may be that a more finely grained routing a single IGP domain; it may be that a more finely grained routing
policy is desired than can be supported by an IGP. In such policy is desired than can be supported by an IGP. In such
deployments, it can be useful to allow BGP to make its routing deployments, it can be useful to allow BGP to make its routing
decisions based on the IGP metric, so that BGP chooses the "shortest" decisions based on the IGP metric, so that BGP chooses the "shortest"
path between two nodes, even if the nodes are in two different ASes path between two nodes, even if the nodes are in two different ASes
within that same administrative domain. within that same administrative domain. We will refer to the set of
ASes in a common administrative domain as an "AIGP Administrative
Domain".
There are in fact some implementations which already do something There are in fact some implementations that already do something like
like this, using the MULTI_EXIT_DISC (MED) attribute to carry the IGP this, using BGP's MULTI_EXIT_DISC (MED) attribute to carry a value
metric. However, that doesn't really provide IGP-like "shortest based on IGP metrics. However, that doesn't really provide IGP-like
path" routing, as the BGP decision process gives priority to other "shortest path" routing, as the BGP decision process gives priority
factors, such as LOCAL_PREF and AS_PATH length. Also, the standard to other factors, such as the AS_PATH length. Also, the standard
procedures for use of the MED do not ensure that the IGP metric is procedures for use of the MED do not ensure that the IGP metric is
properly accumulated so that it covers all the links along the path. properly accumulated so that it covers all the links along the path.
In this document, we define a new optional, non-transitive BGP In this document, we define a new optional, non-transitive BGP
attribute, called the "Accumulated IGP Metric Attribute", or "AIGP attribute, called the "Accumulated IGP Metric Attribute", or "AIGP
attribute", and specify the procedures for using it. attribute", and specify the procedures for using it.
The specified procedures prevent the AIGP attribute from "leaking The specified procedures prevent the AIGP attribute from "leaking
out" past the administrative domain boundaries into the Internet. out" past an AIGP administrative domain boundary into the Internet.
The specified procedures also ensure that the value in the AIGP The specified procedures also ensure that the value in the AIGP
attribute has been accumulated all along the path from the attribute has been accumulated all along the path from the
destination, i.e., that the AIGP attribute does not appear when there destination, i.e., that the AIGP attribute does not appear when there
are "gaps" along the path where the IGP metric is unknown. are "gaps" along the path where the IGP metric is unknown.
3. AIGP Attribute 3. AIGP Attribute
The AIGP Attribute is an optional non-transitive BGP Path Attribute. The AIGP Attribute is an optional non-transitive BGP Path Attribute.
The attribute type code for the AIGP Attribute is to be assigned by The attribute type code for the AIGP Attribute is to be assigned by
skipping to change at page 7, line 9 skipping to change at page 7, line 9
If an AIGP attribute is received on a BGP session for which If an AIGP attribute is received on a BGP session for which
AIGP_SESSION is disabled, the attribute MUST be treated exactly as if AIGP_SESSION is disabled, the attribute MUST be treated exactly as if
it were an unrecognized non-transitive attribute. That is, "it MUST it were an unrecognized non-transitive attribute. That is, "it MUST
be quietly ignored and not passed along to other BGP peers" (see be quietly ignored and not passed along to other BGP peers" (see
[BGP], section 5). [BGP], section 5).
3.3. Creating and Modifying the AIGP Attribute 3.3. Creating and Modifying the AIGP Attribute
3.3.1. Originating the AIGP Attribute 3.3.1. Originating the AIGP Attribute
An implementation that supports the AIGP attribute MUST support a
configuration item, AIGP_ORIGINATE, that enables or disables its
creation and attachment to routes. The default value of
AIGP_ORIGINATE MUST be "disabled".
A BGP speaker MUST NOT add the AIGP attribute to any route whose path A BGP speaker MUST NOT add the AIGP attribute to any route whose path
leads outside the AS to which the BGP speaker belongs. It may be leads outside the "AIGP administrative domain" to which the BGP
added only to routes that satisfy one of the following conditions: speaker belongs. It may be added only to routes that satisfy one of
the following conditions:
- The route is a static route that is being redistributed into BGP - The route is a static route that is being redistributed into BGP
- The route is an IGP route that is being redistributed into BGP - The route is an IGP route that is being redistributed into BGP
- The route is an IBGP-learned route whose AS_PATH attribute is - The route is an IBGP-learned route whose AS_PATH attribute is
empty. empty.
An implementation that supports the AIGP attribute MUST support a - The route is an EBGP-learned route whose AS_PATH contains only
configuration item, AIGP_ORIGINATE, that enables or disables its ASes that are in the same AIGP Administrative Domain as the BGP
creation and attachment to routes. The default value of speaker.
AIGP_ORIGINATE MUST be "disabled".
A BGP speaker MUST NOT add the AIGP attribute to any route for which
it has not set itself as the next hop.
It SHOULD be possible to set AIGP_ORIGINATE to "enabled for the It SHOULD be possible to set AIGP_ORIGINATE to "enabled for the
routes of a particular IGP that are redistributed into BGP" (where "a routes of a particular IGP that are redistributed into BGP" (where "a
particular IGP" might be "OSPF" or "ISIS"). particular IGP" might be "OSPF" or "ISIS"). Other policies
determining when and whether to originate an AIGP attribute are also
possible, depending on the needs of a particular deployment scenario.
When a BGP speaker R learns a route to address prefix P from an IGP, When originating an AIGP attribute for a BGP route to address prefix
the IGP will have computed a "distance" from R to P. The value P, the value of the attribute is set according to policy. There are
assigned to the AIGP attribute is either the IGP-computed distance, a number of useful policies, some of which are in the following list:
or some other value determined by policy.
In the case of a static route whose next hop matches a BGP route that - When a BGP speaker is redistributing into BGP an IGP route to
has an AIGP attribute, the static route MAY inherit the AIGP address prefix P, the IGP will have computed a "distance" from R
attribute value of that BGP route. to P. This distance MAY be assigned as the value of AIGP
attribute.
- A BGP speaker may be redistributing into BGP a static route to
address prefix P, for which a "distance" from R to P has been
configured. This distance MAY be assigned as the value of AIGP
attribute.
- A BGP speaker R may have received and installed a BGP-learned
route to prefix P, with next hop N. Or it may be redistributing
a static route to P, with next hop N. The "distance" from R to N
MAY be assigned as the value of the AIGP attribute of the route
to P.
* If R has an IGP route to N, the IGP-computed distance from R
to N MAY be used.
* If R has a BGP route to N, and an AIGP attribute value has
been computed for that route (see section 3.3.3), that value
MAY be used as the AIGP attribute value of the route to P.
3.3.2. Modifications by the Originator 3.3.2. Modifications by the Originator
If BGP speaker R is the originator of the AIGP attribute of prefix P, If BGP speaker R is the originator of the AIGP attribute of prefix P,
and at some point the distance from R to P changes, R SHOULD issue a and at some point the "distance" from R to P changes, R SHOULD issue
new BGP update containing the new value of the AIGP attribute. a new BGP update containing the new value of the AIGP attribute.
However, if the difference between the new distance and the distance (Here we use the term "distance" to refer to whatever value the
advertised in the AIGP attribute is less than a configurable originator assigns to the AIGP attribute, however it is computed; see
threshold, the update MAY be suppressed. section 3.3.1.) However, if the difference between the new distance
and the distance advertised in the AIGP attribute is less than a
configurable threshold, the update MAY be suppressed.
3.3.3. Modifications by a Non-Originator 3.3.3. Modifications by a Non-Originator
Suppose a BGP speaker R1 receives a route with an AIGP attribute Suppose a BGP speaker R1 receives a route with an AIGP attribute
whose value is A, and a Next Hop whose value is R2. Suppose also whose value is A, and a Next Hop whose value is R2. Suppose also
that R1 is about to redistribute that route on a BGP session that is that R1 is about to redistribute that route on a BGP session that is
enabled for sending/receiving the attribute. enabled for sending/receiving the attribute.
If R1 does not change the Next Hop of the route, then R1 MUST NOT If R1 does not change the Next Hop of the route, then R1 MUST NOT
change the AIGP attribute value of the route. change the AIGP attribute value of the route.
skipping to change at page 8, line 34 skipping to change at page 9, line 11
direct link between them on which no IGP is running, then when R1 direct link between them on which no IGP is running, then when R1
changes the next hop of a route from R2 to R1, the AIGP metric value changes the next hop of a route from R2 to R1, the AIGP metric value
MUST be increased by a non-zero amount. The amount of the increase MUST be increased by a non-zero amount. The amount of the increase
SHOULD be such that it is properly comparable to the IGP metrics. SHOULD be such that it is properly comparable to the IGP metrics.
E.g., if the IGP metric is a function of latency, then the amount of E.g., if the IGP metric is a function of latency, then the amount of
the increase should be a function of the latency from R1 to R2. the increase should be a function of the latency from R1 to R2.
If R1 changes the Next Hop of the route from R2 to R1, and if R1's If R1 changes the Next Hop of the route from R2 to R1, and if R1's
route to R2 is a BGP-learned route, or a static route that requires route to R2 is a BGP-learned route, or a static route that requires
recursive next hop resolution, then the AIGP attribute value needs to recursive next hop resolution, then the AIGP attribute value needs to
be increased in several steps: be increased in several steps, according to the following procedure.
(Note that this procedure is ONLY used when recursive next hop
resolution is needed.)
1. Let Xattr be the new AIGP attribute value. 1. Let Xattr be the new AIGP attribute value.
2. Initialize Xattr to A. 2. Initialize Xattr to A.
3. Set the XNH to R2. 3. Set the XNH to R2.
4. Find the route to XNH. 4. Find the route to XNH.
5. If the route to XNH does not require recursive next hop 5. If the route to XNH does not require recursive next hop
resolution, get the distance D from R1 to XNH. If D is above a resolution, get the distance D from R1 to XNH. (Note that this
configurable threshold, set the AIGP attribute value to condition cannot be satisfied the first time through this
Xattr+D. If D is below a configurable threshold, set the AIGP procedure.) If D is above a configurable threshold, set the
attribute value to Xattr. In either case, exit this procedure. AIGP attribute value to Xattr+D. If D is below a configurable
threshold, set the AIGP attribute value to Xattr. In either
case, exit this procedure.
6. If the route to XNH is a BGP-learned route, and the route does 6. If the route to XNH is a BGP-learned route, and the route does
NOT have an AIGP attribute, then exit this procedure and do not NOT have an AIGP attribute, then exit this procedure and do not
pass on any AIGP attribute. pass on any AIGP attribute.
7. If the route to XNH is a BGP-learned route, and the route has 7. If the route to XNH is a BGP-learned route, and the route has
an AIGP attribute value of Y, then set Xattr=Xattr+Y, and set an AIGP attribute value of Y, then set Xattr=Xattr+Y, and set
XNH to the next hop of this route. (The intention here is that XNH to the next hop of this route. (The intention here is that
Y is the AIGP value of the route as it was received by R1, Y is the AIGP value of the route as it was received by R1,
without having been modified by R1.) without having been modified by R1.)
skipping to change at page 9, line 25 skipping to change at page 9, line 51
8. Go to step 4. 8. Go to step 4.
The AIGP value of a given route depends on (a) the AIGP values of all The AIGP value of a given route depends on (a) the AIGP values of all
the next hops that are recursively resolved during this procedure, the next hops that are recursively resolved during this procedure,
and (b) the IGP distance to any next hop that is not recursively and (b) the IGP distance to any next hop that is not recursively
resolved. Any change due to (a) in any of these values MUST trigger resolved. Any change due to (a) in any of these values MUST trigger
a new AIGP computation for that route. Whether a change due to (b) a new AIGP computation for that route. Whether a change due to (b)
triggers a new AIGP computation depends upon whether the change in triggers a new AIGP computation depends upon whether the change in
IGP distance exceeds a configurable threshold. IGP distance exceeds a configurable threshold.
Note that the overall shortest path may not be selected if the next
hop has to be recursively resolved more than once.
If the AIGP attribute is carried across several ASes, each with its If the AIGP attribute is carried across several ASes, each with its
own IGP domain, it is clear that these procedures are unlikely to own IGP domain, it is clear that these procedures are unlikely to
give a sensible result if the IGPs are different (e.g., some OSPF and give a sensible result if the IGPs are different (e.g., some OSPF and
some IS-IS), or if the meaning of the metrics is different in the some IS-IS), or if the meaning of the metrics is different in the
different IGPs (e.g., if the metric represents bandwidth in some IGP different IGPs (e.g., if the metric represents bandwidth in some IGP
domains but represents latency in others). These procedures also are domains but represents latency in others). These procedures also are
unlikely to give a sensible result if the metric assigned to inter-AS unlikely to give a sensible result if the metric assigned to inter-AS
BGP links (on which no IGP is running) or to static routes is not BGP links (on which no IGP is running) or to static routes is not
comparable to the IGP metrics. All such cases are outside the scope comparable to the IGP metrics. All such cases are outside the scope
of the current document. of the current document.
skipping to change at page 10, line 22 skipping to change at page 11, line 4
Assuming that the BGP decision process invokes the tie breaking Assuming that the BGP decision process invokes the tie breaking
procedures, the procedures in this section MUST be executed BEFORE procedures, the procedures in this section MUST be executed BEFORE
any of the tie breaking procedures described in [BGP] section 9.1.2.2 any of the tie breaking procedures described in [BGP] section 9.1.2.2
are executed. are executed.
If any routes have an AIGP attribute, remove from consideration all If any routes have an AIGP attribute, remove from consideration all
routes that do not have an AIGP attribute. routes that do not have an AIGP attribute.
If router R is considering route T, where T has an AIGP attribute, If router R is considering route T, where T has an AIGP attribute,
- then R must compute the value A, defined as follows: set A to the - then R must compute the value A, defined as follows: set A to the
sum of (a) T's AIGP attribute value and (b) the IGP distance from sum of (a) T's AIGP attribute value and (b) the IGP distance from
R to T's next hop. R to T's next hop.
- remove from consideration all routes that are not tied for the - remove from consideration all routes that are not tied for the
lowest value of A. lowest value of A.
4.2. When the Route to the Next Hop has an AIGP attribute 4.2. When the Route to the Next Hop has an AIGP attribute
Suppose that a given router R1 is comparing two routes, neither of Suppose that a given router R1 is comparing two BGP-learned routes,
which has an AIGP attribute. The BGP decision process as specified such that either:
in [BGP] makes use, in its tie breaker procedures, of "interior
cost", defined as follows:
"interior cost of a route is determined by calculating the metric - the two routes have equal AIGP attribute values, or else
to the NEXT_HOP for the route using the Routing Table."
Suppose route T has a next hop of N. We modify the notion of the - neither of the two routes has an AIGP attribute. The BGP
"interior cost" from node R to node N as follows: decision process as specified in [BGP] makes use, in its tie
breaker procedures, of "interior cost", defined as follows:
- If the route to N has an AIGP attribute, set A to the AIGP value "interior cost of a route is determined by calculating the
of the route to N, computing the AIGP value of the route metric to the NEXT_HOP for the route using the Routing
according to the procedure of section 3.3.3. (This will have Table."
been computed at the time the route to N was installed.)
- If the route to N does not have an AIGP value, set A to 0. (This Suppose route T has a next hop of N. We modify the notion of the
can only be the case if there is no route to N that does have an "interior cost" from node R1 to node N as follows:
AIGP value.)
- Let R2 be the next hop of the route to N, after all recursive - Let R2 be the next hop of the route to N, after all recursive
resolution of the next hop is done. Let m be the IGP distance resolution of the next hop is done. Let m be the IGP distance
(or in the case of a static route, the configured distance) from (or in the case of a static route, the configured distance) from
R1 to R2. R1 to R2.
- If the installed route to N has an AIGP attribute, set A to the
AIGP value of the route to N, computing the AIGP value of the
route according to the procedure of section 3.3.3.
- If the installed route to N does not have an AIGP value, set A to
0.
- The "interior cost" of route T is the quantity A+m. - The "interior cost" of route T is the quantity A+m.
5. Deployment Considerations 5. Deployment Considerations
Using the AIGP attribute to achieve a desired routing policy will be Using the AIGP attribute to achieve a desired routing policy will be
more effective if each BGP speaker can use it to choose from among more effective if each BGP speaker can use it to choose from among
multiple routes. Thus is it highly recommended that the procedures of multiple routes. Thus is it highly recommended that the procedures of
[BESTEXT] and [ADDPATH] be used in conjunction with the AIGP [BESTEXT] and [ADDPATH] be used in conjunction with the AIGP
Attribute. Attribute.
skipping to change at page 13, line 18 skipping to change at page 14, line 13
Hares, RFC 4271, January 2006. Hares, RFC 4271, January 2006.
11. Informative References 11. Informative References
[ADDPATH] "Fast Connectivity Restoration Using BGP Add-Path", P. [ADDPATH] "Fast Connectivity Restoration Using BGP Add-Path", P.
Mohapatra, R. Fernando, C. Filsfils, R. Raszuk, draft-pmohapat-idr- Mohapatra, R. Fernando, C. Filsfils, R. Raszuk, draft-pmohapat-idr-
fast-conn-restore-00.txt, September 2008. fast-conn-restore-00.txt, September 2008.
[BESTEXT], " Advertisement of the Best External Route in BGP", P. [BESTEXT], " Advertisement of the Best External Route in BGP", P.
Marques, R. Fernando, E. Chen, P. Mohapatra, draft-ietf-idr-best- Marques, R. Fernando, E. Chen, P. Mohapatra, draft-ietf-idr-best-
external-01.txt, February 2010. external-02.txt, August 2010.
[RFC2119] "Key words for use in RFCs to Indicate Requirement [RFC2119] "Key words for use in RFCs to Indicate Requirement
Levels.", S. Bradner, March 1997 Levels.", S. Bradner, March 1997
 End of changes. 30 change blocks. 
80 lines changed or deleted 115 lines changed or added

This html diff was produced by rfcdiff 1.40. The latest version is available from http://tools.ietf.org/tools/rfcdiff/