packet, the router looks up destination address in
the routing table. The routing table lists the appropriate
interface to get to the destination address. The address of
this outbound interface is used as the source address of that
packet by default. Consider what would happen if a neighboring
router uses the loopback interface address in its
neighbor command for this router, but the other
neighboring router does not use the neighbor
update-source command. When the neighboring router receives
an update packet and looks at the source address of the packet,
it sees that it has no neighbor relationship with that source
address, so it discards the packet. BGP does not accept
unsolicited updates. It must be aware of every neighboring
router and have a neighbor statement for it. Multiple paths can
exist to reach each neighbor when peering with IBGP neighboring
routers. If the BGP router is using a neighbor address that is
assigned to a specific interface on another router, and that
interface goes down, the router pointing to this address loses
its BGP session with that neighbor. If the router peers with
the loopback interface instead of the other router, the
loopback interface is always be available as long as the
router itself does not fail. This peering arrangement adds
resiliency to the IBGP sessions because the routers are not
tied into a physical interface, which may go down for any
number of reasons. To peer with the loopback of another
internal neighbor, the first router points the neighbor
statement at the loopback address of the other internal
neighbor. Ensure that both routers have a route to the loopback
address of the other neighbor in their routing table. Also
ensure that both routers are announcing their loopback
addresses into their local routing protocol. Example: Using
Loopback Addresses with BGP
In Figure , router B has
router A as an EBGP neighbor. The only reachable address for
router B to use for a neighbor address in BGP is the directly
connected address of 172.16.1.1. Router B has multiple paths to
reach router C, an IBGP neighbor. All networks, including the
IP network for the loopback interface of router C, can be
reached from router B. Router B can reach these networks
because routers B and C exchange EIGRP updates; routers B and A
do not exchange EIGRP updates. The neighbor relationship
between routers B and C is not tied to a physical interface
because router B peers with the loopback interface on router C
and uses its loopback address as the source IP address, and
vice versa. If router B instead peered with 10.1.1.2 on router
C and that interface went down, the BGP neighbor relationship
would also go down. The neighbor update-source command
should be used on both routers. If router B points to loopback
address 3.3.3.3 of router C, and router C points at loopback
address 2.2.2.2 of router B, and neither uses the neighbor
update-source command, the BGP session between these
routers does not start. Router B would send a BGP open packet
to router C with the source IP address being either 10.1.1.1 or
10.2.2.1. Router C would review the source IP address and
attempt to match it against its list of known neighbors. Router
C would not find a match and would not respond to the open
message from router B.
Content 6.3
Configuring BGP 6.3.7 EBGP Peering
Issue When an EBGP router is peering with an external
neighbor, the only address that it can reach without further
configuration is the interface that is directly connected to
that EBGP router. Remember that internal routing information is
not exchanged with external peers. Therefore, the router has to
point to a directly connected address for that external
neighbor. If a loopback interface is used instead of the
directly connected interface, additional configuration is
required. To allow the router to accept and attempt BGP
connections to external peers residing on networks that are not
directly connected, you must configure the neighbor
ip-address ebgp-multihop [ttl] router
configuration command. Figure displays the command parameters.
EBGP peers are usually only one hop away from each other. The
neighbor ebgp-multihop command increases the default hop
value to allow routes to the EBGP loopback address with a TTL
value greater than 1. If a TTL value is not specified, the
router uses 255 (the default). This command is of value when
redundant paths exist between EBGP neighbors.
Example: ebgp-multihop Command
In Figure , router A
in AS 65102 has two paths to router B in AS 65101. If router A
uses a single neighbor statement and points at 192.168.1.18 on
router B of AS 65101 and that link goes down, there is no BGP
session between these autonomous systems. As a result, no
packets pass from one autonomous system to the next, even
though another link exists. If router A instead uses two
neighbor statements pointing at 192.168.1.18 and 192.168.1.34
on router B, it partially solves the problem. However, every
BGP update that router A receives is sent to router B twice
because there are two neighbor statements. As shown in the
figure, router A instead points to the loopback address of
router B and vice versa, and each router uses its loopback
address as the source IP address for its BGP updates. Because
an IGP is not used between autonomous systems, neither router
can reach the loopback of the other router without assistance.
Each router needs to use two static routes to inform BGP of the
paths available to reach the loopback address of the other
router. An EBGP neighbor address must be directly connected by
default. The neighbor ebgp-multihop command must be used
to change the default setting of BGP and inform BGP that this
neighbor IP address is more than one hop away. In the figure,
the command used on router A informs BGP that the neighbor
address of 1.1.1.1 is two hops away. Note
BGP is not
designed to perform load balancing. Paths are chosen because of
policy, not based on bandwidth. BGP chooses only a single best
path. Using the loopback addresses and the neighbor
ebgp-multihop command as shown in this example allows load
balancing and redundancy across the two paths between the
autonomous systems.
Content 6.3
Configuring BGP 6.3.8 Next Hop Behavior The
way in which BGP establishes an IBGP relationship is very
different from the way that IGPs behave. The method that BGP
uses to denote its next-hop address is also very different. BGP
informs the next autonomous system about paths to other
autonomous systems and the networks that those other autonomous
systems own. BGP, like IGPs, is a hop-by-hop routing protocol.
However, unlike IGPs, BGP routes from autonomous system to
autonomous system, and the default next hop is the next
autonomous system. An IBGP neighboring router that learns about
a network outside of its autonomous systems sees, as the
next-hop address, the entry point for the next autonomous
systems along the path to reach the distant network. For EBGP,
the default next hop is the IP address of the neighboring
router that sent the update. For IBGP, the BGP protocol states
that the next hop advertised by EBGP should be carried into
IBGP. Example: Next-Hop Behavior
In Figure , router
A advertises 172.16.0.0 to router B with a next hop of
10.10.10.3. Router B advertises 172.20.0.0 to router A with a
next hop of 10.10.10.1. For IBGP, the BGP protocol states that
the next hop advertised by EBGP should be carried into IBGP.
Because of this rule, router B advertises 172.16.0.0 to its
IBGP peer router C with a next hop of 10.10.10.3, the address
of router A. Router C knows that the next hop to reach
172.16.0.0 is 10.10.10.3, not 172.20.10.1, as you might
expect. Therefore, it is very important for router C to know
how to reach the 10.10.10.0 subnet, either through an IGP or a
static route. Otherwise, router C drops packets destined for
172.16.0.0 because it is not able to get to the next-hop
address for that network. An IBGP neighboring router performs a