PHP IPAM: An excellent tool for managing your resources

For the longest time, I’ve been using Spreadsheets to manage my inventory, the servers, and network configurations. I recently switched to using PHPIPAM, and it’s been a godsend. Disclaimer: This blog post is a continuous draft, and will be updated as I learn more about PHPIPAM and explore it more in-depth.

PHPIPAM lets me add subnets, rack configurations, locations, and even customers information to the system. This makes visualizing and managing my systems much easier – I can issue subnets, calculate the gateways, and routing information – then assign them to customers, put them in rack positions, and have a high overview of the entire network in the data center. The ability to create devices and associate resources with them is worth it alone, I can’t understand why I didn’t switch earlier — PHPIPAM will also let you manage internal/private subnets, which is an extra bonus, calculate bandwidth, manage circuts, etc!

I’ve configured it in a way that I can sort by rack, the uplinks, and circuits provided to me from upstreams. Here’s the visualization of my tiny configuration (5u – 3u is used)!

5u Rack Diagram via PHPIPAM

You can see the top node is the router, then an empty panel, the two servers, and another empty panel. This is accurate of what my rack actually looks like in the colocation. Represented from IPAM, here’s how the management interface looks for this rack:

IPAM Rack Details Interface

By following any of the blue device links, I get an entire overview of the device, the location, subnets, addresses, NAT and circuits connected to it.

Details Interface

It’s a beautiful interface, and having customization circuits and being able to assign network and capacity gives you an incredible overview. Here’s what my current circuit structure looks like, including internet exchanges and transit providers.

List of physical circuits

Then, we have the Subnets, their description, the used count, % of IPs free, and it’s got an incredibly easy interface to manage (including BGP routing).

By clicking on a subnet, I get to see exactly what’s free and used, the PTR records and a brief description. I’ve also set alert thresholds in case I need to acquire more IP addresses. Right now I’ve got 263 IP addresses available, so I think I’m good on IPv4 for now!

Now that I’ve found my ideal tool for managing and visualising resources, it’s time to figure out how to generate configuration files from this data and push them to servers for networking configuration.