2

I understand the concept of "Split Horizon" that an iBGP router A learns an external route from an iBGP router B, thereafter, iBGP router B will not advertise the same route to other iBGP routers.

However, why would an iBGP router NOT modify the NEXT_HOP address when advertising an external route to other iBGP peers? I understand it is a rule of iBGP but what purpose does it serve?

8
  • "an iBGP router A learns an external route from an iBGP router B, thereafter, iBGP router B will not advertise the same route to other iBGP routers." No, the rule is an iBGP speaker cannot advertise a route learned from iBGP to another iBGP speaker. An external (eBGP) route is not a route from iBGP. Router A learning an eBGP route advertises it to router B, and router B can advertise an eBGP route to other iBGP speakers. If router A has a directly connected network and advertises that to router B vis iBGP, then router B cannot advertise that to other iBGP speakers because the Origin is iBGP.
    – Ron Maupin
    May 8, 2022 at 23:56
  • @RonMaupin I appreciate your response but as far as I know, Router E -- eBGP -- Router A --> Advertise a route (10.10.10.0/24) Router A --iBGP -- Router B --> Advertise the route (10.10.10.0/24) Router B --iBGP -- Router C --> Will not advertise route (10.10.10.0/24) Reference 1 Reference 2 May 9, 2022 at 1:39
  • for what reason would you modify NEXT_HOP?
    – Effie
    May 9, 2022 at 9:22
  • @Effie I am trying to understand the reason behind the rule that why an IBGP router should not modify the next-hop address while advertising to another IBGP router? Since the Split Horizon rule is used to avoid loop inside an Autonomous system, what kind of problem it would solve by not updating next hop IP address? May 9, 2022 at 14:03
  • first of all, your split horizon rule will not work if you have route reflectors (see your reference 2). BGP NEXT_HOP is used as a part of decision process (see sec 9.1.2.2 of rfc4271), so if you change next-hop the result would change. I am not sure how, but it will change. I think this is what @manish-ma explained. Also, you might find this link helpful -- see last two sections.
    – Effie
    May 9, 2022 at 14:41

3 Answers 3

5

The reason for this rule is loop prevention. If path attributes which affect the bestpath selection are modified during iBGP-to-iBGP route distribution, loop-free bestpath selection is not guaranteed.

In practice, this rule is broken in many networks and care is taken to align routing policy and network topology choices to prevent loops. Further, when modern MPLS tunneling methods are used, for example labeled-unicast, it is possible to manipulate iBGP-to-iBGP routes without worrying about loops, because a PE1--P2--P3--PE4 topology where P2 bestpaths to PE4 and P3 bestpaths to PE1 isn't a problem so long as the traffic is tunneled; traffic loop does not occur.

-1

One reason, I can think of, is when you have two exit points from your local AS. In this case setting next-hop-self on one of the boundary routers will change BGP's path selection to only use this preferred path - instead of load balancing via 2 exit points.

You can also enable BGP PIC edge for fast convergence in case there is a primary and backup paths towards the unmodified next-hop. If you used next-hop-self this functionality couldn't be utilized.

2
  • next-hop-self is the solution to the IBGP rule, which is "the BGP speaker SHOULD NOT modify the NEXT_HOP attribute unless it has been explicitly configured to announce its own IP address as the NEXT_HOP." I am trying to understand what kind the problem does it solve by adding such a rule? Does it avoid loop or anything else? How? May 9, 2022 at 14:12
  • Usually you don't need to advertise youself as next-hop when advertising routes to other iBGP neighbors, since it is assumed that all next hops within an AS are reachable via some IGP protocol. Also if you are using a route reflector you probably don't want it in the data-path - so also you generally avoid setting it as next-hop.
    – manish ma
    May 9, 2022 at 15:32
-2

I will tell in the simple way, IBGP routers will form the IBGP sessions within the same AS that means all the routers in the IBGP are in the same AS and they will assume that they can reach any subnet through the IGP protocol running, so it wont change the next hop when advertised the prefixes to other IBGP neighbors.

Regards, Ganapareddy Sudhakar

Your Answer

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

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