Skip to main content
IMHCloud Logo
Back to glossary

Private Network

A private network is an isolated network segment within your cloud project that creates a dedicated communication path between instances using private IP addresses not exposed to the public internet.

What is a Private Network in cloud hosting?

A private network is an isolated network segment that exists within your cloud project. It creates a dedicated communication path between your instances (virtual machines) that is not exposed to the public internet. When you launch instances in a private network, they receive private IP addresses that allow them to communicate with each other directly without sending traffic through external networks.

Private networks are the foundation of secure cloud architectures. They allow you to build multi-tier applications where database servers, application servers, and other backend resources communicate privately while only your web-facing components receive public access.

Why Private Networks Exist

Without private networks, all instances would need public IP addresses to communicate with each other. This creates several problems:

  • Security exposure: Every server becomes directly accessible from the internet, increasing attack surface.
  • Cost inefficiency: Public IP addresses are limited resources that cost money. Using them for internal communication wastes this resource.
  • Network complexity: You would need complex firewall rules to protect each instance individually rather than isolating groups of resources.
  • Compliance risk: Many security standards require separating public-facing and internal systems on different network segments.

Private networks solve these problems by creating a protected space where your cloud resources can communicate safely away from public internet traffic.

What Do Private Networks Actually Do?

  • Assigns private IP addresses to instances from a range you define, such as 192.168.1.0/24 or 10.0.0.0/16
  • Isolates traffic so that communication between instances on the private network never leaves your cloud environment
  • Blocks external access by default, preventing any direct connections from the public internet to instances on the private network
  • Enables internal DNS so instances can discover and connect to each other using network names instead of memorizing IP addresses
  • Connects to routers that you configure to control whether and how the private network accesses external networks or other private networks
  • Maintains separation between different projects and tenants so that private networks in one project cannot see or access private networks in another project

When Would I Use Private Network?

You use private networks in these common situations:

  • Multi-tier web applications where you have web servers that need public access and database servers that should only accept connections from your web servers
  • Development and staging environments where you want to test applications internally before exposing them to the internet
  • Microservices architectures where multiple services need to communicate with each other but only an API gateway needs public access
  • Data processing pipelines where worker instances process data stored on private storage servers without needing internet connectivity
  • Compliance requirements where regulations mandate network separation between different components or sensitivity levels
  • Cost optimization when you have many instances that communicate frequently and you want to avoid paying for public IP addresses and external bandwidth

When Would I NOT Use Private Network?

Private networks add complexity that is unnecessary in these situations:

  • Single standalone instance that needs internet access and does not communicate with other instances
  • Simple proof-of-concept testing where you want to quickly launch one instance to test something and security isolation is not important
  • Public-facing applications with no backend components, such as a static website hosted on a single instance
  • Learning and experimentation when you are new to cloud hosting and want to avoid networking configuration while you learn the basics

Private networks also have limitations:

  • Additional configuration required: You must create a router, configure subnets, and set up routing rules before instances can reach the internet or other networks.
  • IP address planning needed: You must choose non-overlapping IP ranges if you plan to connect multiple private networks together later.
  • Debugging complexity: When problems occur, you need to check multiple layers including network configuration, router settings, and security group rules.

Real-World Example

Company A runs an e-commerce application on InMotion Cloud. They create a private network with the IP range 10.0.0.0/16 and divide it into three subnets: one for web servers (10.0.1.0/24), one for application servers (10.0.2.0/24), and one for database servers (10.0.3.0/24).

Company A launches three web server instances in the web subnet and assigns floating IPs to them so customers can reach the website from the internet. The web servers connect to five application server instances in the application subnet using private IP addresses. The application servers connect to two database server instances in the database subnet, also using private IPs.

Because all backend servers exist only on the private network without floating IPs, they are completely unreachable from the internet. Only the web servers can receive public traffic, and all communication between the application tiers happens securely over the private network. Company A configures security groups to ensure web servers can only talk to application servers, and application servers can only talk to database servers, creating defense in depth even within the private network.

When Company A needs to SSH into a backend server for maintenance, they first connect to a web server (which has a floating IP) and then use that as a jump host to reach the private backend servers. This eliminates the need for public access to sensitive database servers.

Frequently Asked Questions

Do I need more than one private network?

Most applications work fine with a single private network divided into multiple subnets. You would create multiple private networks when you need complete isolation between different applications or environments. For example, you might have separate private networks for production, staging, and development so there is no possibility of accidental cross-environment traffic. If your applications only need logical separation, subnets within one private network are sufficient and simpler to manage.

Does creating a private network affect my existing instances?

No. Creating a private network does not change or affect any existing instances. Instances remain attached to whichever networks you specified when you launched them. To move an instance to a different network, you must detach the old network interface and attach a new one, or launch a new instance on the desired network.

What happens if I delete a private network?

You cannot delete a private network while instances are still attached to it or while routers are still connected to it. You must first shut down and delete all instances using the network, then detach it from any routers. After the network is completely unused, you can delete it. Deleting a network permanently removes all subnet configuration and IP address assignments, so make sure you have migrated all workloads before deleting.

Can instances on different private networks communicate with each other?

By default, no. Private networks are isolated from each other. If you need instances on two private networks to communicate, you must explicitly configure routing between them. You can connect private networks by attaching both to the same router and configuring appropriate routes, or by using VPN or overlay network technologies. This controlled approach prevents accidental exposure and gives you precise control over which networks can interact.

How do instances on a private network access the internet?

Instances on a private network do not have internet access by default. To enable internet access, you must create a router, attach your private network to the router, and set the router's external gateway to your public network. The router then performs network address translation (NAT) to allow private instances to initiate outbound connections to the internet while remaining unreachable for inbound connections. If you need inbound access to specific instances, you assign floating IPs to those instances.

Summary

  • A private network is an isolated network segment within your cloud project where instances communicate using private IP addresses not accessible from the public internet.
  • Private networks provide security through isolation, reduce costs by eliminating the need for public IPs on all instances, and enable multi-tier architectures with protected backend components.
  • Instances on a private network cannot access the internet or be accessed from the internet without additional configuration such as attaching a router or assigning floating IPs.
  • Private networks are essential for production applications with multiple tiers but may be unnecessary complexity for simple single-instance deployments or learning environments.
  • You control exactly which instances can communicate by combining private network isolation with security group rules and subnet design.

Related Terms

To understand private networks fully, you should be familiar with these cloud-specific networking concepts:

  • Subnet: A subdivision of a private network that defines a specific IP address range and is connected to a router, such as 192.168.1.0/24 for web servers or 10.0.2.0/24 for database servers.
  • Router: A virtual routing device that connects private networks to external networks and controls traffic flow between them, such as connecting your private network to the internet or to other private networks.
  • Security Group: A virtual firewall that controls which network traffic can reach or leave your instances, such as allowing HTTPS traffic on port 443 while blocking all other inbound connections.
  • Floating IP: A public IP address that you can assign to an instance on a private network to make it accessible from the internet, such as assigning 203.0.113.5 to your web server instance.

Related Terms

Read definition

Project

A project is an isolated resource container in OpenStack that groups users, instances, networks, storage, and other cloud resources under a single administrative boundary with defined quotas and access controls.

Infrastructure
Learn more