Get started Bring yourself up to speed with our introductory content.

Dealing with IPv6 addresses in comfort and style: FreeIPdb

The 128-bit addresses of IPv6 might be great for the public Internet, but they might just cause complexity in private networks. This free tool helps admins manage IPv6 addresses.

With a 128-bit address space, the number of options IPv6 provides are truly staggering. That said, the real issue for administrators is the number of bits they must shuffle around to subdivide public or private portions of that monstrous address space that they may find themselves wanting to use. As with IPv4, public IPv6 addresses must be formally allocated, but private IPv6 addresses may be used at will, as long as their users can forgo direct, unmediated access to the Internet.

For those facing 128-bit addressing and subnetting chores, a free and nifty little tool named FreeIPdb can be a great boon. The tool permits IPv6 address space to be carved into independent sections called regions, which may then be further subdivided or combined as administrators' needs dictate. Thus, it can be used to allocate a subnet for a division or a project, which may then be further subdivided into constituent subnets for individual groups within that address space. In a notion reminiscent of CIDR, the tool makes it easy to start with a /24 subnet, and then to allocate from inside its address space a /25 subnet to one group, a /26 subnet to another, and a /27 subnet to a third, and immediately see that a single /27 subnet remains free for other use.

Addresses can also be managed for reclamation, so that when a block of addresses (or a parent for that block further up the hierarchy) is set to reclaim mode, no addresses with that status may be re-allocated or assigned from the database that this tool manages. Supernets may be associated with priority values so that the database will preferentially allocate blocks from address ranges with higher priorities before those with lower priorities. Address blocks may also be assigned hold times, so that if a block is reclaimed it will become available for re-allocation or roll-up into a parent block when the hold time expires. The database will even allow addresses to be selected for assignment, thereby overriding the tool's analysis of priorities and its ordinary response to an allocation request (not surprisingly this feature is called "Set a specific block"). All of this said, FreeIPdb only permits addresses outside the existing IPv4 address range to be managed: it maintains a "hands-off" attitude where addresses that overlap with IPv4 is concerned—as it rightly should.

FreeIPdb is written in Perl, and runs on any platform with a working Perl interpreter (the reference version is 5.005_03 build for i386-freebsd). Other requirements include the following (all items are Perl libraries except for the first one, which specifies that one of two possible database engines is needed):

  • PostgreSQL 7.0 with Perl interface installed. (also tested on 7.1.2 and 7.2). or MySQL [In beta] (testing on 4.0.5)
  • Math::BigInt-1.63
  • Net::IP-1.0
  • DBI-1.14 or better.
  • DBD::Pg 0.95 or better.
  • A Webserver capable of running Perl cgi (If you want the Web front-end.)
  • Net::Telnet (optional)

All necessary details are covered at, which is where you'll also find download and CVS related links as well.

Concluding note: Those far enough along with IPv6 deployment to have networks to test will need IPv6 replacements for common IP networking tools such as tracert, ping, and so forth. You'll find plenty of the same at and

Ed Tittel is a full-time freelance writer, trainer, and consultant who specializes in matters related to information security, markup languages, and networking technologies. He's a regular contributor to numerous TechTarget Web sites, technology editor for Certification Magazine, and writes an e-mail newsletter for CramSession called "Must Know News."

This was last published in July 2005

Dig Deeper on WAN technologies and services

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.