分享
 
 
 

RFC1774 - BGP-4 Protocol Analysis

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Network Working Group P. Traina, Editor

Request for Comments: 1774 cisco Systems

Category: Informational March 1995

BGP-4 Protocol Analysis

Status of this Memo

This memo provides information for the Internet community. This memo

does not specify an Internet standard of any kind. Distribution of

this memo is unlimited.

IntrodUCtion

The purpose of this report is to document how the requirements for

advancing a routing protocol to Draft Standard have been satisfied by

the Border Gateway Protocol version 4 (BGP-4). This report summarizes

the key features of BGP, and analyzes the protocol with respect to

scaling and performance. This is the first of two reports on the BGP

protocol.

BGP-4 is an inter-autonomous system routing protocol designed for

TCP/IP internets. Version 1 of the BGP protocol was published in RFC

1105. Since then BGP versions 2, 3, and 4 have been developed.

Version 2 was documented in RFC1163. Version 3 is documented in

RFC1267. The changes between versions are eXPlained in Appendix 2 of

[1].

Possible applications of BGP in the Internet are documented in [2].

Please send comments to iwg@ans.net.

Key features and algorithms of the BGP-4 protocol.

This section summarizes the key features and algorithms of the BGP

protocol. BGP is an inter-autonomous system routing protocol; it is

designed to be used between multiple autonomous systems. BGP assumes

that routing within an autonomous system is done by an intra-

autonomous system routing protocol. BGP does not make any assumptions

about intra-autonomous system routing protocols employed by the

various autonomous systems. Specifically, BGP does not require all

autonomous systems to run the same intra-autonomous system routing

protocol.

BGP is a real inter-autonomous system routing protocol. It imposes no

constraints on the underlying Internet topology. The information

exchanged via BGP is sufficient to construct a graph of autonomous

systems connectivity from which routing loops may be pruned and some

routing policy decisions at the autonomous system level may be

enforced.

The key features of the protocol are the notion of path attributes

and aggregation of network layer reachability information (NLRI).

Path attributes provide BGP with flexibility and expandability. Path

attributes are partitioned into well-known and optional. The

provision for optional attributes allows experimentation that may

involve a group of BGP routers without affecting the rest of the

Internet. New optional attributes can be added to the protocol in

much the same fashion as new options are added to the Telnet

protocol, for instance.

One of the most important path attributes is the AS-PATH. AS

reachability information traverses the Internet, this information is

augmented by the list of autonomous systems that have been traversed

thus far, forming the AS-PATH. The AS-PATH allows straightforward

suppression of the looping of routing information. In addition, the

AS-PATH serves as a powerful and versatile mechanism for policy-based

routing.

BGP-4 enhances the AS-PATH attribute to include sets of autonomous

systems as well as lists. This extended format allows generated

aggregate routes to carry path information from the more specific

routes used to generate the aggregate.

BGP uses an algorithm that cannot be classified as either a pure

distance vector, or a pure link state. Carrying a complete AS path in

the AS-PATH attribute allows to reconstruct large portions of the

overall topology. That makes it similar to the link state algorithms.

Exchanging only the currently used routes between the peers makes it

similar to the distance vector algorithms.

To conserve bandwidth and processing power, BGP uses incremental

updates, where after the initial exchange of complete routing

information, a pair of BGP routers exchanges only changes (deltas) to

that information. Technique of incremental updates requires reliable

transport between a pair of BGP routers. To achieve this

functionality BGP uses TCP as its transport.

In addition to incremental updates, BGP-4 has added the concept of

route aggregation so that information about groups of networks may

represented as a single entity.

BGP is a self-contained protocol. That is, it specifies how routing

information is exchanged both between BGP speakers in different

autonomous systems, and between BGP speakers within a single

autonomous system.

To allow graceful coexistence with EGP and OSPF, BGP provides support

for carrying both EGP and OSPF derived exterior routes BGP also

allows to carry statically defined exterior routes or routes derived

by other IGP information.

BGP performance characteristics and scalability

In this section we'll try to answer the question of how much link

bandwidth, router memory and router CPU cycles does the BGP protocol

consume under normal conditions. We'll also address the scalability

of BGP, and look at some of its limits.

BGP does not require all the routers within an autonomous system to

participate in the BGP protocol. Only the border routers that provide

connectivity between the local autonomous system and its adjacent

autonomous systems participate in BGP. Constraining the set of

participants is just one way of addressing the scaling issue.

Link bandwidth and CPU utilization

