This document provides a sample configuration using IPv6 that helps you understand the Route Reflector (RR) feature in Border Gateway Protocol (BGP). By default, the routes received from an iBGP peer are not sent to another iBGP peer unless a full mesh configuration is formed between all the BGP routers within an AS. This results in scalability issues. Using BGP route reflectors leads to much higher levels of scalability.
Configuring route reflector allows a router to advertise or reflect the iBGP learned routes to other iBGP speakers. The router is said to be a Route Reflector when configured with the neighbor route-reflector-client command and the neighbors at which the command points are the clients of that RR.
Make sure that you meet these requirements before you attempt this configuration:
Have an understanding of BGP routing protocol and its operation
Have an understanding of the IPv6 Addressing scheme
This document is not restricted to specific software and hardware versions.
The configurations in this document are based on the Cisco 3700 Series Router with Cisco IOS® Software Release 12.4 (15)T1.
Refer to Cisco Technical Tips Conventions for more information on document conventions.
In this example, Router A is configured as RR and the routers RRClient1 and RRClient2 are the clients of Router A. All the routers are configured to be in AS 100, although the routers do not have full mesh configuration. Instead, it uses the BGP RR feature in order to communicate with each other.
Note: Use the Command Lookup Tool (registered customers only) in order to find more information on the commands used in this document.
This document uses this network setup:
This document uses these configurations:
Router A |
---|
hostname Router-A ! ip cef ! ipv6 unicast-routing ! interface Loopback0 no ip address ipv6 address 2011:11:11:11::11/128 ipv6 ospf 10 area 0 ! interface Serial0/0 no ip address ipv6 address 2011:12:12:12::1/64 ipv6 ospf 10 area 0 clock rate 2000000 ! interface Serial0/1 no ip address ipv6 address 2011:13:13:13::1/64 ipv6 ospf 10 area 0 clock rate 2000000 ! router bgp 100 bgp router-id 1.1.1.1 no bgp default ipv4-unicast bgp log-neighbor-changes neighbor 2011:22:22:22::22 remote-as 100 neighbor 2011:22:22:22::22 update-source Loopback0 neighbor 2011:33:33:33::33 remote-as 100 neighbor 2011:33:33:33::33 update-source Loopback0 ! address-family ipv6 neighbor 2011:22:22:22::22 activate neighbor 2011:22:22:22::22 route-reflector-client !--- Configures the router RRClient1 as route reflector client! neighbor 2011:33:33:33::33 activate neighbor 2011:33:33:33::33 route-reflector-client !--- Configures the router RRClient2 as route reflector client! exit-address-family ! ip forward-protocol nd ! ipv6 router ospf 10 router-id 1.1.1.1 !--- Router ID of the route reflector router A! log-adjacency-changes ! end |
RRClient1 |
---|
hostname RR-Client1 ! ip cef ! ipv6 unicast-routing ! interface Loopback0 no ip address ipv6 address 2011:22:22:22::22/128 ipv6 ospf 10 area 0 ! interface Loopback10 no ip address ipv6 address 1010:10:10:10::10/128 ! interface Serial0/0 no ip address ipv6 address 2011:12:12:12::2/64 ipv6 ospf 10 area 0 clock rate 2000000 ! router bgp 100 bgp router-id 2.2.2.2 !--- Router ID of the RRClient1 no bgp default ipv4-unicast bgp log-neighbor-changes neighbor 2011:11:11:11::11 remote-as 100 neighbor 2011:11:11:11::11 update-source Loopback0 ! address-family ipv6 neighbor 2011:11:11:11::11 activate network 1010:10:10:10::10/128 exit-address-family ! ! ip forward-protocol nd ! ipv6 router ospf 10 router-id 2.2.2.2 log-adjacency-changes ! ! end |
RRClient2 |
---|
hostname RR-Client2 ! ip cef ! no ip domain lookup ipv6 unicast-routing ! ! interface Loopback0 no ip address ipv6 address 2011:33:33:33::33/128 ipv6 ospf 10 area 0 ! interface Loopback20 no ip address ipv6 address 2020:20:20:20::20/128 ! interface Serial0/0 no ip address ipv6 address 2011:13:13:13::2/64 ipv6 ospf 10 area 0 clock rate 2000000 ! router bgp 100 bgp router-id 3.3.3.3 !--- Router ID of the RRClient2 no bgp default ipv4-unicast bgp log-neighbor-changes neighbor 2011:11:11:11::11 remote-as 100 neighbor 2011:11:11:11::11 update-source Loopback0 ! address-family ipv6 neighbor 2011:11:11:11::11 activate network 2020:20:20:20::20/128 exit-address-family ! ip forward-protocol nd ! ipv6 router ospf 10 router-id 3.3.3.3 log-adjacency-changes ! end |
Use this section to confirm that your configuration works properly.
The Output Interpreter Tool (registered customers only) (OIT) supports certain show commands. Use the OIT to view an analysis of show command output.
These show commands are used to verify the configuration:
In RR Clients:
show ipv6 route bgp |
---|
In RRClient1 RRClient1#sh ipv6 route bgp IPv6 Routing Table - 9 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external B 2020:20:20:20::20/128 [200/0] via 2011:33:33:33::33 !--- The iBGP route from RRClient2 is reflected RRClient1#ping 2011:33:33:33::33 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2011:33:33:33::33, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/24/32 ms !--- Ping to the RRClient2 from RRClient1 is successfulIn RRClient2 RRCLlient2#sh ipv6 route bgp IPv6 Routing Table - 9 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external B 1010:10:10:10::10/128 [200/0] via 2011:22:22:22::22 !--- The iBGP route from RRClient1 is reflected RRCLlient2#ping 1010:10:10:10::10 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1010:10:10:10::10, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 40/50/76 ms !--- Ping to the RRClient1 from RRClient2 is successful |
In Router A:
show bgp ipv6 unicast IPv6 prefix |
---|
RouterA#sh bgp ipv6 unicast 1010:10:10:10::10/128 BGP routing table entry for 1010:10:10:10::10/128, version 3 Paths: (1 available, best #1, table Global-IPv6-Table) Advertised to update-groups: 1 Local, (Received from a RR-client) !--- Indicates that the route was received from a route-reflector client router RRClient1 2011:22:22:22::22 (metric 64) from 2011:22:22:22::22 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, internal, best RouterA#show bgp ipv6 unicast 2020:20:20:20::20/128 BGP routing table entry for 2020:20:20:20::20/128, version 2 Paths: (1 available, best #1, table Global-IPv6-Table) Advertised to update-groups: 1 Local, (Received from a RR-client) !--- Indicates that the route was received from a route-reflector client router RRClient2 2011:33:33:33::33 (metric 64) from 2011:33:33:33::33 (3.3.3.3) Origin IGP, metric 0, localpref 100, valid, internal, best |
In RR clients:
Whenever an iBGP route is reflected (that is, propagated to another iBGP peer), the router implementing the route reflector (in our case, Router A) appends 2 non-transitive attributes:
Originator ID:
This is a non-transitive optional BGP attribute. The reflected iBGP route will have the router ID of the iBGP peer from which the route has been received as its originator ID. In our example, the route 2020:20:20:20::20/128 which is from the RRClient 2 is reflected by Router A (RR), to RRClient1. As a result, this route will have the Router ID of the RRClient2 (Router ID: 3.3.3.3) as its Originator ID.
Cluster-ID:
This is a non-transitive optional BGP attribute. The reflected iBGP route will have the router ID of the RR as its Cluster-ID, if the cluster-id value is not configured. In our example, the route 2020:20:20:20::20/128 does not have cluster-id configured and therefore the Router ID (Router ID : 1.1.1.1) of the Router A (RR) will be the Cluster-ID.
show bgp ipv6 unicast ipv6-prefix |
---|
In RRClient1 show bgp ipv6 unicast 2020:20:20:20::20/128 BGP routing table entry for 2020:20:20:20::20/128, version 3 Paths: (1 available, best #1, table Global-IPv6-Table) Not advertised to any peer Local 2011:33:33:33::33 (metric 128) from 2011:11:11:11::11 (1.1.1.1) Origin IGP, metric 0, localpref 100, valid, internal, best Originator: 3.3.3.3, Cluster list: 1.1.1.1 !--- Originator ID 3.3.3.3 is the router id of the RRClient2 from which the route is received! !--- Similarly, Cluster ID 1.1.1.1 is the router ID of the router reflector Router A!In RRClient2 show bgp ipv6 unicast 1010:10:10:10::10/128 BGP routing table entry for 1010:10:10:10::10/128, version 3 Paths: (1 available, best #1, table Global-IPv6-Table) Not advertised to any peer Local 2011:22:22:22::22 (metric 128) from 2011:11:11:11::11 (1.1.1.1) Origin IGP, metric 0, localpref 100, valid, internal, best Originator: 2.2.2.2, Cluster list: 1.1.1.1 !--- Originator ID 2.2.2.2 is the router ID of the RRClient1 from which the route is received! !--- Similarly, Cluster ID 1.1.1.1 is the router ID of the router reflector Router A! |
Revision | Publish Date | Comments |
---|---|---|
1.0 |
25-Jan-2012 |
Initial Release |