I am a newbie regarding BGP and I would like to set up a simple test network consisting of 6 MikroTik routers (P - “provider edge”, C - “core”):
P1---C1---P3
| \ / \ / |
| X X |
| / \ / \ |
P2---C2---P4
Each PX router has a LAN network connected to it. I would like to use IBGP between the routers, but I stumbled upon a problem:
if I make a full-mesh peering, the LAN behind the P1 is unreachable to non-neighbor routers (P3 and P4, for example),
the same holds true if I configure CX routers as a Route Reflect servers and PX routers as RR clients - the routes get distributed, but the next hops of the LANs of non-neighbor routes are “remote”, which also makes these LANs unreachable.
Full mesh means that all iBGP routers are connected to each other, in your diagram you don’t have full mesh (for example P1 and P3 are not connected to each other)
Route reflectors must be fully meshed between every other route reflector.
For example if you configure C1 and C2 as route reflectors, make iBGP peering between C1 and C2 then all P routes should peer with both C routers and it will work
P1---C1---P3
\ / | \ /
X | X
/ \ | / \
P2---C2---P4
If that statement is true, please explain why at http://wiki.mikrotik.com/wiki/BGP_based_VPLS R5 could act as the route reflector if R1 and R2 are not connected directly to it? Or am I missing something???
The routers do not have to be physically connected, or on the same Ethernet segment. R1 and R4 just have to be reachable by R5 via the interior gateway protocol. Normally this is done by implementing a loopback address on R1 and R4, then propagating that address into your IGP (commonly OSPF).