1

As far as I understand, BGP synchronization is a feature now disabled by default. It only allows iBGP routes to be selected as best (and hence further advertised to other neighbors) if there is a matching IGP route.

I have a router (R1) running both BGP (in AS100) and EIGRP. The Router is route reflector in AS100 and connected to another router (R8) which in turn is connected to R10 in AS54. R8 learns a route from R10 (112.0.0.0/8), which it advertises further to R1. These external routers are not redistributed into EIGRP, hence are not available at R1 through other means than BGP.

R1 configuration:

R1#sh run | s eigrp|bgp
router eigrp 100
 network 155.1.0.0
 redistribute connected route-map ONLY_LOOPBACK
router bgp 100
 ! sync is enabled
 synchronization
 bgp log-neighbor-changes
 network 150.1.1.1 mask 255.255.255.255
 ! R8 neighbor
 neighbor 155.1.58.8 remote-as 100
 neighbor 155.1.58.8 route-reflector-client
 ! R4 neighbor
 neighbor 155.1.146.4 remote-as 100
 neighbor 155.1.146.4 route-reflector-client

R1 does not have an IGP route to 112.0.0.0/8 (EIGRP) and does not run any other routing protocol:

R1#sh ip eigrp topo 112.0.0.0/8
EIGRP-IPv4 Topology Entry for AS(100)/ID(150.1.1.1)
%Entry 112.0.0.0/8 not in topology table

BGP also marks both possible paths to 112.0.0.0/8 as not synchronized:

R1# sh ip bgp 112.0.0.1
BGP routing table entry for 112.0.0.0/8, version 2
Paths: (2 available, best #2, table default)
  Advertised to update-groups:
     1         
  Refresh Epoch 1
  54 50 60, (Received from a RR-client)
    155.1.58.8 (metric 3328) from 155.1.58.8 (150.1.8.8)
      Origin IGP, metric 0, localpref 100, valid, internal, not synchronized
      rx pathid: 0, tx pathid: 0
  Refresh Epoch 1
  54 50 60, (Received from a RR-client)
    155.1.67.7 (metric 3072) from 155.1.67.7 (150.1.7.7)
      Origin IGP, metric 0, localpref 100, valid, internal, not synchronized, best
      rx pathid: 0, tx pathid: 0x0

According to my knowledge, both of them are internal routes (received from an iBGP peer) and both are not synchronized. Hence they should not be considered as candidate for best path and R1 should not advertise that path any further.

However, as seen before, it has still selected path #2 as best and advertises the path further to other RR-clients, for example to R4:

R4#sh ip bgp 112.0.0.0
BGP routing table entry for 112.0.0.0/8, version 0
Paths: (1 available, no best path)
  Not advertised to any peer
  Refresh Epoch 2
  54 50 60
    155.1.67.7 (inaccessible) from 155.1.146.1 (150.1.1.1)
      Origin IGP, metric 0, localpref 100, valid, internal, not synchronized
      Originator: 150.1.7.7, Cluster list: 150.1.1.1
      rx pathid: 0, tx pathid: 0

It is advertised from R1 (150.1.1.1 / 155.1.146.1). At R4, the route is considered as not synchronized and accordingly there is no best path. But why is it advertised by R1 in the first place? Why does R1 select a best path when both available paths are not synchronized?

  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could provide and accept your own answer. – Ron Maupin Aug 15 '17 at 1:17
1

I think you misunderstand BGP synchronization. BGP synchronization means that a BGP router will not advertise a prefix to an eBGP peer until all routers in your AS know about the route via an IGP. In other words, eBGP will not advertise a route to an eBGP peer unless the route exists in its routing table via an IGP. Cisco has many documents to explain BGP. For instance, BGP: Frequently Asked Questions:

Q. What is synchronization, and how does it influence BGP routes installed in the IP routing table?

A. If your AS passes traffic from another AS to a third AS, BGP should not advertise a route before all routers in your AS learn about the route via IGP. BGP waits until IGP propagates the route within the AS and then advertises it to external peers. A BGP router with synchronization enabled does not install iBGP learned routes into its routing table if it is not able to validate those routes in its IGP. Issue the no synchronization command under router bgp in order to disable synchronization. This prevents BGP from validating iBGP routes in IGP. Refer to BGP Case Studies: Synchronization for a more detailed explanation.

There is a rule in iBGP that an iBGP peer cannot advertise any prefixes learned via iBGP. That has nothing to do with BGP synchronization. That means that your iBGP peers must have a full mesh (via an IGP, or with direct connections between all BGP peers), or you must use a mitigation (route reflectors or confederations).

  • clear about the iBGP to iBGP advertisement rule. However, in the document you cited: A BGP router with synchronization enabled does not install iBGP learned routes into its routing table if it is not able to validate those routes in its IGP. In my opinion, R1 violates this rule. Further, I think that sync is used to prohibit traffic black holing, if a router inside the AS does not speak BGP but would be in the path between to iBGP peers. Even with confeds or RR, an iBGP router should not advertise a path to another iBGP router if it does not have a corresponding IGP learned route? – waza-ari Aug 20 '16 at 22:36
  • I think you confusion has to do with which direction synchronization affects. Synchronization affects advertisements to an external router. It has nothing to do with routing inside your AS. If your edge router learns a route via eBGP, that route will most likely be the best route because the AD for eBGP is only 20. You have learned a route via eBGP, and it is being advertised within your AS. Synchronization has nothing to do with that. Synchronization would affect what routes your AS advertised to an external AS. – Ron Maupin Aug 20 '16 at 22:41
  • @waza-ari, An external route leaned via eBGP is not an iBGP learned route, it is an eBGP learned route, even if it is advertised inside your AS via iBGP.. – Ron Maupin Aug 20 '16 at 22:57
  • There is a difference regarding the "best route" in the FIB due to the AD and the BGP "best path" found by the BGP decision process. Interestingly, I found sources which state that synchronization means "do not consider a route from an iBGP peer as best when there is no matching route in the RIB from an IGP" (CCIE R&S v5.0 Vol 2 and INE Workbooks). A route that is not considered best in BGP path selection should not be advertised to a neighbor, eBGP nor iBGP. However R1 treats a non-sync'ed route as best. Further, Internet Routing Architectures states that sync is only used to eBGP peers. – waza-ari Aug 20 '16 at 23:19
  • "...states that sync is only used to eBGP peers." That is what I have been trying to tell you. It affects what is advertised to eBGP peers. The iBGP confusion you seems to have is that what an eBGP peer advertises to its eBGP peer is that if it is getting an eBGP route from an iBGP peer, and the route came from another AS, it will not advertise that route to its eBGP peer unless the route is in its routing table via an IGP. Synchronization has nothing at all to do with what is advertised inside your AS. – Ron Maupin Aug 20 '16 at 23:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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