I'm very confused by the way you have this setup. It looks to me that you
are setting R2 up to be a route reflector for R3 and you are setting up R3
to be a route reflector for R2. My question is why? If you are setting up
two route reflectors in the same AS and they are going to speak to each
other you must set each route reflector up in the same cluster. This allows
for each router reflector to ignore reflected routes from the other route
reflector, thus avoiding potential routing loops. I'll show you a couple of
examples below and explain them.

In the first scenarion we will have three devices: R1, R2, and R3. R2 will
be the route reflector for route reflector clients R1 and R3. We will use
the loopback addresses of each device for connectivity. The loopback
addresses must be known to each device by the IGP you are running.

AS# - 100
R1 Lo0 - 1.1.1.1
R2 Lo0 - 2.2.2.2
R3 Lo0 - 3.3.3.3

Note: The route reflector client command is placed on the route reflecting
device not the route reflector client device.

We will first setup the route reflector:

R2#conf t
R2(config)#router bgp 100
R2(config-router)#neighbor 1.1.1.1 remote-as 100
R2(config-router)#neighbor 1.1.1.1 update-source lo0
R2(config-router)#neighbor 1.1.1.1 route-reflector-client
R2(config-router)#neighbor 3.3.3.3 remote-as 100
R2(config-router)#neighbor 3.3.3.3 update-source lo0
R2(config-router)#neighbor 3.3.3.3 route-reflector-client
R2(config-router)#exit
R2(config)#exit
R2#

We will now setup the route reflector clients:

R1#conf t
R1(config)#router bgp 100
R1(config-router)#neighbor 2.2.2.2 remote-as 100
R1(config-router)#neighbor 2.2.2.2 update-source lo0
R1(config-router)#exit
R1(config)#exit
R1#

R3#conf t
R3(config)#router bgp 100
R3(config-router)#neighbor 2.2.2.2 remote-as 100
R3(config-router)#neighbor 2.2.2.2 update-source lo0
R3(config-router)#exit
R3(config)#exit
R3#

Explination: Route reflector clients are only configured in the way a normal
IBGP connection would be configured. The reason we used the update-source
command on the connection is to tell the local device what source address to
use when sending the BGP packets. If we had not used the update-source
command, the router would have used the address of the interface the packet
was going out. This would have caused problems because the remote device was
expecting packets from the loopback address, since we used the loopback
address in the neighbor statement on the remote device. The route reflecting
device is the only device configured with the route-reflector client
command. The reason is that the command tells the route reflecting device
which devices to reflect routes too.

In the next scenario we will have four devices: R1, R2, R3, and R4. We will
use two route reflectors in the same AS so we don't have a single point of
failure. We will configure R2 and R3 as the route reflectors and R1 and R4
as the clients to both route reflectors. Once again we will use loopback
addresses on each device. Make sure the IGP is advertising these loopback
addresses to the other devices.

AS# - 100
Cluster ID - 1
R1 Lo0 - 1.1.1.1
R2 Lo0 - 2.2.2.2
R3 Lo0 - 3.3.3.3
R4 Lo0 - 4.4.4.4

We will first setup the route reflector:

R2#conf t
R2(config)#router bgp 100
R2(config-router)#bgp cluster-id 1
R2(config-router)#neighbor 1.1.1.1 remote-as 100
R2(config-router)#neighbor 1.1.1.1 update-source lo0
R2(config-router)#neighbor 1.1.1.1 route-reflector-client
R2(config-router)#neighbor 4.4.4.4 remote-as 100
R2(config-router)#neighbor 4.4.4.4 update-source lo0
R2(config-router)#neighbor 4.4.4.4 route-reflector-client
R2(config-router)#neighbor 3.3.3.3 remote-as 100
R2(config-router)#neighbor 3.3.3.3 update-source lo0
R2(config-router)#exit
R2(config)#exit
R2#

R3(config)#router bgp 100
R3(config-router)#bgp cluster-id 1
R3(config-router)#neighbor 1.1.1.1 remote-as 100
R3(config-router)#neighbor 1.1.1.1 update-source lo0
R3(config-router)#neighbor 1.1.1.1 route-reflector-client
R3(config-router)#neighbor 4.4.4.4 remote-as 100
R3(config-router)#neighbor 4.4.4.4 update-source lo0
R3(config-router)#neighbor 4.4.4.4 route-reflector-client
R3(config-router)#neighbor 2.2.2.2 remote-as 100
R3(config-router)#neighbor 2.2.2.2 update-source lo0
R3(config-router)#exit
R3(config)#exit
R3#


We will now setup the route reflector clients:

R1#conf t
R1(config)#router bgp 100
R1(config-router)#neighbor 2.2.2.2 remote-as 100
R1(config-router)#neighbor 2.2.2.2 update-source lo0
R1(config-router)#neighbor 3.3.3.3 remote-as 100
R1(config-router)#neighbor 3.3.3.3 update-source lo0
R1(config-router)#exit
R1(config)#exit
R1#

R4#conf t
R4(config)#router bgp 100
R4(config-router)#neighbor 2.2.2.2 remote-as 100
R4(config-router)#neighbor 2.2.2.2 update-source lo0
R4(config-router)#neighbor 3.3.3.3 remote-as 100
R4(config-router)#neighbor 3.3.3.3 update-source lo0
R4(config-router)#exit
R4(config)#exit
R4#


Explination: The route reflector client devices are configure with an IBGP
connection to each of the route reflecting devices. The route reflecting
devices are configured with IBGP connections to all devices, but only have
the route-reflector-client command on connections to the clients. The reason
for the bgp cluster id is to inform the route reflecting devices if they
receive a reflected route from another route reflector in the same cluster
to ignore it. This helps in preventing routing loops.

I hope this explination helps.

Carl Timm, CCIE #7149



Message Posted at:
http://www.groupstudy.com/form/read.php?f=7&i=54240&t=54194
--------------------------------------------------
FAQ, list archives, and subscription info: http://www.groupstudy.com/list/cisco.html
Report misconduct and Nondisclosure violations to [EMAIL PROTECTED]

Reply via email to