|
| |
BGP Router Connectivity and Learning Routes
In the simplest arrangement all routers within a single AS and participating in
BGP routing must be configured in a full mesh: each router must be configured as
peer to every other router. This causes scaling problems, since the number of
required connections grows quadratically with the number of routers involved. To
get around this, two solutions are built into BGP: route reflectors (RFC 2796)
and confederations (RFC 3065). For the following discussion of basic UPDATE
processing, assume a full iBGP mesh.
Basic UPDATE Processing
A given BGP router may accept NRLI in UPDATEs from multiple neighbors and
advertise NLRI to the same, or a different set, of neighbors. Conceptually, BGP
maintains its own "master" routing table, called the Loc-RIB, separate from the
main routing table of the router. For each neighbor, the BGP process maintains a
conceptual Adj-RIB-In containing the NLRI received from the neighbor, and a
conceptual Adj-RIB-Out for NLRI to be sent to the neighbor.
"Conceptual", in the preceding paragraph, means that the physical storage and
structure of these various tables are decided by the implementer of the BGP
code. Their structure is not visible to other BGP routers, although they usually
can be interrogated with management commands on the local router. It is quite
common, for example, to store both Adj-RIBs and the Loc-RIB in the same data
structure, with additional information attached to the RIB entries. The
additional information tells the BGP process such things as whether individual
entries belong in the Adj-RIBs for specific neighbors, whether the per-neighbor
route selection process made received policies eligible for the Loc-RIB, and
whether Loc-RIB entries are eligible to be submitted to the local router's
routing table management process.
By "eligible to be submitted", BGP will submit the routes that it considers best
to the main routing table process. Depending on the implementation of that
process, the BGP route is not necessarily selected. For example, a directly
connected prefix, learned from the router's own hardware, is usually most
preferred. As long as that directly connected route's interface is active, the
BGP route to the destination will not be put into the routing table. Once the
interface goes down, and there are no more preferred routes, the Loc-RIB route
would be installed in the main routing table. Until recently, it was a common
mistake to say "BGP carries policies". BGP really carried the information with
which rules inside BGP-speaking routers could make policy decisions. Some of the
information carried that is explicitly intended to be used in policy decisions
are communities and multi-exit discriminators (MED).
| |
|