Immediately after the initial BGP connection setup, the peers

exchange complete set of routing information. If we denote the total

number of routes in the Internet by N, the mean AS distance of the

Internet by M (distance at the level of an autonomous system,

expressed in terms of the number of autonomous systems), the total

number of autonomous systems in the Internet by A, and assume that

the networks are uniformly distributed among the autonomous systems,

then the worst case amount of bandwidth consumed during the initial

exchange between a pair of BGP speakers is

MR = O(N + M * A)

The following table illustrates typical amount of bandwidth consumed

during the initial exchange between a pair of BGP speakers based on

the above assumptions (ignoring bandwidth consumed by the BGP

Header).

# NLRI Mean AS Distance # AS's Bandwidth

---------- ---------------- ------ ---------

10,000 15 300 49,000 bytes

20,000 8 400 86,000 bytes *

40,000 15 400 172,000 bytes

100,000 20 3,000 520,000 bytes

* the actual "size" of the Internet at the the time of this

document's publication

Note that most of the bandwidth is consumed by the exchange of the

Network Layer Reachability Information (NLRI).

BGP-4 was created specifically to reduce the amount of NLRI entries

carried and exchanged by border routers. BGP-4, along with CIDR [4]

has introduced the concept of the "Supernet" which describes a

power-of-two aggregation of more than one class-based network.

Due to the advantages of advertising a few large aggregate blocks

instead of many smaller class-based individual networks, it is

difficult to estimate the actual reduction in bandwidth and

processing that BGP-4 has provided over BGP3. If we simply enumerate

all aggregate blocks into their individual class-based networks, we

would not take into account "dead" space that has been reserved for

future expansion. The best metric for determining the success of

BGP-4's aggregation is to sample the number NLRI entries in the

globally connected Internet today and compare it to projected growth

rates before BGP-4 was deployed.

In January of 1994, router carrying a full routing load for the

globally connected Internet had approximately 19,000 network entries

(this number is not exact due to local policy variations). The BGP

deployment working group estimated that the growth rate at that time

was over 1000 new networks per month and increasing. Since the

widespread deployment of BGP-4, the growth rate has dropped

significantly and a sample done at the end of November 1994 showed

approximately 21,000 entries present, as opposed to the expected

30,000.

CPU cycles consumed by BGP depends only on the stability of the

Internet. If the Internet is stable, then the only link bandwidth and

router CPU cycles consumed by BGP are due to the exchange of the BGP

KEEPALIVE messages. The KEEPALIVE messages are exchanged only between

peers. The suggested frequency of the exchange is 30 seconds. The

KEEPALIVE messages are quite short (19 octets), and require virtually

no processing. Therefore, the bandwidth consumed by the KEEPALIVE

messages is about 5 bits/sec. Operational experience confirms that

the overhead (in terms of bandwidth and CPU) associated with the

KEEPALIVE messages should be viewed as negligible. If the Internet

is unstable, then only the changes to the reachability information

(that are caused by the instabilities) are passed between routers

(via the UPDATE messages). If we denote the number of routing changes

per second by C, then in the worst case the amount of bandwidth

consumed by the BGP can be expressed as O(C * M). The greatest

overhead per UPDATE message occurs when each UPDATE message contains

only a single network. It should be pointed out that in practice

routing changes exhibit strong locality with respect to the AS path.

That is routes that change are likely to have common AS path. In this

case multiple networks can be grouped into a single UPDATE message,

thus significantly reducing the amount of bandwidth required (see

also Appendix 6.1 of [1]).

Since in the steady state the link bandwidth and router CPU cycles

consumed by the BGP protocol are dependent only on the stability of

the Internet, but are completely independent on the number of

networks that compose the Internet, it follows that BGP should have

no scaling problems in the areas of link bandwidth and router CPU

utilization, as the Internet grows, provided that the overall

stability of the inter-AS connectivity (connectivity between ASs) of

the Internet can be controlled. Stability issue could be addressed by

introducing some form of dampening (e.g., hold downs). Due to the

nature of BGP, such dampening should be viewed as a local to an

autonomous system matter (see also Appendix 6.3 of [1]). It is

important to point out, that regardless of BGP, one should not

underestimate the significance of the stability in the Internet.

Growth of the Internet has made the stability issue one of the most

crucial ones. It is important to realize that BGP, by itself, does

not introduce any instabilities in the Internet. Current observations

in the NSFNET show that the instabilities are largely due to the

ill-behaved routing within the autonomous systems that compose the

