Provided by: aggregate_1.6-7_amd64 bug

NAME

       aggregate - optimise a list of route prefixes to help make nice short filters

SYNOPSIS

       aggregate [-m max-length] [-o max-opt-length] [-p default-length] [-q] [-t] [-v]

DESCRIPTION

       Takes  a  list of prefixes in conventional format on stdin, and performs two optimisations
       to attempt to reduce the length of the prefix list.

       The first optimisation is to remove any supplied prefixes which  are  superfluous  because
       they  are already included in another supplied prefix. For example, 203.97.2.0/24 would be
       removed if 203.97.0.0/17 was also supplied.

       The second optimisation identifies adjacent prefixes that can be combined under a  single,
       shorter-length  prefix.  For example, 203.97.2.0/24 and 203.97.3.0/24 can be combined into
       the single prefix 203.97.2.0/23.

OPTIONS

       -m max-length
              Sets the maximum prefix length for entries read from  stdin  max_length  bits.  The
              default is 32. Prefixes with longer lengths will be discarded prior to processing.

       -o max-opt-length
              Sets the maximum prefix length for optimisation to max-opt-length bits. The default
              is 32. Prefixes with longer lengths will not be subject to optimisation.

       -p default-length
              Sets the default prefix length. There is no default; without this option  a  prefix
              without  a mask length is treated as invalid.  Use -p 32 -m 32 -o 32 to aggregate a
              list of host routes specified as bare addresses, for example.

       -q     Sets quiet mode -- instructs aggregate never to generate warning messages or  other
              output on stderr.

       -t     Silently  truncate prefixes that seem to have an inconsistent prefix: e.g. an input
              prefix 203.97.2.226/24 would be truncated to 203.97.2.0/24. Without this option  an
              input  prefix  203.97.2.226/24  would  not  be  accepted,  and  a warning about the
              inconsistent mask would be generated.

       -v     Sets verbose mode. This changes the output format to display the source line number
              that  the  prefix  was  obtained  from, together with a preceding "-" to indicate a
              route that can be suppressed, or a "+" to indicate a shorter-prefix aggregate  that
              was  added  by  aggregate  as  an  adjacency optimisation. Note that verbose output
              continues even if -q is selected.

DIAGNOSTICS

       Aggregate exits 0 on success, and >0 if an error occurs.

EXAMPLES

       The following list of prefixes:

         193.58.204.0/22
         193.58.208.0/22
         193.193.160.0/22
         193.193.168.0/22
         193.243.164.0/22
         194.126.128.0/22
         194.126.132.0/22
         194.126.134.0/23
         194.151.128.0/19
         195.42.240.0/21
         195.240.0.0/16
         195.241.0.0/16

       is optimised as followed by aggregate (output shown using the -v flag):

         aggregate: maximum prefix length permitted will be 24
         [    0] + 193.58.204.0/21
         [    1] - 193.58.204.0/22
         [    2] - 193.58.208.0/22
         [    3]   193.193.160.0/22
         [    4]   193.193.168.0/22
         [    5]   193.243.164.0/22
         [    0] + 194.126.128.0/21
         [    6] - 194.126.128.0/22
         [    7] - 194.126.132.0/22
         [    8] - 194.126.134.0/23
         [    9]   194.151.128.0/19
         [   10]   195.42.240.0/21
         [    0] + 195.240.0.0/15
         [   11] - 195.240.0.0/16
         [   12] - 195.241.0.0/16

       Note that 193.58.204.0/22 and  193.58.208.0/22  were  combined  under  the  single  prefix
       193.58.204.0/21,   and   194.126.134.0/23  was  suppressed  because  it  was  included  in
       194.126.132.0/22. The number in square brackets at the beginning of  each  line  indicates
       the original line number, or zero for new prefixes that were introduced by aggregate.

       The output without the -v flag is as follows:

         193.58.204.0/21
         193.193.160.0/22
         193.193.168.0/22
         193.243.164.0/22
         194.126.128.0/21
         194.151.128.0/19
         195.42.240.0/21
         195.240.0.0/15

SEE ALSO

       aggregate-ios(1)

HISTORY

       Aggregate was written by Joe Abley <jabley@mfnx.net>, and has been reasonably well tested.
       It is suitable for reducing customer prefix filters for production use  without  extensive
       hand-proving of results.

       Autoconf  bits  were  donated by Michael Shields <michael.shields@mfn.com>.  The -t option
       was suggested by Robin Johnson <robbat2@fermi.orbis-terrarum.net>, and  the  treatment  of
       leading  zeros  on  octet  parsing  was  changed  following  comments  from  Arnold Nipper
       <arnold@nipper.de>.

       An early version of aggregate would attempt to combine  adjacent  prefixes  regardless  of
       whether the first prefix lay on an appropriate bit boundary or not (pointed out with great
       restraint by Robert Noland <rnoland@2hip.net>).

BUGS

       Common unix parsing of IPv4 addresses understands the representation of individual  octets
       in octal or hexadecimal, following a "0" or "0x" prefix, respectively. That convention has
       been deliberately disabled here, since resources  such  as  the  IRR  do  not  follow  the
       convention, and confusion can result.

       For  extremely  sensitive  applications,  judicious  use  of the -v option together with a
       pencil and paper is probably advisable.