autonomous system to control traffic flow using
multiple BGP path attributes. BGP allows a provider to fully
use all its bandwidth by manipulating these path attributes.
Content 6.1 BGP Concepts and Terminology
6.1.7 Path-Vector Functionality Internal
routing protocols announce a list of networks and the metrics
to get to each network. In contrast, BGP routers exchange
network reachability information, called path vectors, made up
of path attributes. The path-vector information includes a list
of the full path of BGP autonomous system numbers (hop by hop)
necessary to reach a destination network and the networks that
are reachable at the end of the path. Other attributes include
the IP address to get to the next autonomous system (the
next-hop attribute) and an indication of how the networks at
the end of the path were introduced into BGP (the origin code
attribute). This autonomous system path information is useful
to construct a graph of autonomous systems based on the
information exchanged between BGP neighbors. BGP views the
whole internetwork as a graph, or tree, of autonomous systems.
The connection between any two systems forms a path. The
collection of path information is expressed as a sequence of
autonomous system numbers called the AS path. This sequence
forms a route to reach a specific destination. The AS path is
always loop-free. A router running BGP does not accept a
routing update that already includes the router autonomous
system number in the path list, because the update has already
passed through its autonomous system, and accepting it again
would result in a routing loop.
Content 6.1
BGP Concepts and Terminology 6.1.8 BGP
Routing Policies BGP allows routing-policy decisions at the
autonomous system level to be enforced. These policies can be
implemented for all networks owned by an autonomous system, for
a certain CIDR block of network numbers (prefixes), or for
individual networks or subnetworks.BGP specifies that a BGP
router can advertise to neighboring autonomous systems only
those routes that it uses itself. This rule reflects the
hop-by-hop routing paradigm that the Internet generally uses.
The hop-by-hop routing paradigm does not support all possible
policies. For example, you cannot influence how a neighboring
autonomous system routes traffic, but you can influence how
your traffic gets to a neighboring autonomous system. BGP does
support any policy that conforms to the hop-by-hop routing
paradigm. Because the Internet currently uses the hop-by-hop
routing paradigm only, and because BGP can support any policy
that conforms to that paradigm, BGP is highly applicable as an
inter-autonomous-system routing protocol. For example, in
Figure , the following paths are possible for AS 64512 to reach
networks in AS 64700 through AS 64520: - 64520 64600
64700
- 64520 64600 64540 64550 64700
- 64520
64540 64600 64700
- 64520 64540 64550 64700
AS 64512 does not see all these possibilities. AS 64520
advertises to AS 64512 only its best path, 64520 64600 64700,
in the same way that IGPs announce only their best least-cost
routes. This path is the only path through AS 64520 that AS
64512 sees. All packets that are destined for 64700 through
64520 take this path. Even though other paths exist, AS 64512
can only use what AS 64520 advertises for the networks in AS
64700. The AS path that is advertised, 64520 64600 64700, is
the AS-by-AS (hop-by-hop) path that AS 64520 uses to reach the
networks in AS 64700. AS 64520 will not announce another path,
such as 64520 64540 64600 64700, because it did not choose that
as the best path based on the BGP routing policy in AS 64520.
AS 64512 does not learn of the second-best path or any other
paths from AS 64520, unless the best path of AS 64520 becomes
unavailable. Even if AS 64512 were aware of another path
through AS 64520 and wanted to use it, AS 64520 would not route
packets along that other path because AS 64520 selected 64520
64600 64700 as its best path, and all AS 64520 routers use that
path as a matter of BGP policy. BGP does not let one autonomous
system send traffic to a neighboring autonomous system,
intending that the traffic take a different route from that
taken by traffic originating in the neighboring autonomous
system. To reach the networks in AS 64700, AS 64512 can choose
to use AS 64520 or it can choose to go through the path that AS
64530 is advertising. AS 64512 selects the best path to take
based on its own BGP routing policies.
Content
6.1 BGP Concepts and Terminology
6.1.9 Features of BGP BGP is used by ISPs so that
they can communicate and exchange packets. The ISPs have
multiple connections to each other and agreements to exchange
updates. BGP implements the agreements between two or more
autonomous systems. Improper controlling and filtering of BGP
updates can potentially allow an outside autonomous system to
affect the traffic flow to your autonomous system. It is
important to know how BGP operates and how to configure it
properly to prevent this from occurring. For example, if you
are a customer connected to ISP-A and ISP-B (for redundancy),
you want to implement a routing policy to ensure that ISP-A
does not send traffic to ISP-B via your autonomous system. You
do not want to waste valuable resources and bandwidth within
your autonomous system to route traffic for your ISPs, but you
do want to be able to receive traffic destined to your
autonomous system through each ISP. BGP is not always an
appropriate solution to interconnect autonomous systems. For
example, if only one exit path from the autonomous system
exists, a default route is the most appropriate solution. In
this case, BGP would unnecessarily use router CPU resources and
memory. If the routing policy that you implement in an
autonomous system is consistent with the policy in the ISP
autonomous system, it is not necessary or desirable to
configure BGP in that autonomous system. BGP is categorized as
an advanced distance vector protocol, but it is actually a
path-vector protocol. BGP is very different from standard
distance vector protocols, such as RIP. BGP uses TCP as its
transport protocol, which provides connection-oriented reliable
delivery. BGP assumes that its communication is reliable;
therefore, it does not have to implement retransmission or
error recovery mechanisms. BGP uses TCP port 179. Two routers
using BGP form a TCP connection with one another and exchange
messages to open and confirm the connection parameters. These
two BGP routers are called peer routers, or neighbors. After
the connection is made, BGP peers exchange full routing tables.
However, since the connection is reliable, BGP peers
subsequently send only changes (incremental or triggered
updates) after that. Reliable links do not require periodic
routing updates; therefore, routers use triggered updates
instead. BGP sends keepalive messages, similar to the hello
messages sent by OSPF, IS-IS, and EIGRP. BGP is the only IP
routing protocol to use TCP as its transport layer. OSPF and
EIGRP reside directly above the IP layer, and RIPv1 and RIPv2
use User Datagram Protocol (UDP) for their transport layer.
OSPF and EIGRP have their own internal function to ensure that
update packets are explicitly acknowledged. These protocols use
a one-for-one window, so for multiple packets, the next packet
cannot be sent until an acknowledgment from the first update
packet is received. This process can be very inefficient and
cause latency issues if thousands of update packets must be
exchanged over relatively slow serial links. However, OSPF and
EIGRP rarely have thousands of update packets to send. EIGRP
can hold more than 100 networks in one EIGRP update packet, so
100 EIGRP update packets can hold up to 10,000 networks, and
most organizations do not have 10,000 subnets in the
enterprise. BGP, on the other hand, has more than 170,000
networks (and growing) on the Internet to advertise, and it
uses TCP to handle the acknowledgment function. TCP uses a
dynamic window, which allows 65,576 bytes to be outstanding