Section B.11. Aggregate Statements

Route aggregation is used by regional and national networks to reduce the number of routes advertised. With careful planning, large network providers can announce a few aggregate routes instead of hundreds of client network routes. Enabling aggregation is the main reason that CIDR blocks are allocated as contiguous address blocks.

Most of us don't have hundreds of routes to advertise. But we may have a classless address composed of a few class C addresses, and we may need to tell gated how to handle it. Older versions of gated automatically generated an aggregate route to a natural network using the old class A, B, and C concept; i.e., interface address 192.168.16.1 created a route to 192.168.16.0. With the advent of classless interdomain routing, this can be the wrong thing to do. gated does not aggregate routes unless it is explicitly configured with the aggregate statement:

aggregate default | address [[mask mask | masklen number] [bgp]]

  [preference preference] [brief] {

  proto proto

    [as as_number | tag tag | aspath aspath_regexp]

    [restrict] |

    [[preference preference] {

      route_filter [restrict | (preference preference)]] ; } ;

Several options are available for the aggregate statement:

bgp

Aggregations are to be formed using BGP protocol rules.

preference preference;

Defines the preference of the resulting aggregate route. The default is 130.

brief

Specifies that the AS path of the aggregate route should be the longest common AS path. The default is to build an AS path consisting of all contributing AS paths.

proto proto

Only aggregate routes learned from the specified protocol. The value of proto may be any currently configured protocol. This includes the "protocols" direct, static, and kernel, discussed in the previous section; all for all possible protocols; and aggregate for other route aggregations.

as as_number

Only aggregate routes learned from the specified autonomous system.

tag tag

Only aggregate routes with the specified tag.

aspath aspath_regexp

Only aggregate routes that match the specified AS path.

restrict

Indicates routes that are not to be aggregated.

Routes that match the route filters may contribute to the aggregate route. A route may contribute only to an aggregate route that is more general than itself. Any given route may contribute to only one aggregate route, but an aggregate route may contribute to a more general aggregate.

A slight variation of aggregation is the generation of a route based on the existence of certain conditions. The most common usage for this is to create a default based on the presence of a route from a peer on a neighboring backbone. This is done with the generate statement:

generate default | address [mask mask | masklen number]

  [preference preference] 

  [brief] {

  proto proto

    [as as_number | tag tag | aspath aspath_regexp]

    [restrict] |

    [[preference preference] {

    route_filter [restrict | preference preference]] ; } ;

} ;

The generate statement uses many of the same options as the aggregate statement. These options were described earlier in this appendix.