Internet. Therefore, while providing BGP with mechanisms to address

the stability issue, we feel that the right way to handle the issue

is to address it at the root of the problem, and to come up with

intra-autonomous routing schemes that exhibit reasonable stability.

It also may be instructive to compare bandwidth and CPU requirements

of BGP with EGP. While with BGP the complete information is exchanged

only at the connection establishment time, with EGP the complete

information is exchanged periodically (usually every 3 minutes). Note

that both for BGP and for EGP the amount of information exchanged is

roughly on the order of the networks reachable via a peer that sends

the information (see also Section 5.2). Therefore, even if one

assumes extreme instabilities of BGP, its worst case behavior will be

the same as the steady state behavior of EGP.

Operational experience with BGP showed that the incremental updates

approach employed by BGP presents an enormous improvement both in the

area of bandwidth and in the CPU utilization, as compared with

complete periodic updates used by EGP (see also presentation by

Dennis Ferguson at the Twentieth IETF, March 11-15, 1991, St.Louis).

Memory requirements

To quantify the worst case memory requirements for BGP, denote the

total number of networks in the Internet by N, the mean AS distance

of the Internet by M (distance at the level of an autonomous system,

expressed in terms of the number of autonomous systems), the total

number of autonomous systems in the Internet by A, and the total

number of BGP speakers that a system is peering with by K (note that

K will usually be dominated by the total number of the BGP speakers

within a single autonomous system). Then the worst case memory

requirements (MR) can be expressed as

MR = O((N + M * A) * K)

In the current NSFNET Backbone (N = 2110, A = 59, and M = 5) if each

network is stored as 4 octets, and each autonomous system is stored

as 2 octets then the overhead of storing the AS path information (in

addition to the full complement of exterior routes) is less than 7

percent of the total memory usage.

It is interesting to point out, that prior to the introduction of BGP

in the NSFNET Backbone, memory requirements on the NSFNET Backbone

routers running EGP were on the order of O(N * K). Therefore, the

extra overhead in memory incurred by the NSFNET routers after the

introduction of BGP is less than 7 percent.

Since a mean AS distance grows very slowly with the total number of

networks (there are about 60 autonomous systems, well over 2,000

networks known in the NSFNET backbone routers, and the mean AS

distance of the current Internet is well below 5), for all practical

purposes the worst case router memory requirements are on the order

of the total number of networks in the Internet times the number of

peers the local system is peering with. We expect that the total

number of networks in the Internet will grow much faster than the

average number of peers per router. Therefore, scaling with respect

to the memory requirements is going to be heavily dominated by the

factor that is linearly proportional to the total number of networks

in the Internet.

The following table illustrates typical memory requirements of a

router running BGP. It is assumed that each network is encoded as 4

bytes, each AS is encoded as 2 bytes, and each networks is reachable

