8.6 Peering
8.6.2
How to maintain BGP continuity inside an AS
To avoid creating routing loops inside an AS, BGP does not advertise routes learned via IBGP peers to other IBGP peers. Thus, it is important to maintain a full IBGP mesh within the AS -- that is, every BGP router in the AS has to build a BGP session with all other BGP routers inside the AS. The figure illustrates one of the common mistakes administrators make when setting BGP routing within an AS.

In the network illustrated in the figure, an ISP has three POPs: San Jose, San Francisco, and Los Angeles. Each POP has multiple non-BGP routers and a BGP border router running EBGP with other ASs. The administrator sets up an IBGP connection between the San Jose border router and the San Francisco border router. He sets up another IBGP connection between the San Francisco border router and the Los Angeles border router. In this configuration, EBGP routes learned via San Jose will be given to San Francisco, EBGP routes learned via San Francisco are given to San Jose and Los Angeles, and EBGP routes learned via Los Angeles are given to San Francisco. Routing in this picture is not complete; EBGP routes learned via San Jose will not be given to Los Angeles, and EBGP routes learned via Los Angeles will not be given to San Jose. This is because the San Francisco router will not pass on IBGP routes between San Jose and Los Angeles. What is needed is an additional IBGP connection between San Jose and Los Angeles (shown via the dotted line). You will see later how this situation could be handled by using the concept of route reflectors, an option that scales much better in cases where the AS has a large number of IBGP peers.