5.6.5
BGP—The Exterior Gateway Routing Protocol
Within a single AS, the recommended
routing protocol is OSPF (although it is certainly not the only one in use).
Between ASes, a different protocol, BGP (Border Gateway Protocol), is used. A
different protocol is needed between ASes because the goals of an interior
gateway protocol and an exterior gateway protocol are not the same. All an
interior gateway protocol has to do is move packets as efficiently as possible
from the source to the destination. It does not have to worry about politics.
Exterior gateway protocol routers
have to worry about politics a great deal (Metz, 2001). For example, a
corporate AS might want the ability to send packets to any Internet site and
receive packets from any Internet site. However, it might be unwilling to carry
transit packets originating in a foreign AS and ending in a different foreign
AS, even if its own AS was on the shortest path between the two foreign ASes
(''That's their problem, not ours''). On the other hand, it might be willing to
carry transit traffic for its neighbors or even for specific other ASes that
paid it for this service. Telephone companies, for example, might be happy to
act as a carrier for their customers, but not for others. Exterior gateway
protocols in general, and BGP in particular, have been designed to allow many
kinds of routing policies to be enforced in the interAS traffic.
Typical policies involve political,
security, or economic considerations. A few examples of routing constraints
are:
- No transit traffic through certain ASes.
- Never put Iraq on a route starting at the Pentagon.
- Do not use the United States to get from British Columbia to Ontario.
- Only transit Albania if there is no alternative to the destination.
- Traffic starting or ending at IBM should not transit Microsoft.
Policies are typically manually
configured into each BGP router (or included using some kind of script). They
are not part of the protocol itself.
From the point of view of a BGP
router, the world consists of ASes and the lines connecting them. Two ASes are
considered connected if there is a line between a border router in each one.
Given BGP's special interest in transit traffic, networks are grouped into one
of three categories. The first category is the stub networks, which have only
one connection to the BGP graph. These cannot be used for transit traffic
because there is no one on the other side. Then come the multiconnected
networks. These could be used for transit traffic, except that they refuse.
Finally, there are the transit networks, such as backbones, which are willing
to handle third-party packets, possibly with some restrictions, and usually for
pay.
Pairs of BGP routers communicate
with each other by establishing TCP connections. Operating this way provides
reliable communication and hides all the details of the network being passed
through.
BGP is fundamentally a distance
vector protocol, but quite different from most others such as RIP. Instead of
maintaining just the cost to each destination, each BGP router keeps track of
the path used. Similarly, instead of periodically giving each neighbor its
estimated cost to each possible destination, each BGP router tells its
neighbors the exact path it is using.
As an example, consider the BGP
routers shown in Fig. 5-67(a). In particular, consider F's routing
table. Suppose that it uses the path FGCD to get to D. When the neighbors give
it routing information, they provide their complete paths, as shown in Fig. 5-67(b) (for simplicity, only destination D
is shown here).
After all the paths come in from the
neighbors, F examines them to see which is the best. It quickly discards the
paths from I and E, since these paths pass through F itself. The choice is then
between using B and G. Every BGP router contains a module that examines routes
to a given destination and scores them, returning a number for the ''distance''
to that destination for each route. Any route violating a policy constraint
automatically gets a score of infinity. The router then adopts the route with
the shortest distance. The scoring function is not part of the BGP protocol and
can be any function the system managers want.
BGP easily solves the
count-to-infinity problem that plagues other distance vector routing
algorithms. For example, suppose G crashes or the line FG goes down. F then
receives routes from its three remaining neighbors. These routes are BCD, IFGCD,
and EFGCD. It can immediately see that the two latter routes are pointless,
since they pass through F itself, so it chooses FBCD as its new route. Other
distance vector algorithms often make the wrong choice because they cannot tell
which of their neighbors have independent routes to the destination and which
do not. The definition of BGP is in RFCs 1771 to 1774.
No comments:
Post a Comment
silahkan membaca dan berkomentar