via some fraction of all of the peers (# BGP peers/per net).

# Networks Mean AS Distance # AS's # BGP peers/per net Memory Req

---------- ---------------- ------ ------------------- ----------

2,100 5 59 3 27,000

4,000 10 100 6 108,000

10,000 15 300 10 490,000

100,000 20 3,000 20 1,040,000

To put memory requirements of BGP in a proper perspective, let's try

to put aside for a moment the issue of what information is used to

construct the forwarding tables in a router, and just focus on the

forwarding tables themselves. In this case one might ask about the

limits on these tables. For instance, given that right now the

forwarding tables in the NSFNET Backbone routers carry well over

20,000 entries, one might ask whether it would be possible to have a

functional router with a table that will have 200,000 entries.

Clearly the answer to this question is completely independent of BGP.

On the other hand the answer to the original questions (that was

asked with respect to BGP) is directly related to the latter

question. Very interesting comments were given by Paul Tsuchiya in

his review of BGP in March of 1990 (as part of the BGP review

committee appointed by Bob Hinden). In the review he said that, "BGP

does not scale well. This is not really the fault of BGP. It is the

fault of the flat IP address space. Given the flat IP address space,

any routing protocol must carry network numbers in its updates." With

the introduction of CIDR [4] and BGP-4, we have attempted to reduce

this limitation. Unfortunately, we cannot erase history nor can

BGP-4 solve the problems inherent with inefficient assignment of

future address blocks.

To reiterate, BGP limits with respect to the memory requirements are

directly related to the underlying Internet Protocol (IP), and

specifically the addressing scheme employed by IP. BGP would provide

much better scaling in environments with more flexible addressing

schemes. It should be pointed out that with only very minor

additions BGP was extended to support hierarchies of autonomous

system [8]. Such hierarchies, combined with an addressing scheme that

would allow more flexible address aggregation capabilities, can be

utilized by BGP-like protocols, thus providing practically unlimited

scaling capabilities.

Applicability of BGP

In this section we'll try to answer the question of what environment

is BGP well suited, and for what is it not suitable? Partially this

question is answered in the Section 2 of [1], where the document

states the following:

"To characterize the set of policy decisions that can be enforced

using BGP, one must focus on the rule that an AS advertises to its

neighbor ASs only those routes that it itself uses. This rule

reflects the "hop-by-hop" routing paradigm generally used

throughout the current Internet. Note that some policies cannot

be supported by the "hop-by-hop" routing paradigm and thus require

techniques such as source routing to enforce. For example, BGP

does not enable one AS to send traffic to a neighbor AS intending

that the traffic take a different route from that taken by traffic

originating in the neighbor AS. On the other hand, BGP can

support any policy conforming to the "hop-by-hop" routing

paradigm. Since the current Internet uses only the "hop-by-hop"

routing paradigm and since BGP can support any policy that

conforms to that paradigm, BGP is highly applicable as an inter-AS

routing protocol for the current Internet."

While BGP is well suitable for the current Internet, it is also

almost a necessity for the current Internet as well. Operational

experience with EGP showed that it is highly inadequate for the

current Internet. Topological restrictions imposed by EGP are

unjustifiable from the technical point of view, and unenforceable

from the practical point of view. Inability of EGP to efficiently

handle information exchange between peers is a cause of severe

routing instabilities in the operational Internet. Finally,

information provided by BGP is well suitable for enforcing a variety

of routing policies.

Rather than trying to predict the future, and overload BGP with a

variety of functions that may (or may not) be needed, the designers

of BGP took a different approach. The protocol contains only the

functionality that is essential, while at the same time provides

flexible mechanisms within the protocol itself that allow to expand

its functionality. Since BGP was designed with flexibility and

expandability in mind, we think it should be able to address new or

evolving requirements with relative ease. The existence proof of this

statement may be found in the way how new features (like repairing a

partitioned autonomous system with BGP) are already introduced in the

protocol.

To summarize, BGP is well suitable as an inter-autonomous system

routing protocol for the current Internet that is based on IP (RFC

791) as the Internet Protocol and "hop-by-hop" routing paradigm. It

is hard to speculate whether BGP will be suitable for other

environments where internetting is done by other than IP protocols,

or where the routing paradigm will be different.

Security Considerations

Security issues are not discussed in this memo.

Acknowledgments

The BGP-4 protocol has been developed by the IDR/BGP Working Group of

the Internet Engineering Task Force. I would like to express thanks

to Yakov Rekhter for providing RFC1265. This document is only a

minor update to the original text. I'd also like to explicitly thank

Yakov Rekhter and Tony Li for their review of this document as well

as their constructive and valuable comments.

Editor's Address

Paul Traina

cisco Systems, Inc.

170 W. Tasman Dr.

San Jose, CA 95134

EMail: pst@cisco.com

References

[1] Rekhter, Y., and T., Li, "A Border Gateway Protocol 4 (BGP-4)",

RFC1771, T.J. Watson Research Center, IBM Corp., cisco Systems,

March 1995.

[2] Rekhter, Y., and P. Gross, Editors, "Application of the Border

Gateway Protocol in the Internet", RFC1772, T.J. Watson Research

Center, IBM Corp., MCI, March 1995.

[3] Willis, S., Burruss, J., and J. Chu, "Definitions of Managed

Objects for the Fourth Version of the Border Gateway Protocol

(BGP-4) using SMIv2", RFC1657, Wellfleet Communications Inc.,

IBM Corp., July 1994.

[4] Fuller V., Li. T., Yu J., and K. Varadhan, "Classless Inter-

Domain Routing (CIDR): an Address Assignment and Aggregation

Strategy", RFC1519, BARRNet, cisco, MERIT, OARnet, September

1993.

[6] Moy J., "Open Shortest Path First Routing Protocol (Version 2)",

RFC1257, Proteon, August 1991.

[7] Varadhan, K., Hares S., and Y. Rekhter, "BGP4/IDRP for IP---OSPF

Interaction", Work in Progress.

[8] ISO/IEC 10747, Kunzinger, C., Editor, "Inter-Domain Routing

Protocol", October 1993.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有