Think of the following topology.

Here, R1,R2,R3, and R4 are eBGP routers. R3 and R4 also iBGP routers in order to communicate. But in some sample diagrams I noticed, for example, R9 and R8 could be an iBGP router but not eBGP router also. What may be the point in defining a router as only iBGP? Because iBGP uses underlying IGP, I see no use in adding a iBGP router.

BGP Topology

  • For instance, you may want to provide the BGP routes to the other routers without redistribution into an IGP. This question is really too broad with too many possible answers, unless you can provide more specific details.
    – Ron Maupin
    Commented Apr 25, 2016 at 15:43
  • But, is it a practical use. Why an internal router would need bgp routes?
    – Salihm
    Commented Apr 25, 2016 at 15:49
  • @RonMaupin I see but I couldn't find any information or any case that explicitly explains the possible causes
    – Salihm
    Commented Apr 25, 2016 at 15:51
  • 1
    The Internet is full of reasons to use iBGP. For instance, forum.nil.com/viewtopic.php?f=10&t=18. BGP also uses a standard TCP connection to exchange route information, and redistribution should be avoided, especially if you are doing mutual redistribution. You can get routing loops. Yes, it is easier to provide a default route to the eBGP routers, but that is not always appropriate.
    – Ron Maupin
    Commented Apr 25, 2016 at 15:58
  • @RonMaupin ok, i think i was misunderstood, i am not asking why we need ibgp, i understand ibgp is needed for effective communication between ebgp routers. What i ask is, in the image above, think R8 is also ibgp, but it is not a border router, so why it is set as ibgp?, only R3 and R4 would be enough for ibgp communication..
    – Salihm
    Commented Apr 25, 2016 at 16:21

6 Answers 6


The Internet is full of reasons to use iBGP. For instance, iBGP reasons? on the NIL Forum. BGP also uses a standard TCP connection to exchange route information. A big reason is that you want to redistribute your IGP routes into BGP, but you don't want to redistribute the BGP routes into your IGP; this can cause routing loops. Yes, it is easier to provide a default route to the eBGP routers, but that is not always appropriate, either.


iBGP inside of an AS is only used when:
- you need to configure border-routers (R3+R4)
- the network is too big and the OSPF limitation is reached

You normally split a huge network in smaller areas.
IMHO there is no need for iBGP as an IGP like in the 2nd case.
You normally split big networks in smaller areas which are easier to maintain.


iBGP is for internal use on an AS, is entablished between routers on the same AS. By other hand, eBGP is between routers on different AS, is on the way that internet works. On your question, you said that why routers on the same AS some time need to learn routes learned by BG, i guess, because BGP works with the major posibilities of some routing protocols, it can be used to control the way that traffic flow on your AS: maybe you are a transit AS connected to different ISP, Providers an so on, then you can control the path that traffic get to reach some networks, and with that, saving money(maybe your L2 providers have different prices), providing the less congested link to some ISP, use the fastest link to leave your AS, and some other scenarios.


In a transit network (ie one that forwards traffic to other networks), routers which provide paths between border routers (such as Rs 5,6,7,8,9 in your drawing) must speak iBGP in order to distribute the routes the border routers receive to the other border routers.

  • but, there are two border routers r3 and r4. So only having them ibgp enabled is enough. why the others?
    – Salihm
    Commented Apr 26, 2016 at 15:16
  • Because they are not directly connected to each other. BGP speakers must be connected either directly or via other BGP speakers. (It is theoretically possible to re-distribute BGP->IGP->BGP but it is a Bad Idea, it doesn't scale and you lose prefix information)
    – user661
    Commented Apr 26, 2016 at 15:29
  • Any IGP is enough for iBGP. Maybe I forgot to state that all routers in AS1 is running an IGP also. My bad.
    – Salihm
    Commented Apr 26, 2016 at 15:31
  • As I've stated before, redistribution into IGP does not scale. It works with one route or 10, it will most assuredly NOT work with with 600,000 routes.
    – user661
    Commented Apr 26, 2016 at 15:42
  • For clarification: R3 and 4 need not only exchange externally learned prefixes with each other, they must also be able to route this traffic from/to each other - this can be achieved by directly connecting them, re-distributing into IGP (does not scale), iBGP on the intermediate routers or a tunnel between R3 and R4 ("bgp-less core")
    – user661
    Commented Apr 26, 2016 at 15:58

eBGP makes your border routers learn about best routes to reach each prefix on Internet.

iBGP will let all your internal routers know about those external prefixes.

R4 for instance should know that some prefixes are preferred through R1, even if it's directly connected to R2.

iBGP does usually not use internal routing protocol directly. If R1 anounces a prefix with its local interface as a source, either:

  • R3 announce this prefix through iBGP unmodified,
  • R3 reannounce this prefix through iBGP using its loopback interface, or an internal interface (nexthop self),

In both cases an internal routing protocol is needed to propagate internal routes (in one case including external links, in one case not).


Routers don't just need to exchange routes, they also need to actually forward the traffic.

The results of routing decisions are not stored in the packet in any way, so ALL the routers along the path need to know a route that will successfully deliver the packet to it's destination without it getting caught in a routing loop.

iBGP is the normal way to distribute information about external destinations to routers within a AS.

In your diagram R10 and R11 don't really need to know about individual external routes, they only have a single route to the outside world, so they can simply be configured with a default gateway.

R3, R4, R5 and R6 definitely need to know about external routes, so that when they receive a packet destined outside the network, they can send it towards the correct exit.

R7, R8 and R9 could benefit from knowing about external routing information but it's less critical. They could simply be configured with default routes pointing towards R5 and R6 but it may result in less efficient routing and less resiliance against failed links.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.