Repeated configuration is a risk
A route reflector with many clients repeats the same remote-as, update-source and route-reflector-client lines for each one. When one client gets a line the others lack, the problem is hard to spot. Grouping settings fixes both the typing and the consistency.
On small screens, swipe sideways or focus the diagram and use the arrow keys.
On small screens, swipe sideways or focus the diagram and use the arrow keys.
Peer groups
On small screens, swipe sideways or focus the diagram and use the arrow keys.
router bgp 64500
neighbor RR-CLIENTS peer-group
neighbor RR-CLIENTS remote-as 64500
neighbor RR-CLIENTS update-source Loopback0
neighbor 10.255.0.2 peer-group RR-CLIENTS
neighbor 10.255.0.3 peer-group RR-CLIENTS
address-family ipv4 unicast
neighbor RR-CLIENTS route-reflector-client
neighbor 10.255.0.2 activate
neighbor 10.255.0.3 activateThe group holds shared settings. Members get them by name. Each member still needs to be activated in the address family.
RR#show ip bgp peer-group RR-CLIENTS BGP peer-group is RR-CLIENTS, remote AS 64500 BGP version 4 Neighbor sessions: 2 Active, is not multisession capable Members: 10.255.0.2 10.255.0.3
Templates: session and policy separated
A peer-session template holds session attributes such as remote AS, update source and timers. A peer-policy template holds address-family policy such as route maps and prefix lists. A neighbour can inherit from one of each, and templates can inherit from other templates.
On small screens, swipe sideways or focus the diagram and use the arrow keys.
router bgp 64500
template peer-session IBGP-SESSION
remote-as 64500
update-source Loopback0
exit-peer-session
template peer-policy CLIENT-POLICY
route-reflector-client
next-hop-self
exit-peer-policy
neighbor 10.255.0.2 inherit peer-session IBGP-SESSION
address-family ipv4 unicast
neighbor 10.255.0.2 inherit peer-policy CLIENT-POLICY
neighbor 10.255.0.2 activateThe same effect as the peer group, with session and policy parts reusable on their own.
Technical reference: Cisco IOS XE BGP configuration guide. Output above is illustrative.
A worked example: three eBGP neighbours, same settings
Three provider routers need the same settings: peer from the loopback, allow a TTL of 2, and send a MED of 100 on routes advertised to them. Written neighbour by neighbour that is three update-source lines, three ebgp-multihop lines and three route-map lines, nine in total, each a chance to miss one. With a group the shared lines are written once.
route-map SET-MED permit 10
set metric 100
!
router bgp 64500
neighbor PROVIDERS peer-group
neighbor PROVIDERS update-source Loopback0
neighbor PROVIDERS ebgp-multihop 2
neighbor 10.255.1.1 remote-as 64501
neighbor 10.255.1.1 peer-group PROVIDERS
neighbor 10.255.1.2 remote-as 64502
neighbor 10.255.1.2 peer-group PROVIDERS
neighbor 10.255.1.3 remote-as 64503
neighbor 10.255.1.3 peer-group PROVIDERS
address-family ipv4 unicast
neighbor PROVIDERS route-map SET-MED out
neighbor 10.255.1.1 activate
neighbor 10.255.1.2 activate
neighbor 10.255.1.3 activateR1. The group carries update-source, multihop and the outbound route map. Each neighbour keeps its own remote-as because the three providers are in different ASes. Documentation-style addresses.
Adding a fourth provider is now three lines: its remote-as, its membership and its activation. Changing the MED for all of them is one line on the group.
Update groups: the efficiency lives elsewhere now
Older documentation says peer groups save CPU, because the router builds an UPDATE once and copies it to every member instead of building it for each neighbour. Current IOS XE does this work automatically: it puts neighbours with identical outbound policy into update groups, whether or not you used a peer group. The configuration saving is the reason to use a group today.
On small screens, swipe sideways or focus the diagram and use the arrow keys.
show ip bgp update-group
show ip bgp replicationPrivileged EXEC mode. The first lists each update group and its members. The second shows how many messages were replicated to members instead of built separately.
Dynamic neighbours
A group can also accept sessions from any address in a range, so you do not configure each one. The router listens for connections from the range and creates the neighbour when one arrives. It is used for large numbers of clients that come and go, such as route-reflector clients or branch sites.
router bgp 64500
neighbor RR-CLIENTS peer-group
neighbor RR-CLIENTS remote-as 64500
neighbor RR-CLIENTS update-source Loopback0
bgp listen range 10.255.0.0/24 peer-group RR-CLIENTS
bgp listen limit 50Reflector. Any router in 10.255.0.0/24 that opens a session and presents AS 64500 becomes a member. The limit caps how many dynamic neighbours exist.
Check your understanding
A neighbour joined a peer group but does not have the group's route-reflector-client setting. What should you check first?
Which holds route maps and prefix lists in the template approach?
One member of a group needs a different update-source. What is the clean approach?