Chris Snook writes "My company makes embedded routers that are deployed widely, and each needs a few subnets, which do not need to be unique from one device to the next, so we've been using the 192.168.0.0/16 space broken up into
/24 subnets. To avoid colliding with those, we decided to use the 172.16.0.0/12 range for tunnels between our management servers and the routers in the field, but it turns out our hosting provider uses the 172.16.0.0/12 space internally. To top it off, our ISP sometimes routes packets through routers with 10.0.0.0/8 IPs, which makes debugging a headache if development code screws up a route that's meant to go internally. It there a best practice for managing the address space, or are we out of luck once we're interacting with networks beyond our control?"