BGP Route Reflectors


Scenario:

Company Veggie inc. is growing rapidly and the network needs to support the growing company. More routers are added every week and network engineers are complaining it takes too much time to setup BGP. Especially typing in all the neighbor commands is becoming an annoyance for them. Time for you to show up and teach them what a route-reflector is!

Goal:

  • All IP addresses have been preconfigured as specified in the topology picture.
  • All routers have the following loopback interface:
    Cherry: Loopback0: 1.1.1.1 /24
    Berry: Loopback0: 2.2.2.2 /24
    Dairy: Loopback0: 3.3.3.3 /24
  • Configure OSPF on all routers, ensure you have full reachability.
  • Disable the link between Cherry and Berry.
  • Configure BGP between Cherry and Dairy.
  • Configure BGP between Berry and Dairy.
  • Do not configure BGP between Berry and Cherry.
  • Create a new loopback interface on router Berry:
    Loopback1: 22.22.22.22 /24
  • Advertise this loopback into BGP by using a network command.
  • Ensure you see 22.22.22.0 network in the routing table of router Dairy.
  • Do you see this network in the routing table of router Cherry? Why not?
  • Change the configuration on router Dairy so that router Cherry will have the 22.22.22.0 network in it’s routing table (hint: *Route Reflector*).

IOS:

c3640-jk9s-mz.124-16.bin

Topology:

BGP Route Reflectors

Video Solution:

Configuration Files

You need to register to download the GNS3 topology file. (Registration is free!)

Once you are logged in you will find the configuration files right here.

Opt In Image
Do you want your CCNA or CCNP Certificate?

The How to Master series helps you to understand complex topics like spanning-tree, VLANs, trunks, OSPF, EIGRP, BGP and more.

Written by René Molenaar - CCIE #41726

You May Also Like

About the Author: Rene Molenaar

René - CCIE #41726 is the creator of GNS3Vault.com where he shares CCNA, CCNP and CCIE R&S labs. He also blogs about networking on http://networklessons.com

15 Comments

  1. If you have Dairy setup as the RR and Cherry and Berry setup as the clients, Cherry is going to know about the 22 address. You can prevent this from happening by setting up Dairy as a client on Berry, then let Cherry know about the 22 address by making Cherry a client on Dairy (not sure if this goes against best practices by having more than 1 RR, but I think this is more along the lines of what you were trying to accomplish). Or you could change the lab description to where Berry is the only RR initially and to fix it you make Dairy the RR for both Cherry and Berry.

    Below is my final config for all devices.
    (Note: I didn’t use the pre-built lab since I don’t have that IOS, so I built it from scratch with all serial ints. Also, I know the peer-group wasn’t completely necessary, but they’re fun to work with 🙂 )

    —-
    !dairy

    en
    conf t
    host Dairy
    int lo0
    ip add 3.3.3.3 255.255.255.0
    int s0/0
    desc TO CHERRY
    ip add 192.168.13.1 255.255.255.0
    no shut
    int s0/1
    desc TO BERRY
    ip add 192.168.23.1 255.255.255.0
    no shut
    exit
    router ospf 1
    net 192.168.13.0 0.0.0.255 area 0
    net 192.168.23.0 0.0.0.255 area 0
    net 3.3.3.0 0.0.0.255 area 0
    no auto
    exit
    router bgp 100
    no auto
    nei reflector-clients peer-group
    nei reflector clients remote-as 100
    nei reflector-clients route-reflector-client
    nei 192.168.13.2 peer-group reflector-clients
    nei 192.168.23.3 peer-group reflector-clients
    net 3.3.3.0 mask 255.255.255.0

    end

    !——–

    !cherry

    en
    conf t
    host Cherry
    int lo0
    ip add 1.1.1.1 255.255.255.0
    int s0/1
    desc TO DAIRY
    ip add 192.168.13.2 255.255.255.0
    no shut
    int s0/0
    desc TO BERRY
    ip add 192.168.12.2 255.255.255.0
    shut
    !^ after establishing connectivity
    exit
    router ospf 1
    net 192.168.13.0 0.0.0.255 area 0
    net 192.168.12.0 0.0.0.255 area 0
    net 1.1.1.0 0.0.0.255 area 0
    no auto
    exit
    router bgp 100
    no auto
    nei 192.168.13.1 remote-as 100
    net 1.1.1.1 mask 255.255.255.0
    end

    !——–

    !berry

    en
    conf t
    host Berry
    int lo0
    ip add 2.2.2.2 255.255.255.0
    int lo1
    ip add 22.22.22.22 255.255.255.0
    int s0/1
    desc TO DAIRY
    ip add 192.168.23.3 255.255.255.0
    no shut
    int s0/0
    desc TO CHERRY
    ip add 192.168.12.3 255.255.255.0
    shut
    !^ after establishing connectivity
    exit
    router ospf 1
    net 2.2.2.0 0.0.0.255 area 0
    net 192.168.23.0 0.0.0.255 area 0
    net 192.168.12.0 0.0.0.255 area 0
    exit
    router bgp 100
    no auto
    nei 192.168.23.1 remote-as 100
    net 22.22.22.0 mask 255.255.255.0
    net 2.2.2.0 mask 255.255.255.0
    end

  2. Hi Jon,

    Seems you have some fun with this ;D

    The idea of the lab is to learn IBGP Split Horizon. You need IBGP full mesh in order to learn all prefixes, so in this scenario when router Berry advertises something in BGP, router Dairy will learn it because they are IBGP neighbors.

    Router Cherry will not learn this prefix since there’s no IBGP neighbor adjancency between router Cherry and Berry.

    To fix this, router Diary will have to “reflect” the prefix to router Cherry, that’s all there is to it 🙂

    Making berry or cherry a RR doesn’t help since they both have only a single BGP neighbor adjacency.

    Rene

  3. Right, thats what I was getting at 🙂
    Making Dairy a RR before checking to see if the 22 route was in Cherry’s table kinda defeats the purpose of asking, because after you make it a RR at step 5, it’s going to be there. Other than that, cool lab 😀

  4. Hi Reene,

    Getting below error when I try to load any of your topologies.
    I have downloaded the IOS you have used in the labs but still some settings in GNS I need to fix…….but don’t know exactly what they are.

    Any idea where things might be wrong?

    error
    ——-
    Local IOS image/Data/IOS Images/c3640-jk9s-mz.124-16.bin cannot be found for hypervisor localhost:7200
    Please choose an alternative image

  5. Hi,

    Can i know where is the topology.net file…. i cannot see it.

  6. HI, just wanted to add that this lab text is corrupted. The words “network command” when advertising 22.22.22.22/24 aren’t there.

  7. @ Ryan: i think there may be some confusion here – the command you are looking for under the BGP router process is “network” as opposed to “network command”.
    e.g.:
    conf t
    router bgp 100
    network 22.22.22.0 mask 255.255.255.0

    making sure to advertise the network as a /24 (i.e.: 22.22.22.0 mask 255.255.255.0) – last octets are “0”.

    good lab

    as i was running thru this lab, step-by-step linearly, i was lazy with my OSPF configs and configured the network statement to 0.0.0.0 255.255.255.255.

    so, i configured an OSPF distribute list on Dairy and Cherry in order to allow the 22.22.22.0/24 BGP route into the route table instead of the OSPF route 🙂

    lastly, had trouble with this lab on my GNS3 8.3 64-bit standalone with IOS c3640-ik9o3s-mz.124-16b.bin… had to run it on 7200 to get the RR to work.

Comments are closed.