Cisco – Why is eBGP receiving updates with `Origin IGP`

bgpciscorouterrouting

Why is eBGP receiving updates with Origin IGP?

Is this normal or just an OS bug?

R1#show version
Cisco IOS Software, 3700 Software (C3745-ADVIPSERVICESK9-M), Version 12.4(25d), 
RELEASE SOFTWARE (fc1)

enter image description here

Best Answer

Reason for Origin IGP:

Routes show up as Origin IGP for one of these reasons:

  • If you use a network x.x.x.x command under the bgp process, the routes naturally show up as Origin IGP. This makes sense, because bgp typically finds those routes in the IGP (of course they could be statics as well)
  • Someone redistributed the routes directly from an IGP into BGP (nominally receiving an incomplete Origin code); then they manually converted Origin incomplete to Origin IGP using a route-map
  • BGP Origin code was manually set in a policy

Why does the BGP Origin code matter?

So the question might be asked, "who cares what the BGP Origin code is?"; the Origin code matters in certain cases. If you look at the BGP Path Selection algorithm, origin code is considered at step 6 of the 10-step algorithm; Origin IGP is considered the lowest if the weight, local-preference, and AS-path length are all the same.

BGP admins typically set Origin IGP on all ingress prefixes to avoid routes with Origin incomplete. If you have routes with Origin incomplete, it potentially short-cuts these decision points: lowest MED, EBGP vs IBGP, lowest IGP cost to the BGP next-hop, and lowest BGP router-id.

So the short answer is people manually force Origin IGP so bgp behaves more rationally. For instance, setting all routes to Origin IGP helps facilitate Hot Potato Routing

BGP Path Selection Algorithm:

Just for grins, I'm including the BGP path selection algorithm below... notice that the Origin code is at step 6, but there are very relevant decision points below.

  1. If the path specifies a next hop that is inaccessible, drop the update.
  2. Prefer the path with the largest weight.
  3. If the weights are the same, prefer the path with the largest local preference.
  4. If the local preferences are the same, prefer the path that was originated by BGP running on this router (self-originated).
  5. If no route was self-originated, prefer the route that has the shortest AS_path.
  6. If all paths have the same AS_path length, prefer the path with the lowest origin type (where IGP is lower than EGP, and EGP is lower than incomplete).
  7. If the origin codes are the same, prefer the path with the lowest MED attribute.
  8. If the paths have the same MED, prefer the external path over the internal path.
  9. If the paths are still the same, prefer the path through the closest IGP neighbor.
  10. Prefer the path with the lowest BGP Router ID (IP address)