BGP Deaggregation

Introduction

Deaggregation is the creation of more specific details (routes) when aggregate exist. It is accomplished with the unsuppress-map or the inject-map command

Unsuppress Map

  • Unsuppress-map only work on routers that aggregate a route with summary-only option.
  • It selects the prefixes to be unsuppressed with a route-map on a per neighbor basis.
  • Can only be performed per neighbor.
  • Used for traffic engineering when one neighbor gets a detail route while everyone else selects the summary route.
  • Unsuppressed routes will show in the advertising routes as suppressed to the unsuppress neighbor.
  • This feature is different than supress-map by the fact that supress-map is global and unsupress-map is per neighbor.
  • By default the weight is set to 0 (not 32768)
  • Unsuppress-map can be used for traffic engineering. In the diagram below a 10.0.0.0/8 summary-only route is generated by R1. A unsuppress-map is created for each neighbor. Shortest prefix length will route traffic based on the unsuppressed routes, but also provide backup in the event that one of the links fails, by matching the summary route.

Inject Map

Inject map is another way to deaggregate routes by conditionally injecting routes based on the presence of a specific aggregate send from a specific router. It works similar to unsuppress-map but it will work on any router not just the one originating the aggregate prefix.

bgp inject-map (map1) exist-map (map2) [copy-attributes]

Type Description
inject-map Specifies which routes to inject (route-map)
exist-map Specifies the condition that must exist for specific route to be injected (route-map)

Injection

  • Defines the specific (deaggregated) routes to be injected as long as the exist-map is matched.
  • Implemented with a route-map and set with ip prefix list. The route-map can additionally set other attributes such as community.
  • Remember to filter the injected route from other neighbors that should not get it, to prevent loops. Just use route-map filtering.

Conditionality

  • Defines the conditions that have to be matched before the aggregation can occur.
  • Must have these two match clause:
    • aggregate address - only one exact match is allowed
    • advertising neighbor's IP - not the aggregator but neighbor advertising it.
  • Copy-attribute argument inherits attributes from aggregate such as AS_PATH and community. NEXT_HOP is always the advertising router.

Shows a sample route being injected by an inject-map.

Show are sample configuration in full.

Relevant Commands

neighbor unsuppress-map

Unsuppress-map selects routes to be unsuppressed. This can only be configured on the router aggregating routes with summary-only command.

R1(config-router)#            neighbor (ip) unsuppress-map (RMAP)
R1(config-router)#            aggregate-address (ip) (mask) summary-only

R1(config)#                    route-map (RMAP) permit (seq)
R1(config-route-map)#                match (...)        << use acl , prefix, as-path

bgp inject-map

Inject-map is a conditional injection of deaggregated routes (specifics).

R1(config-router)#            bgp inject-map (INJECT-SPECIFICS) exist-map (AGGREGATE-DETAILS) [copy-attributes]
R1(config)#                    route-map (INJECT-SPECIFICS) permit (seq)
R1(config-route-map)#                set ip address prefix-list (INJECTED-PREFIXES)
R1(config-route-map)#                set (attributes....)

The route-map that specifies the condition, the aggregate route details has to have two match statements: 1. matching the aggregate route and 2. matching the advertising route-source.

R1(config)#                    route-map (AGGREGATE-DETAILS) permit (seq)
R1(config-route-map)#                match ip address prefix (AGGREGATE-PREFIX)
R1(config-route-map)#                match ip route-source prefix-list (NEIGHBOR-PREFIX)

show ip bgp injected-path

show ip bgp injected-path

Shows a example route injected.

Additional Resources

Comments

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