probably I misunderstand how to use cluster-id...
I have a mesh core network configured with OSPF and loopback ip's.
I added two BGP route reflectors RR1 and RR2, just to distribute dynamic routes (e.g. PPPoE clients for every node).
I configured, for the network nodes, two BGP peers with these two RR, and set route-reflect=yes.
Being that I want to have two Route Reflectors for redundancy, I set the same "cluster-id" to both Routers: 1.1.1.1.
BGP reflection seems working OK, but if I look into the routing table of any client router, I see the routes installed as twice: one is active and another is not.
I thought that being both Route Reflectors within a cluster (same cluster-id) they should have ignored routes coming from each other RR. Is'n it so?
This is RR1 config:
ROUTE REFLECTOR RR1
Code: Select all
[admin@R1] > /routing bgp instance pr detail
Flags: * - default, X - disabled
1 ;;; IBGP ROUTE REFLECTOR 1
name="RR1" as=64600 router-id=1.1.1.1 redistribute-connected=no redistribute-static=no
redistribute-rip=no redistribute-ospf=no redistribute-other-bgp=no out-filter="" cluster-id=1.1.1.1
client-to-client-reflection=yes ignore-as-path-len=no routing-table=""
for the second RR:
ROUTE REFLECTOR RR2
Code: Select all
[admin@R7] > /routing bgp instance pr detail
Flags: * - default, X - disabled
1 ;;; IBGP ROUTE REFLECTOR 2
name="RR2" as=64600 router-id=1.1.1.7 redistribute-connected=no redistribute-static=no
redistribute-rip=no redistribute-ospf=no redistribute-other-bgp=no out-filter="" cluster-id=1.1.1.1
client-to-client-reflection=yes ignore-as-path-len=no routing-table=""
And this is the configuration for every reflector client:
REFLECTOR CLIENT
Code: Select all
[admin@R2] > /routing bgp instance pr detail
Flags: * - default, X - disabled
1 name="IBGP" as=64602 router-id=1.1.1.2 redistribute-connected=yes redistribute-static=no
redistribute-rip=no redistribute-ospf=no redistribute-other-bgp=no out-filter=""
client-to-client-reflection=no ignore-as-path-len=no routing-table=""
[admin@R2] > /routing bgp peer pr detail
Flags: X - disabled, E - established
0 E name="IBGP RR1" instance=IBGP remote-address=1.1.1.1 remote-as=64600 tcp-md5-key=""
nexthop-choice=default multihop=yes route-reflect=yes hold-time=3m ttl=default in-filter=""
out-filter="" address-families=ip update-source=1.1.1.2 default-originate=never remove-private-as=no
as-override=no passive=no use-bfd=no
1 E name="IBGP RR2" instance=IBGP remote-address=1.1.1.7 remote-as=64600 tcp-md5-key=""
nexthop-choice=default multihop=yes route-reflect=yes hold-time=3m ttl=default in-filter=""
out-filter="" address-families=ip update-source=1.1.1.2 default-originate=never remove-private-as=no
as-override=no passive=no use-bfd=no
[admin@R2] > /ip route pr detail where bgp
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
0 ADb dst-address=2.2.2.1/32 gateway=1.1.1.4 gateway-status=1.1.1.4 recursive via 10.99.0.5 eth2
distance=20 scope=40 target-scope=30 bgp-as-path="64600,64604" bgp-origin=incomplete
received-from=IBGP RR1
1 Db dst-address=2.2.2.1/32 gateway=1.1.1.4 gateway-status=1.1.1.4 recursive via 10.99.0.5 eth2
distance=20 scope=40 target-scope=30 bgp-as-path="64600,64604" bgp-origin=incomplete
received-from=IBGP RR2
2 ADb dst-address=2.2.2.2/32 gateway=1.1.1.4 gateway-status=1.1.1.4 recursive via 10.99.0.5 eth2
distance=20 scope=40 target-scope=30 bgp-as-path="64600,64604" bgp-origin=incomplete
received-from=IBGP RR1
3 Db dst-address=2.2.2.2/32 gateway=1.1.1.4 gateway-status=1.1.1.4 recursive via 10.99.0.5 eth2
distance=20 scope=40 target-scope=30 bgp-as-path="64600,64604" bgp-origin=incomplete
received-from=IBGP RR2
As you can see, for every /32 route, I actually get two copies, one from RR1 and another (inactive) from RR2.
What am I missing?
Massimo