Route Aggregation in BGP
Route Aggregation in BGP
Route Aggregation in BGP
Contents
Introduction
Prerequisites
Requirements
Components Used
Conventions
Network Diagram
Aggregate Without the asset Argument
Aggregate with the asset Argument
Change the Attributes of the Aggregate Route
Use advertisemap to Aggregate a Subset of Specific Routes
Impact of the Use of suppressmap with Other Configuration Commands
Related Information
Introduction
Border Gateway Protocol (BGP) allows the aggregation of specific routes into one route with use of the
aggregateaddress address mask [asset] [summaryonly] [suppressmap mapname] [advertisemap
mapname] [attributemap mapname] command. When you issue the aggregateaddress command
without any arguments, there is no inheritance of the individual route attributes (such as AS_PATH or
community), which causes a loss of granularity. This document illustrates how to manipulate the different
attributes when you use the aggregateaddress command and how to influence the propagation.
Prerequisites
Requirements
Cisco recommends that you have knowledge of these topics:
A basic knowledge of BGP operation. Refer to BGP Case Studies.
Components Used
This document is not restricted to specific software and hardware versions. However, the configuration in this
document was tested with Cisco IOS Software Release 12.2(28).
The information in this document was created from the devices in a specific lab environment. All of the
devices used in this document started with a cleared (default) configuration. If your network is live, make sure
that you understand the potential impact of any command.
Conventions
Refer to Cisco Technical Tips Conventions for more information on document conventions.
Network Diagram
Router B
Current configuration:
hostname RouterB
!
interface Serial0
ip address 3.3.3.3 255.0.0.0
!
interface Loopback0
ip address 160.10.1.1 255.255.0.0
!
router bgp 200
network 160.10.0.0
! Router B advertises network 160.10.0.0/16.
neighbor 3.3.3.1 remoteas 300
!
end
Router C
Current configuration:
hostname RouterC
!
interface Serial0
ip address 2.2.2.1 255.0.0.0
!
interface Serial1
ip address 3.3.3.1 255.0.0.0
!
interface Serial2
ip address 4.4.4.1 255.0.0.0
!
router bgp 300
neighbor 2.2.2.2 remoteas 100
neighbor 3.3.3.3 remoteas 200
neighbor 4.4.4.4 remoteas 400
aggregateaddress 160.0.0.0 255.0.0.0 summaryonly
! The network is summarized, and Router C only
! advertises 160.0.0.0/8.
!
end
Router D
Current configuration:
hostname RouterD
!
interface Serial0
ip address 4.4.4.4 255.0.0.0
!
router bgp 400
neighbor 4.4.4.1 remoteas 300
!
end
Router C (AS300) aggregates the routes 160.20.0.0/16 and 160.10.0.0/16 that come from AS100 and
AS200, respectively. This action occurs because you have configured the summaryonly argument on
Router C. Router C only announces the aggregate 160.0.0.0/8 to Router D. The aggregate 160.0.0.0/8 is the
classless interdomain routing (CIDR) route. The more specific 160.10.0.0/16 and 160.20.0.0/16 routes are
suppressed, as this BGP table on Router C shows:
RouterC#
show ip bgp
BGP table version is 6, local router ID is 4.4.4.1
Status codes: s suppressed, d damped, h history, * valid, > best, i internal
Origin codes: i IGP, e EGP, ? incomplete
Network
Next Hop
*> 160.0.0.0/8
s> 160.10.0.0
s> 160.20.0.0
0.0.0.0
3.3.3.3
2.2.2.2
0
0
32768 i
0 200 i
0 100 i
Here is the BGP table of Router D. Observe the path information of the aggregate route:
RouterD#
show ip bgp
BGP table version is 6, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i internal
Origin codes: i IGP, e EGP, ? incomplete
Network
*> 160.0.0.0/8
Next Hop
4.4.4.1
The aggregate route 160.0.0.0/8 is considered to have originated from AS300 with origin code IGP. The
route has lost all the specific AS_PATH information of the individual prefixes 160.10.0.0/16, of AS200, and
160.20.0.0/16, of AS100.
Now, look at how this argument influences the show ip bgp output on Router D:
RouterD#
show ip bgp
BGP table version is 2, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i internal
Origin codes: i IGP, e EGP, ? incomplete
Network
Next Hop
*> 160.0.0.0/8
4.4.4.1
0 300 {200,100} i
With the asset argument, the path information in the BGP table for the aggregate route changes to include a
set from 300 {200,100}. This set indicates that the aggregate actually summarizes routes that have passed
through AS200 and AS100. The asset information becomes important in the avoidance of routing loops
because the information records where the route has been.
In any closed network, this aggregate information propagates through BGP and back to one of the ASs that
the asset lists. This propagation creates the possibility of a loop. The loop detection behavior of BGP notes
its own AS number in the asset of the aggregate update and drops the aggregate. This action prevents a loop.
Note: The asset argument contains information about each individual route that the aggregate summarizes.
Changes in the individual route cause an update of the aggregate. In the example, if 160.10.0.0/16 goes down,
the path information of the aggregate changes from 300 {200,100} to 300 {200}. The aggregate is updated. If
the aggregate summarizes tens or hundreds of routes and the routes that form the aggregate have problems,
there can be a constant flap.
end
The community noexport stops the Router C announcement of the aggregate route to eBGP peer Router D.
Router D shows that it has not learned 160.0.0.0 from Router C:
RouterD# show ip bgp 160.0.0.0
% Network not in table
You can configure the attributemap argument at Router C in order to manipulate the community attribute
of the aggregate route from noexport to none. This configuration allows the advertisement of the aggregate
to Router D.
Router C
Current configuration:
hostname RouterC
!
interface Serial0
ip address 2.2.2.1 255.0.0.0
!
interface Serial1
ip address 3.3.3.1 255.0.0.0
!
interface Serial2
ip address 4.4.4.1 255.0.0.0
!
router bgp 300
neighbor 2.2.2.2 remoteas 100
neighbor 3.3.3.3 remoteas 200
neighbor 4.4.4.4 remoteas 400
aggregateaddress 160.0.0.0 255.0.0.0
asset summaryonly attributemap Map
! Use of the attributemap argument allows
! you to change the community of the aggregate.
!
routemap Map permit 10
set community none
! This sets the community of the aggregate to none.
end
Now, look at the BGP table of Router C for 160.0.0.0/8. Because there is no community set for the aggregate
route, Router C advertises 160.0.0.0/8 to Router D.
RouterC# show ip bgp 160.0.0.0
BGP routing table entry for 160.0.0.0/8, version 6
The show ip bgp 160.0.0.0 output at Router D shows that Router D has learned the aggregate route
160.0.0.0/8 from Router C.
RouterD# show ip bgp 160.0.0.0
BGP routing table entry for 160.0.0.0/8, version 10
Paths: (1 available, best #1, table DefaultIPRoutingTable)
Not advertised to any peer
300 {200,100}, (aggregated by 300 4.4.4.1)
4.4.4.1 from 4.4.4.1 (4.4.4.1)
Origin IGP, localpref 100, valid, external, best
Only AS200 is part of the AS_PATH information of the aggregate; AS100 is not part of the information.
Also, there is no inheritance of the community noexport from 160.20.0.0/16. Therefore, the aggregate route
is announced to Router D. The show ip bgp 160.0.0.0 output shows the announcement:
RouterD# show ip bgp 160.0.0.0
BGP routing table entry for 160.0.0.0/8, version 7
Paths: (1 available, best #1, table DefaultIPRoutingTable)
Not advertised to any peer
300 200, (aggregated by 300 4.4.4.1)
4.4.4.1 from 4.4.4.1 (4.4.4.1)
Origin IGP, localpref 100, valid, external, atomicaggregate, best
ip bgp 160.0.0.0
Note: Because the aggregate asset has AS200 only, Router A in AS100 accepts the aggregate route and
installs the route in the routing table. The BGP loop detection mechanism causes this route acceptance. The
BGP loop detection mechanism does not detect its own AS in asset.
RouterA# show ip bgp
BGP table version is 3, local router ID is 160.20.0.1
Status codes: s suppressed, d damped, h history, * valid, > best, i internal
Origin codes: i IGP, e EGP, ? incomplete
Network
*> 160.0.0.0/8
*> 160.20.0.0
Next Hop
2.2.2.1
0.0.0.0
When you use the asset and suppressmap configuration commands with advertisemap, the
aggregate forms. The aggregate inherits the attributes only out of the routes that are selected in the
advertisemap, irrespective of whether suppressmap suppresses the route. See the Use
advertisemap to Aggregate a Subset of Specific Routes section.
When you use advertisemap and attributemap along with asset and other configuration
commands, the attributemap overrides the attributes that are chosen in the advertisemap.
In general, when you use advertisemap, only the advertisemap influences the aggregate. In the absence of
advertisemap, the aggregate inherits the attributes of the morespecific routes, both suppressed and
unsuppressed. In both the cases, you can use the attributemap configuration command to override the
chosen attributes.
Related Information
BGP: Frequently Asked Questions
Troubleshooting BGP
BGP Support Page
Technical Support & Documentation Cisco Systems