Private networks are completely isolated in OpenStack. We decided to expose this because some hosts don't offer true private networking (it's private, but only within the datacenter and all customers can access each others instances over these pseudo-private networking).

So great, you have potentially multiple isolated private networks within your account. Why would you want to do that?

This all has to do with being able to create instances without a public IP by checking the box when creating instances called "Private networking only - don't assign a public IPv4 address". If your instances all have a public IP address then they're by definition open to the world (firewall rules aside).

You could for example set up your application with one instance with Caddy installed as a load balancer and having a public IP address, but then multiple application servers and database servers behind it, all having no public IP address (so you'd have to SSH connect to the instance acting as a load balancer as a bastion host and from there SSH off to the "internal-network-only" hosts).

Still you could setup that example anyway without needing multiple private networks. So how about these reasons:

1. Customer instances

Let's say that you want to offer a managed hosting service on top of Civo's instances, so you install and manage software for clients. You wouldn't want your "Little Johnny Hacker" to be able to access the instances owned by "Big Bank Ltd".

2. Environments

You may choose to host your development, staging and production environments for your web application on You don't want your dev or staging environments to accidentally/maliciously start to access production data. By keeping them on separate networks you keep them completely separate from each other.

We're sure there are other reasons, but it definitely all boils down to isolation!