1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557
|
<pre>Network Working Group P. Traina, Editor
Request for Comments: 1774 cisco Systems
Category: Informational March 1995
<span class="h1">BGP-4 Protocol Analysis</span>
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 <a href="./rfc1105">RFC</a>
<a href="./rfc1105">1105</a>. Since then BGP versions 2, 3, and 4 have been developed.
Version 2 was documented in <a href="./rfc1163">RFC 1163</a>. Version 3 is documented in
<a href="./rfc1267">RFC1267</a>. The changes between versions are explained in Appendix 2 of
[<a href="#ref-1" title=""A Border Gateway Protocol 4 (BGP-4)"">1</a>].
Possible applications of BGP in the Internet are documented in [<a href="#ref-2" title=""Application of the Border Gateway Protocol in the Internet"">2</a>].
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
<span class="grey">Traina [Page 1]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-2" ></span>
<span class="grey"><a href="./rfc1774">RFC 1774</a> BGP-4 Protocol Analysis March 1995</span>
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
<span class="grey">Traina [Page 2]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-3" ></span>
<span class="grey"><a href="./rfc1774">RFC 1774</a> BGP-4 Protocol Analysis March 1995</span>
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
<span class="grey">Traina [Page 3]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-4" ></span>
<span class="grey"><a href="./rfc1774">RFC 1774</a> BGP-4 Protocol Analysis March 1995</span>
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 [<a href="#ref-4" title=""Classless Inter- Domain Routing (CIDR): an Address Assignment and Aggregation Strategy"">4</a>]
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
<span class="grey">Traina [Page 4]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-5" ></span>
<span class="grey"><a href="./rfc1774">RFC 1774</a> BGP-4 Protocol Analysis March 1995</span>
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 [<a href="#ref-1" title=""A Border Gateway Protocol 4 (BGP-4)"">1</a>]).
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 [<a href="#ref-1" title=""A Border Gateway Protocol 4 (BGP-4)"">1</a>]). 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 <a href="#section-5.2">Section 5.2</a>). 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).
<span class="grey">Traina [Page 5]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-6" ></span>
<span class="grey"><a href="./rfc1774">RFC 1774</a> BGP-4 Protocol Analysis March 1995</span>
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).
<span class="grey">Traina [Page 6]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-7" ></span>
<span class="grey"><a href="./rfc1774">RFC 1774</a> BGP-4 Protocol Analysis March 1995</span>
# 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 [<a href="#ref-4" title=""Classless Inter- Domain Routing (CIDR): an Address Assignment and Aggregation Strategy"">4</a>] 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 [<a href="#ref-8" title=""Inter-Domain Routing Protocol"">8</a>]. 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 [<a href="#ref-1" title=""A Border Gateway Protocol 4 (BGP-4)"">1</a>], where the document
states the following:
<span class="grey">Traina [Page 7]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-8" ></span>
<span class="grey"><a href="./rfc1774">RFC 1774</a> BGP-4 Protocol Analysis March 1995</span>
"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 (<a href="./rfc791">RFC</a>
<a href="./rfc791">791</a>) 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.
<span class="grey">Traina [Page 8]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-9" ></span>
<span class="grey"><a href="./rfc1774">RFC 1774</a> BGP-4 Protocol Analysis March 1995</span>
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 <a href="./rfc1265">RFC 1265</a>. 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
<span class="grey">Traina [Page 9]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-10" ></span>
<span class="grey"><a href="./rfc1774">RFC 1774</a> BGP-4 Protocol Analysis March 1995</span>
References
[<a id="ref-1">1</a>] Rekhter, Y., and T., Li, "A Border Gateway Protocol 4 (BGP-4)",
<a href="./rfc1771">RFC 1771</a>, T.J. Watson Research Center, IBM Corp., cisco Systems,
March 1995.
[<a id="ref-2">2</a>] Rekhter, Y., and P. Gross, Editors, "Application of the Border
Gateway Protocol in the Internet", <a href="./rfc1772">RFC 1772</a>, T.J. Watson Research
Center, IBM Corp., MCI, March 1995.
[<a id="ref-3">3</a>] Willis, S., Burruss, J., and J. Chu, "Definitions of Managed
Objects for the Fourth Version of the Border Gateway Protocol
(BGP-4) using SMIv2", <a href="./rfc1657">RFC 1657</a>, Wellfleet Communications Inc.,
IBM Corp., July 1994.
[<a id="ref-4">4</a>] Fuller V., Li. T., Yu J., and K. Varadhan, "Classless Inter-
Domain Routing (CIDR): an Address Assignment and Aggregation
Strategy", <a href="./rfc1519">RFC 1519</a>, BARRNet, cisco, MERIT, OARnet, September
1993.
[<a id="ref-6">6</a>] Moy J., "Open Shortest Path First Routing Protocol (Version 2)",
<a href="./rfc1257">RFC 1257</a>, Proteon, August 1991.
[<a id="ref-7">7</a>] Varadhan, K., Hares S., and Y. Rekhter, "BGP4/IDRP for IP---OSPF
Interaction", Work in Progress.
[<a id="ref-8">8</a>] ISO/IEC 10747, Kunzinger, C., Editor, "Inter-Domain Routing
Protocol", October 1993.
Traina [Page 10]
</pre>
|