Internal BGP (IBGP) is the form of BGP that exchanges BGP updates within an AS. Instead of IBGP, the routes learned via EBGP could be redistributed into IGP within the AS and then redistributed again into another AS. However, IBGP is more flexible, provides more efficient ways of controlling the exchange of information within the AS, and presents a consistent view of the AS to external neighbors. For example, IBGP provides ways to control the exit point from an AS.


shows a topology that demonstrates IBGP.


Figure 12-2 Internal BGP Example


 

 


The following commands configure Routers A and B in AS 100, and Router C in AS 400:


!Router A

router bgp 100

neighbor 180.10.30.1 remote-as 100

neighbor 190.10.50.1 remote-as 100

neighbor 170.10.20.2 remote-as 300

network 150.10.0.0

!Router B

router bgp 100

neighbor 150.10.30.1 remote-as 100

neighbor 175.10.40.1 remote-as 400

neighbor 180.10.30.1 remote-as 100

network 190.10.50.0

!Router C

router bgp 400

neighbor 175.10.40.2 remote-as 100

network 175.10.0.0

!Router D

router bgp 100

neighbor 150.10.30.1 remote-as 100

neighbor 190.10.50.1 remote as 100

network 190.10.0.0

When a BGP speaker receives an update from other BGP speakers in its own AS (that is, via IBGP), the receiving BGP speaker uses EBGP to forward the update to external BGP speakers only. This behavior of IBGP is why it is necessary for BGP speakers within an AS to be fully meshed.


For example, in , if there were no IBGP session between Routers B and D, Router A would send updates from Router B to Router E but not to Router D. If you want Router D to receive updates from Router B, Router B must be configured so that Router D is a BGP peer.


Loopback Interfaces


Loopback interfaces are often used by IBGP peers. The advantage of using loopback interfaces is that they eliminate a dependency that would otherwise occur when you use the IP address of a physical interface to configure BGP. shows a network in which using the loopback interface is advantageous.


Figure 12-3 Use of Loopback Interfaces


 

 


In , Routers A and B are running IBGP within AS 100. If Router A were to specify the IP address of Ethernet interface 0, 1, 2, or 3 in the neighbor remote-as router configuration command, and if the specified interface were to become unavailable, Router A would not be able to establish a TCP connection with Router B. Instead, Router A specifies the IP address of the loopback interface that Router B defines. When the loopback interface is used, BGP does not have to rely on the availability of a particular interface for making TCP connections.


The following commands configure Router A for BGP:


!Router A

router bgp 100

neighbor 150.212.1.1 remote-as 100

The following commands configure Router B for BGP:


!Router B

loopback interface 0

ip address 150.212.1.1 255.255.0.0

!

router bgp 100

neighbor 190.225.11.1 remote-as 100

neighbor 190.225.11.1 update-source loopback 0

Router A specifies the IP address of the loopback interface (150.212.1.1) of Router B in the neighbor remote-as router configuration command. This use of the loopback interface requires that the configuration of Router B include the neighbor update-source router configuration command. When the neighbor update-source command is used, the source of BGP TCP connections for the specified neighbor is the IP address of the loopback interface instead of the IP address of a physical interface.