BGP Aggregation

Introduction

There is a number of methods aggregation can be performed, with the most prevalent being the aggregate-address. Other methods includes using auto-summary and advertised a static route to a summary address.

Auto-Summary

  • See BGP-Auto-Summary for details.
  • This aggregation is limited to summarizing routes to their classfull boundary.

Static Route with Network Summary

  • This method creates a summary route by advertising a static route that matches the summary address.
  • See example configuration.

Aggregation Address

aggregate-address (address) (mask) [summary-only] [as-set] [suppress-map (map1)] [advertise-map (map2)] [attribute-map (map3)]

  • Aggregation is the process of summarizing routes.
  • By default attribute details of component routes are lost.
  • By default component and aggregate routes are advertised (controlled with summary-only).
  • One component route in the local BGP RIB table is required, not only the routing table but BGP table.
  • For each aggregated route a discard route to interface null0 is added to prevent loops. The installation of this route could be disabled if you set the distance of local routes to 255. i.e distance bgp 20 200 255 .
  • Aggregate route's default attributes:
Attribute Value
NEXT_HOP 0.0.0.0
AS_PATH i (blank path with origin IGP)
MED 0
LOCAL_PREF 100
WEIGHT 32768
AGGREGATOR Local AS and Local IP
ATOMIC_AGGREGATE N/A
  • Arguments and option of aggregate-address:
Argument Description
summary-only Only allows the aggregate route without any component routes.
as-set Includes aggregated ASNs in a set and most restrictive attributes
suppress-map Selects routes for suppresses, component routes.
attribute-map Controls attributes of the aggregated-address.
advertise-map Controls which component routes can be used for the aggregate, used to control AS_SET attribute, along with other

Sample aggregate route received by a neighbor.

Summary-only

  • With this option enabled only the aggregate route is advertised and component routes are suppressed.

Suppress-map

  • Suppress-map allows for more detailed selection of routes to suppress than the summary-only command.
  • Routes that match the specified route-map are SUPPRESSED and routes that are denied by the route map are ADVERTISED as the suppress-map is using the route-map to select routes to suppress.
  • Including the summary-only command has no effect on the suppressed routes and their selection.

Shows which routes are aggregated with a suppress-map.

AS-Set

  • With this option enabled an AS_PATH segment AS_SET is created for the ASNs of component routes being aggregated.
  • This is a loop prevention mechanism, prevents the originating AS to deny the aggregated route if aggregation occurs at a different AS.
  • With an AS-Set enabled components routes copy attribute
  • ATOMIC_AGGREGATE is not included with this option, but is included by default with other aggregate options.
  • Without this option suboptimal routing can occur as the original attributes are replaced, additionally routing loops can exist with the removal of AS_PATH attribute.

Attribute-map

  • Aggregates with the as-set option inherit the components' attributes. One way to modify the attributes that make up the aggregate route is with attribute-map.
  • Attribute-map can be used to specify attributes for the aggregate routes (with the exception of AS_PATH and its AS_SET segment).

Advertise-map

  • This features is allows you to select which component routes should be used to generate the aggregate route. Such functionality can be useful as a way of controlling the inherited attributes especially AS_SET.
  • One scenario where this is useful is when multiple ASNs generate component routes, while one generates the aggregate route. For all of these to prevent loop detection and accept the aggregate, filtering which routes are used for aggregate can be a useful method of modifying the AS_SET attribute.
  • Matching prefixes can only be done with ACL, prefix-list and as-path access-list, nothing else.

Relevant Commands

aggregate-address

Advertised both summary and component routes. Creates a static discard route.

R1(config-router)#            aggregate-address (ip) mask (mask)      
R1(config-if#

aggregate-address summary-only

Advertised only the summary route and suppresses all component routes.

R1(config-router)#            aggregate-address (ip) mask (mask) summary-only

aggregate-address suppress-map

Provides a more detailed selection of which routes to suppress from advertising with the aggregate route.
Permit in the route-map selects for suppress, while a deny omits from suppression.

R1(config-router)#            aggregate-address (ip) mask (mask) suppress-map (RMAP)
R1(config)#                        route-map (RMAP) permit (seq)
R1(config-route-map)#            match (...)        << use acl , prefix, as-path

aggregate-address as-set

Includes some of the details from component routes when creating the aggregate route. Uses AS_SET segment to prevent loops. This is one way to prevent sending the summary to the origin AS, since as-set will include that ASN and it will detect loop.

R1(config-router)#            aggregate-address (ip) mask (mask) as-set

aggregate-address attribute-map

Used to modify the attributes of aggregate route.

R1(config-router)#            aggregate-address (ip) mask (mask) attribute-map (RMAP)
R1(config)#                        route-map (RMAP) permit (seq)
R1(config-route-map)#            set (attributes...)

aggregate-address advertise-map

Selects which routes are used as components for aggregate route, help in AS_SET attribute inheritance.

R1(config-router)#            aggregate-address (ip) mask (mask) advertise-map (RMAP)
R1(config)#                        route-map (RMAP) permit (seq)
R1(config-route-map)#            set (attributes...)

Additional Resources

Understanding Route Aggregation in BGP
bgp-aggregation-with-suppress-map CCIE TO BE.

Comments

rating: 0+x
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License