CIDR Utilization

Baldur Norddahl baldur.norddahl at gmail.com
Sat Oct 31 23:01:52 UTC 2015


On 31 October 2015 at 01:51, John Steve Nash <john.steve.nash at gmail.com>
wrote:

> I'm looking for any tool or a way I could specify a CIDR and the prefixes
> that are being used within this CIDR and the tool show me all free
> supernets.
>

For the weekend exercise I wrote a small script that does this. You can
find it at http://pastebin.com/i0D54Lsq

Usage:

cat input.txt | ./subnet.sh

The input.txt file contains your input such as:

Baldurs-MBP-2:~ baldur$ cat /tmp/x
add 192.168.0.0/24
remove 192.168.0.1/32
remove 192.168.0.8/27
remove 192.168.0.64/26
remove 192.168.0.68/32
remove 192.168.0.96/29

Baldurs-MBP-2:~ baldur$ cat /tmp/x | ./subnet.sh
192.168.0.32/27
192.168.0.128/25

Note this was not your expected output, but that is because your example is
defective. To get your expected output we can modify the input such as:

Baldurs-MBP-2:~ baldur$ cat /tmp/x
add 192.168.0.0/24
remove 192.168.0.0/31
remove 192.168.0.3/32
remove 192.168.0.8/29
remove 192.168.0.16/28
remove 192.168.0.64/26
remove 192.168.0.68/32
remove 192.168.0.96/29

Baldurs-MBP-2:~ baldur$ cat /tmp/x | ./subnet.sh
192.168.0.2/32
192.168.0.4/30
192.168.0.32/27
192.168.0.128/25

You can have multiple add lines and add/remove lines in any order.

Regards,

Baldur



More information about the NANOG mailing list