Far more difficult companion to #5189. We want to be able to see IP allocation over time, broken out by IP pool and probably also by silo, so we will need to track allocations and deallocations in real time like we do for compute, storage, and memory.