nanog mailing list archives

Re: subnet aggregation script


From: Joe Abley <jabley () hopcount ca>
Date: Mon, 21 Sep 2009 12:29:19 -0400


On 2009-09-21, at 12:00, Ric Moseley wrote:

Does anyone know of a tool/script that can aggregate subnets feed to it
via command line?  Meaning if I give it multiple /30s (or any size
subnet) it will scrunch them together.

I wrote this years ago and we used it in 6461 for various things.

ftp://ftp.isc.org/isc/aggregate/aggregate-1.6.tar.gz

Example:

#aggregate_subnets.script 192.168.0.0/30 192.168.0.4/30 10.0.0.16/29
10.0.0.24/29

#192.168.0.0/29 10.0.0.16/28

[octopus:~]% cat >input-file
192.168.0.0/30
192.168.0.4/30
10.0.0.16/29
10.0.0.24/29
[octopus:~]%
[octopus:~]% aggregate <input-file >output-file
aggregate: maximum prefix length permitted will be 32
[octopus:~]% cat output-file
10.0.0.16/28
192.168.0.0/29
[octopus:~]%

It's quite bad at dealing with really long lists, but it's ok for small applications. There's a manual page, and options, and stuff. You can make it show its working, if you're worried about whether it is sane.

[octopus:~]% aggregate -v <input-file
aggregate: maximum prefix length permitted will be 32
[    0] + 10.0.0.16/28
[    0] + 192.168.0.0/29
[    1] - 192.168.0.0/30
[    2] - 192.168.0.4/30
[octopus:~]%

I forget exactly what the numbers in the brackets mean, but from memory 0 means it's a generated prefix and anything else refers to a line number in the input stream. No doubt the source would provide illumination.

I don't remember why I thought it was a good idea to spit out the "maximum prefix length" warning to stderr every time.


Joe


Current thread: