draft-ietf-idr-as4bytes-10.txt   draft-ietf-idr-as4bytes-11.txt 
Network Working Group Quaizar Vohra Network Working Group Quaizar Vohra
Internet Draft Juniper Networks Internet Draft Juniper Networks
Expiration Date: January 2006 Enke Chen Expiration Date: March 2006 Enke Chen
Cisco Systems Cisco Systems
BGP support for four-octet AS number space BGP Support for Four-octet AS Number Space
draft-ietf-idr-as4bytes-10.txt draft-ietf-idr-as4bytes-11.txt
1. Status of this Memo 1. Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of 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
skipping to change at page 1, line 38 skipping to change at page 1, line 38
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
2. Abstract 2. Abstract
Currently the Autonomous System number is encoded in BGP [BGP] as a Currently the Autonomous System number is encoded in BGP [BGP] as a
two-octets field. This document describes extensions to BGP to carry two-octet field. This document describes extensions to BGP to carry
the Autonomous System number as a four-octets field. the Autonomous System number as a four-octet field.
3. Specification of Requirements 3. 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].
4. Protocol Extensions 4. Protocol Extensions
For the purpose of this document lets define a BGP speaker which For the purpose of this document lets define a BGP speaker which does
doesnどヨt support the new 4-octets AS number extensions as an OLD BGP not support the new 4-octet AS number extensions as an OLD BGP
speaker, and a BGP speaker which supports the new 4-octets AS number speaker, and a BGP speaker which supports the new 4-octet AS number
extensions as a NEW BGP speaker. extensions as a NEW BGP speaker.
BGP carries the Autonomous System number in the My Autonomous System BGP carries the Autonomous System number in the My Autonomous System
field of the OPEN message, in the AS_PATH attribute of the UPDATE field of the OPEN message, in the AS_PATH attribute of the UPDATE
message, and in the AGGREGATOR attribute of the UPDATE message. BGP message, and in the AGGREGATOR attribute of the UPDATE message. BGP
also carries the Autonomous System number in the BGP Communities also carries the Autonomous System number in the BGP Communities
attribute. attribute.
A NEW BGP speaker uses BGP Capability Advertisements [RFC2842] to A NEW BGP speaker uses BGP Capability Advertisements [RFC2842] to
advertise to its neighbors (either internal or external) that it advertise to its neighbors (either internal or external) that it
supports 4-octets AS number extensions, as specified in this supports 4-octet AS number extensions, as specified in this document.
document.
The Capability that is used by a BGP speaker to convey to its BGP The Capability that is used by a BGP speaker to convey to its BGP
peer the 4-octets Autonomous System number capability, also carries peer the 4-octet Autonomous System number capability, also carries
the 4-octets Autonomous System number of the speaker in the the 4-octet Autonomous System number of the speaker in the Capability
Capability Value field of the Capability Optional Parameter. The Value field of the Capability Optional Parameter. The Capability
Capability Length field of the Capability is set to 4. Length field of the Capability is set to 4.
NEW BGP speakers carry AS path information expressed in terms of NEW BGP speakers carry AS path information expressed in terms of
4-octets Autonomous Systems numbers by using the existing AS_PATH 4-octet Autonomous Systems numbers by using the existing AS_PATH
attribute, except that each AS number in this attribute is encoded attribute, except that each AS number in this attribute is encoded
not as a 2-octets, but as a 4-octets entity. The same applies to the not as a 2-octet, but as a 4-octet entity. The same applies to the
AGGREGATOR attribute - NEW BGP speakers use the same attribute, AGGREGATOR attribute - NEW BGP speakers use the same attribute,
except that the AS carried in this attribute is encoded as a 4-octets except that the AS carried in this attribute is encoded as a 4-octet
entity. entity.
To preserve AS path information with 4-octets AS numbers across OLD To preserve AS path information with 4-octet AS numbers across OLD
BGP speakers, this document defines a new AS path attribute, called BGP speakers, this document defines a new AS path attribute, called
NEW_AS_PATH. This attribute is optional transitive and contains the NEW_AS_PATH. This attribute is optional transitive and contains the
AS path encoded with 4-octets AS numbers. The NEW_AS_PATH attribute AS path encoded with 4-octet AS numbers. The NEW_AS_PATH attribute
has the same semantics as the AS_PATH attribute, except that it is has the same semantics as the AS_PATH attribute, except that it is
optional transitive, and it carries 4-octets AS numbers. optional transitive, and it carries 4-octet AS numbers.
To prevent the possible propagation of confederation path segments To prevent the possible propagation of confederation path segments
outside of a confederation, the path segment types AS_CONFED_SEQUENCE outside of a confederation, the path segment types AS_CONFED_SEQUENCE
and AS_CONFED_SET [RFC3065] are declared invalid for the NEW_AS_PATH and AS_CONFED_SET [RFC3065] are declared invalid for the NEW_AS_PATH
attribute. attribute.
Similarly, this document defines a new aggregator attribute called Similarly, this document defines a new aggregator attribute called
NEW_AGGREGATOR, which is optional transitive. The NEW_AGGREGATOR NEW_AGGREGATOR, which is optional transitive. The NEW_AGGREGATOR
attribute has the same semantics as the AGGREGATOR attribute, except attribute has the same semantics as the AGGREGATOR attribute, except
that it carries 4-octets AS numbers. that it carries 4-octet AS numbers.
Currently assigned 2-octets Autonomous System numbers are converted Currently assigned 2-octet Autonomous System numbers are converted
into 4-octets Autonomous System numbers by setting the high-order 2 into 4-octet Autonomous System numbers by setting the high-order 2
octets of the 4-octets field to zero. Such a 4-octets AS number is octets of the 4-octet field to zero. Such a 4-octet AS number is said
said to be mappable to a 2-octets AS number. to be mappable to a 2-octet AS number.
To represent 4-octets AS numbers (which are not mapped from 2-octets) To represent 4-octet AS numbers (which are not mapped from 2-octets)
as 2-octets AS numbers in the AS path information encoded with as 2-octet AS numbers in the AS path information encoded with 2-octet
2-octets AS numbers, this document reserves a 2-octets AS number. AS numbers, this document reserves a 2-octet AS number. Lets denote
Lets denote this special AS number as AS_TRANS for ease of this special AS number as AS_TRANS for ease of description in the
description in the rest of this specification. This AS number is also rest of this specification. This AS number is also placed in the My
placed in the My Autonomous System field of the OPEN message Autonomous System field of the OPEN message originated by a NEW BGP
originated by a NEW BGP speaker if the speaker doesnどヨt have a speaker if the speaker does not have a (globally unique) 2-octet AS
(globally unique) 2-octets AS number. number.
5. Operations 5. Operations
5.1. Interaction between NEW BGP speakers 5.1. Interaction Between NEW BGP Speakers
A BGP speaker that supports 4-octets Autonomous System numbers may A BGP speaker that supports 4-octet Autonomous System numbers may
advertise this to its peers using the BGP Capability Advertisements. advertise this to its peers using the BGP Capability Advertisements.
A BGP speaker that advertises such capability to a particular peer, A BGP speaker that advertises such capability to a particular peer,
and receives from that peer the advertisement of such capability MUST and receives from that peer the advertisement of such capability MUST
encode Autonomous System numbers as 4-octets entities in both the encode Autonomous System numbers as 4-octet entities in both the
AS_PATH and the AGGREGATOR attributes in the updates it sends to the AS_PATH and the AGGREGATOR attributes in the updates it sends to the
peer, and MUST assume that these attributes in the updates received peer, and MUST assume that these attributes in the updates received
from the peer encode Autonomous System numbers as 4-octets entities. from the peer encode Autonomous System numbers as 4-octet entities.
The new attributes, NEW_AS_PATH and NEW_AGGREGATOR should not be The new attributes, NEW_AS_PATH and NEW_AGGREGATOR should not be
carried in the UPDATE messages between NEW BGP peers. A NEW BGP carried in the UPDATE messages between NEW BGP peers. A NEW BGP
speaker that receives the NEW_AS_PATH and NEW_AGGREGATOR path speaker that receives the NEW_AS_PATH and NEW_AGGREGATOR path
attributes in an UPDATE message from a NEW BGP speaker should discard attributes in an UPDATE message from a NEW BGP speaker should discard
these path attributes and continue processing the UPDATE message. these path attributes and continue processing the UPDATE message.
5.2. Interaction between NEW and OLD BGP speaker 5.2. Interaction Between NEW and OLD BGP Speakers
5.2.1. BGP Peering 5.2.1. BGP Peering
Note that peering between a NEW BGP speaker and an OLD one is Note that peering between a NEW BGP speaker and an OLD one is
possible only if the NEW BGP speaker has a 2-octets AS number. possible only if the NEW BGP speaker has a 2-octet AS number.
However, this document doesnどヨt assume that an Autonomous System with However, this document does not assume that an Autonomous System with
NEW speakers has to have a globally unique 2-octets AS number - NEW speakers has to have a globally unique 2-octet AS number -
AS_TRANS could be used instead (even if multiple Autonomous System AS_TRANS could be used instead (even if multiple Autonomous System
would use it). would use it).
5.2.2. Generating Updates 5.2.2. Generating Updates
When communicating with an OLD BGP speaker, a NEW speaker MUST send When communicating with an OLD BGP speaker, a NEW speaker MUST send
the AS path information in the AS_PATH attribute encoded with the AS path information in the AS_PATH attribute encoded with 2-octet
2-octets AS numbers. The NEW speaker also MUST send the AS path AS numbers. The NEW speaker also MUST send the AS path information in
information in the NEW_AS_PATH attribute (encoded with 4-octets AS the NEW_AS_PATH attribute (encoded with 4-octet AS numbers), except
numbers), except for the case where the entire AS path information is for the case where the entire AS path information is composed of
composed of 2-octets AS numbers only. In this case the NEW speaker 2-octet AS numbers only. In this case the NEW speaker should not send
should not send the NEW_AS_PATH attribute. the NEW_AS_PATH attribute.
In the AS_PATH attribute encoded with 2-octets AS numbers, non- In the AS_PATH attribute encoded with 2-octet AS numbers, non-
mappable 4-octets AS numbers are represented by the well known mappable 4-octet AS numbers are represented by the well known 2-octet
2-octets AS number, AS_TRANS. This will preserve the path length AS number, AS_TRANS. This will preserve the path length property of
property of the AS path information; and will also help in updating the AS path information; and will also help in updating the AS path
the AS path information received on a NEW BGP speaker from an OLD information received on a NEW BGP speaker from an OLD speaker, as
speaker, as explained in the next section. explained in the next section.
The NEW speaker constructs the NEW_AS_PATH attribute from the The NEW speaker constructs the NEW_AS_PATH attribute from the
information carried in the AS_PATH attribute. In the case where the information carried in the AS_PATH attribute. In the case where the
AS_PATH attribute contains either AS_CONFED_SEQUENCE or AS_CONFED_SET AS_PATH attribute contains either AS_CONFED_SEQUENCE or AS_CONFED_SET
path segments, the NEW speaker, when constructing the NEW_AS_PATH path segments, the NEW speaker, when constructing the NEW_AS_PATH
attribute from the AS_PATH attribute, must exclude such path attribute from the AS_PATH attribute, must exclude such path
segments. The NEW_AS_PATH attribute will be carried across a series segments. The NEW_AS_PATH attribute will be carried across a series
of OLD BGP speakers without modification and will help preserve the of OLD BGP speakers without modification and will help preserve the
truely 4-octets AS numbers in the AS path information. truly 4-octet AS numbers in the AS path information.
Similarly, if the NEW speaker has to send the AGGREGATOR attribute, Similarly, if the NEW speaker has to send the AGGREGATOR attribute,
and if the aggregating Autonomous Systemどヨs AS number is truely and if the aggregating Autonomous Systemどヨs AS number is truly
4-octets, the speaker constructs the NEW_AGGREGATOR attributes by 4-octets, the speaker constructs the NEW_AGGREGATOR attributes by
taking the attribute length and attribute value from the AGGREGATOR taking the attribute length and attribute value from the AGGREGATOR
attribute and placing them into the attribute length and attribute attribute and placing them into the attribute length and attribute
value of the NEW_AGGREGATOR attribute, and sets the AS number field value of the NEW_AGGREGATOR attribute, and sets the AS number field
in the existing AGGREGATOR attribute to the reserved AS number, in the existing AGGREGATOR attribute to the reserved AS number,
AS_TRANS. Note that if the AS number is 2-octets only, then the AS_TRANS. Note that if the AS number is 2-octets only, then the
NEW_AGGREGATE attribute should not be sent. NEW_AGGREGATE attribute should not be sent.
5.2.3. Processing Received Updates 5.2.3. Processing Received Updates
When a NEW BGP speaker receives an update from an OLD one, it should When a NEW BGP speaker receives an update from an OLD one, it should
be prepared to receive the NEW_AS_PATH attribute along with the be prepared to receive the NEW_AS_PATH attribute along with the
existing AS_PATH attribute. If NEW_AS_PATH attribute is also existing AS_PATH attribute. If NEW_AS_PATH attribute is also
received, both the attributes will be used to construct the exact AS received, both the attributes will be used to construct the exact AS
path information, and therefore the information carried by both the path information, and therefore the information carried by both the
attributes will be considered for AS path loop detection. attributes will be considered for AS path loop detection.
Note that a route may have traversed a series of autonomous systems Note that a route may have traversed a series of autonomous systems
with 2-octets AS numbers and OLD BGP speakers only. In that case, if with 2-octet AS numbers and OLD BGP speakers only. In that case, if
the route carries a NEW_AS_PATH attribute, this attribute may not the route carries a NEW_AS_PATH attribute, this attribute may not
have been updated since the route left the last NEW BGP speaker. The have been updated since the route left the last NEW BGP speaker. The
trailing AS path information (representing autonomous systems with trailing AS path information (representing autonomous systems with
2-octets AS numbers and OLD BGP speakers only) is contained only in 2-octet AS numbers and OLD BGP speakers only) is contained only in
the current AS_PATH attribute (encoded in the leading part of the the current AS_PATH attribute (encoded in the leading part of the
AS_PATH attribute). This AS path information should be prepended to AS_PATH attribute). This AS path information should be prepended to
the NEW_AS_PATH attribute to construct the exact AS path information. the NEW_AS_PATH attribute to construct the exact AS path information.
Similarly, a NEW BGP speaker should be prepared to receive the Similarly, a NEW BGP speaker should be prepared to receive the
NEW_AGGREGATOR attribute from an OLD BGP speaker. In that case, the NEW_AGGREGATOR attribute from an OLD BGP speaker. In that case, the
AGGREGATOR attribute is ignored and the NEW_AGGREGATOR contains the AGGREGATOR attribute is ignored and the NEW_AGGREGATOR contains the
exact information about the aggregating node. exact information about the aggregating node.
5.3. Interaction between OLD BGP speakers 5.3. Interaction Between OLD BGP Speakers
In all other cases the speaker MUST encode Autonomous System numbers In all other cases the speaker MUST encode Autonomous System numbers
as 2-octets entities in both the AS_PATH and the AGGREGATOR attribute as 2-octet entities in both the AS_PATH and the AGGREGATOR attribute
in the updates it sends to the peer, and MUST assume that these in the updates it sends to the peer, and MUST assume that these
attributes in the updates received from the peer encoded Autonomous attributes in the updates received from the peer encoded Autonomous
System numbers as 2-octets entities. System numbers as 2-octet entities.
6. Handling BGP Communities 6. Handling BGP Communities
As specified in [RFC1997], when the high-order two-octets of the As specified in [RFC1997], when the high-order two-octets of the
community attribute is neither 0x0000 nor 0xffff, these two octets community attribute is neither 0x0000 nor 0xffff, these two octets
encode the Autonomous System number. Quite clearly this would not encode the Autonomous System number. Quite clearly this would not
work for routers that use 4-octets Autonomous System numbers. Such work for routers that use 4-octets Autonomous System numbers. Such
routers should use the Extended Communities [EXT-COMM] attribute routers should use the Extended Communities [EXT-COMM] attribute
instead. instead.
7. Transition 7. Transition
The scheme described in this document allows a gradual transition The scheme described in this document allows a gradual transition
from 2-octets AS numbers to 4-octets AS numbers. One can upgrade one from 2-octet AS numbers to 4-octet AS numbers. One can upgrade one
Autonomous system or one router at a time. Autonomous system or one router at a time.
To simplify transition this document assumes that an Autonomous To simplify transition this document assumes that an Autonomous
System could start using 4-octets AS number only after all the BGP System could start using a 4-octet AS number only after all the BGP
speakers within that Autonomous System have been upgraded to support speakers within that Autonomous System have been upgraded to support
4-octets AS numbers. 4-octet AS numbers.
An OLD BGP speaker should not use AS_TRANS as its Autonomous System An OLD BGP speaker should not use AS_TRANS as its Autonomous System
number. number.
A non-mappable 4-octets AS number can not be used as a "Member AS A non-mappable 4-octet AS number can not be used as a "Member AS
Number" of a BGP Confederation until all the BGP speakers within the Number" of a BGP Confederation until all the BGP speakers within the
Confederation transitioned to support 4-octets AS numbers. Confederation have transitioned to support 4-octet AS numbers.
In an environment where an Autonomous System that has OLD BGP In an environment where an Autonomous System that has OLD BGP
speakers peers with two or more Autonomous Systems that have NEW BGP speakers peers with two or more Autonomous Systems that have NEW BGP
speakers and use AS_TRANS (rather than having a globally unique AS speakers and use AS_TRANS (rather than having a globally unique AS
number), use of Multi-Exit Discriminators by the Autonomous System number), use of Multi-Exit Discriminators by the Autonomous System
with the OLD speakers may result in a situation where Multi-Exit with the OLD speakers may result in a situation where Multi-Exit
Discriminator will influence route selection among the routes that Discriminator will influence route selection among the routes that
were received from different neighboring Autonomous Systems. were received from different neighboring Autonomous Systems.
Under certain conditions it may not be possible to reconstruct the Under certain conditions it may not be possible to reconstruct the
entire AS path information from the AS_PATH and the NEW_AS_PATH entire AS path information from the AS_PATH and the NEW_AS_PATH
attributes of a route. This occurs when two or more routes that carry attributes of a route. This occurs when two or more routes that carry
the NEW_AS_PATH attribute are aggregated by an OLD BGP speaker, and the NEW_AS_PATH attribute are aggregated by an OLD BGP speaker, and
the NEW_AS_PATH attribute of at least one of these routes carries at the NEW_AS_PATH attribute of at least one of these routes carries at
least one 4-octets AS number (as oppose to a 2-octets AS number that least one 4-octet AS number (as oppose to a 2-octet AS number that is
is encoded in 4 octets). When such aggregation results in creating a encoded in 4 octets). When such aggregation results in creating a
route that is less specific than any of the component routes, (route route that is less specific than any of the component routes, (route
whose NLRI covers NLRI of all the component routes), loss of the AS whose NLRI covers NLRI of all the component routes), loss of the AS
path information does not create a risk of a routing loop. In all path information does not create a risk of a routing loop. In all
other cases loss of the AS path information does create a risk of a other cases loss of the AS path information does create a risk of a
routing loop. routing loop.
8. IANA Consideration 8. IANA Consideration
This document uses a BGP Capability code to indicate that a BGP This document uses a BGP Capability code to indicate that a BGP
speaker supports the 4-octets AS numbers. The Capability code has speaker supports the 4-octet AS numbers. The Capability code has
been assigned by IANA per RFC 2842. been assigned by IANA per RFC 2842.
In addition, this document introduces two new BGP optional transitive In addition, this document introduces two new BGP optional transitive
attributes. The first is the NEW_AS_PATH attribute, which preserves attributes. The first is the NEW_AS_PATH attribute, which preserves
the AS path information with 4-octet AS numbers across old BGP the AS path information with 4-octet AS numbers across old BGP
speakers. The second is the NEW_AGGREGATOR attribute, which is speakers. The second is the NEW_AGGREGATOR attribute, which is
similar in use to the current AGGREGATOR attribute but it carries similar in use to the current AGGREGATOR attribute but it carries
4-octet AS numbers. The Type Codes for these attributes has been 4-octet AS numbers. The Type Codes for these attributes has been
assigned by IANA. assigned by IANA.
Finally, this document introduces a reserved 2-octets AS number - Finally, this document introduces a reserved 2-octet AS number -
AS_TRANS. The AS number for AS_TRANS has been assigned by the IANA. AS_TRANS. The AS number for AS_TRANS has been assigned by the IANA.
9. Security Considerations 9. Security Considerations
Security issues are not discussed in this document. This extension to BGP does not change the underlying security issues
inherent in the existing BGP.
10. Acknowledgments 10. Acknowledgments
The authors would like to thank Yakov Rekhter, Chaitanya Kodeboyina, The authors would like to thank Yakov Rekhter, Chaitanya Kodeboyina,
and Jeffrey Haas for the numerous discussions which went into the and Jeffrey Haas for the numerous discussions which went into the
making of this draft. making of this draft.
11. References 11. Normative References
[BGP] Rekhter, Y., Li, T., and Hares, S., "A Border Gateway Protocol [BGP] Rekhter, Y., Li, T., and Hares, S., "A Border Gateway Protocol
4 (BGP-4)", draft-ietf-idr-bgp4-26.txt, October 2004. 4 (BGP-4)", draft-ietf-idr-bgp4-26.txt, October 2004.
[EXT-COM] Ramachandra, S., Tappan, D., and Rekter Y. "BGP Extended [EXT-COM] Ramachandra, S., Tappan, D., and Rekter Y. "BGP Extended
Communities Attribute", draft-ramachandra-bgp-ext-communities-09.txt, Communities Attribute", draft-ramachandra-bgp-ext-communities-09.txt,
July 2005. July 2005.
[RFC1997] Chandra, R., Traina, P. and T. Li, "BGP Communities [RFC1997] Chandra, R., Traina, P. and T. Li, "BGP Communities
Attribute", RFC 1997, August 1996. Attribute", RFC 1997, August 1996.
 End of changes. 41 change blocks. 
71 lines changed or deleted 71 lines changed or added

This html diff was produced by rfcdiff 1.27, available from http://www.levkowetz.com/ietf/tools/rfcdiff/