BGP Problem with route reflector

Hi,
I have a problem with bgp route reflector on mikrotik’s router.

Ich habe six Router, R1, R2 and R3-6

R1: has one eBGP-Neigbour and a connection to R2 (iBGP)
R2: has only iBGP-Neigbours and is the route reflector of the network
R3-6: has only iBGP

R1 has all eBGP-Routes and propagate this to R2, all ok here.

But R3-6 become only internal routes from R2 but NO external that learned from R1. Configuration check many time.

Thats wrong, a route reflector must reflect routes learned from r1 to all other bgp router.

Internal use OSPF, OSPF all fine.

What is wrong?

Best regards
Andreas

Can you post your config?

Ensure you have the following on the BGP instance

/routing bgp instance
set default client-to-client-reflection=yes

Ensure you have the following on all iBGP peerings:

/routing bgp peer
set IPv4-peer-1 route-reflect=yes

I replace Router R2 vom Mikrotik (RB2011 with 6.32.1) to Cisco 2610 and all works fine.

R2 reflect all routes to the route reflector clients.

Has anybody a running configuration with a mikrotik router as bgp route reflector?

regards
Andreas

Hi Andreas.

We have many setups similar to yours with Mikrotik as RR and working successfully.

Can you post your config off R2 please, it sounds like you might be missing a setting or two.

Hi,
here the config from BGP-Route-Reflector-Router (only BGP Part):

/routing bgp instance
set default as=64634 client-to-client-reflection=yes !cluster-id !confederation disabled=yes
ignore-as-path-len=no name=default out-filter=“” redistribute-connected=no redistribute-ospf=no
redistribute-other-bgp=no redistribute-rip=no redistribute-static=no router-id=44.224.28.1 routing-table=
“”

/routing bgp network
add disabled=no network=44.225.56.0/28 synchronize=no
add disabled=no network=44.224.28.248/30 synchronize=no
add disabled=no network=44.224.29.128/29 synchronize=no
/routing bgp peer
add address-families=ip !allow-as-in as-override=no default-originate=never disabled=yes hold-time=3m
in-filter=“” instance=default !keepalive-time !max-prefix-limit !max-prefix-restart-time multihop=yes
name=peer-db0koe nexthop-choice=force-self out-filter=“” passive=no remote-address=44.224.28.7 remote-as=
64634 remove-private-as=no route-reflect=yes tcp-md5-key=“” ttl=default update-source=loopback0 use-bfd=no
add address-families=ip !allow-as-in as-override=no default-originate=never disabled=yes hold-time=3m
in-filter=“” instance=default !keepalive-time !max-prefix-limit !max-prefix-restart-time multihop=no name=
peer-db0dsp nexthop-choice=default out-filter=“” passive=no remote-address=44.224.24.57 remote-as=64632
remove-private-as=no route-reflect=no tcp-md5-key=“” ttl=default use-bfd=no
add address-families=ip !allow-as-in as-override=no default-originate=never disabled=yes hold-time=3m
in-filter=“” instance=default !keepalive-time !max-prefix-limit !max-prefix-restart-time multihop=yes
name=peer-db0ii nexthop-choice=force-self out-filter=“” passive=no remote-address=44.224.28.3 remote-as=
64634 remove-private-as=no route-reflect=yes tcp-md5-key=“” ttl=default update-source=loopback0 use-bfd=no
add address-families=ip !allow-as-in as-override=no default-originate=never disabled=yes hold-time=3m
in-filter=“” instance=default !keepalive-time !max-prefix-limit !max-prefix-restart-time multihop=yes
name=peer-db0kwe nexthop-choice=force-self out-filter=“” passive=no remote-address=44.224.28.2 remote-as=
64634 remove-private-as=no route-reflect=no tcp-md5-key=“” ttl=default update-source=loopback0 use-bfd=no
add address-families=ip !allow-as-in as-override=no default-originate=never disabled=yes hold-time=3m
in-filter=“” instance=default !keepalive-time !max-prefix-limit !max-prefix-restart-time multihop=yes
name=peer-db0eif nexthop-choice=default out-filter=“” passive=no remote-address=44.224.28.5 remote-as=
64634 remove-private-as=no route-reflect=yes tcp-md5-key=“” ttl=default update-source=loopback0 use-bfd=no
add address-families=ip !allow-as-in as-override=no default-originate=never disabled=yes hold-time=3m
in-filter=“” instance=default !keepalive-time !max-prefix-limit !max-prefix-restart-time multihop=yes
name=peer-db0kx nexthop-choice=force-self out-filter=“” passive=no remote-address=44.224.28.6 remote-as=
64634 remove-private-as=no route-reflect=yes tcp-md5-key=“” ttl=default update-source=loopback0 use-bfd=no

Peers now all disable, because I use a cicso as route reflector.

Peer db0kwe and db0dsp was disabled, peer not working.

Peers come all up after activate, but not become all routes from route reflector. Peer db0koe has a connection to other as and become from this >1000 bgp routes. All routes come from db0koe to db0sys, thats fine. But at db0kx for example only 6 bgp routes … why db0sys not reflect all routes to db0kx?

With a cisco works fine :frowning:

Thank you.

Andreas

One thing I did notice with your config that we don’t typically see with route reflection is that you are forcing next hop self on every peer. Typically this is done when there isn’t an IGP or other mechanism to advertise reachability of the next hop throughout the AS.

Are you able to turn next-hop-self off between the two peers you are having issues with and retest? You might need to use OSPF or static routes to make the next hop advertised rechable between the two, but that is worth testing.

Here is a great overview of route reflection with some great do’s and don’ts

http://wiki.nil.com/BGP_route_reflectors

We use internal ospf.

I can change next hop self, but this make a different about route reflection?

My problem only that the bgp route reflector not reflect the routes that db0sys (rr) learned from db0koe :frowning:

With cisco (next hop self enabled too) works fine. Same configuration and same ip addresses.

Thank you.

Regards
Andreas

Also you should set a cluster-id on both route reflectors.

Good point on the cluster-id…here is a great resource that explains why clustering is necessary if you have more than one route reflector. In some cases we have built multiple clusters of router reflectors by region if the network is large enough.

http://orhanergun.net/2015/02/bgp-route-reflector-clusters/

Yes, we want to use two reflector and configure a cluster-id allready, but that is not a solution for the problem.

Why a Route Reflector with Mikrotik not reflect the bgp routes to the clients?

When not found a solution soon we must make full mesh again :frowning:

Regards
Andreas

Three questions:

  1. If you are advertising the next hop in OSPF, then turn off next hop self on all peerings to see if that resolves it.

  2. Please post the peering config for db0sys , it doesn’t seem to be listed in the config.

  3. Can you post the cisco config as a comparison?