Public and Private IP Addressing

Earn 25 points (50 with Pro) in two steps

  1. ① Read through the lesson — each section gets a ✓ as you scroll through it.
  2. ② When every section has a ✓, tap Complete lesson.

0 of 11 read · keep scrolling

✦ See fewer ads and earn double points — 50 a lesson instead of 25 — with Pro

Azure Virtual Networks: Mastering Public and Private IP Addressing

Introduction: The Foundation of Cloud Connectivity

When you begin architecting infrastructure in Microsoft Azure, the Virtual Network (VNet) serves as the fundamental building block for your private network. However, a VNet is essentially an empty shell until you populate it with resources that can communicate. The language these resources use to identify each other, reach the internet, or communicate with on-premises data centers is IP addressing. Understanding how Azure handles Public and Private IP addresses is not merely a technical requirement; it is the cornerstone of network security, traffic routing, and cost management.

An IP address is the digital equivalent of a mailing address. Without a properly configured IP strategy, your cloud services become isolated islands. If you assign addresses incorrectly, you risk creating security vulnerabilities, such as exposing internal databases to the public internet, or you may face connectivity failures that are difficult to troubleshoot. In this lesson, we will peel back the layers of Azure’s IP addressing model, exploring how private IPs facilitate internal communication and how public IPs manage external exposure. By the end of this module, you will be able to design a network that is both secure and functional, following industry-standard practices that prevent common configuration errors.


Not read yet

Understanding Private IP Addressing in Azure

Private IP addresses are the backbone of your internal cloud architecture. They are used for communication between Azure resources, such as Virtual Machines (VMs), Load Balancers, and Application Gateways, all within the context of your Virtual Network. Crucially, private IP addresses are not reachable from the public internet. They allow your components to talk to one another securely without exposing them to the threats inherent in global connectivity.

How Azure Assigns Private IPs

When you create a VNet, you define a range of private IP addresses using CIDR (Classless Inter-Domain Routing) notation. Within that VNet, you create subnets, and Azure assigns private IP addresses to resources from the range you have allocated to those subnets. Azure reserves five IP addresses within each subnet for its own internal use:

  • .0: Network address (the identifier for the subnet).
  • .1: Reserved by Azure for the default gateway.
  • .2 and .3: Reserved by Azure to map Azure DNS IPs to the VNet space.
  • .255: The network broadcast address.

Static vs. Dynamic Allocation

You have two primary choices when assigning private IPs: Dynamic or Static.

  • Dynamic Allocation: This is the default setting. Azure assigns an available IP address from the subnet pool when the resource is created. If the resource is stopped or deallocated, the IP might be released back into the pool. This is ideal for ephemeral workloads or auto-scaling groups where the specific IP address does not matter to the application logic.
  • Static Allocation: You manually assign a specific IP address from the subnet range. This is essential for services that require a permanent, predictable identity, such as internal database servers, domain controllers, or legacy applications that have hard-coded IP configurations.

Callout: Static vs. Dynamic Allocation Think of dynamic allocation like a hotel room assignment; you get a room when you check in, but it might not be the same room next time you visit. Static allocation is like owning a house; the address is fixed, permanent, and always points to the same location, which is critical for services that other systems depend on finding consistently.


Not read yet

Understanding Public IP Addressing in Azure

Public IP addresses are globally routable addresses that allow your Azure resources to communicate with the internet and other Azure services outside of your VNet. While private IPs keep your internal traffic safe, public IPs provide the "front door" for your applications. However, with this accessibility comes responsibility. Every public IP address you assign is a potential entry point for attackers, making it vital to understand how to manage them securely.

Public IP SKUs

Azure offers two primary SKUs (Stock Keeping Units) for Public IP addresses: Basic and Standard. It is important to know the difference, as they dictate the security posture of your environment.

  1. Basic SKU: These were the original standard in Azure. By default, resources with Basic Public IPs are open to the internet unless you explicitly configure a Network Security Group (NSG) to block traffic. They are mostly used for legacy deployments and do not support many of the advanced security features available in modern Azure networking.
  2. Standard SKU: These are the recommended choice for production environments. Standard Public IPs are "secure by default." This means that unless you explicitly associate the IP with a Network Security Group or a Load Balancer, the traffic is denied. They also support static assignment and are required for high-availability features like Zone Redundant front-ends.

Warning: Avoid Basic SKU In modern Azure deployments, you should avoid the Basic SKU for public IPs unless you have a specific legacy requirement. The Standard SKU provides significantly better protection, performance, and integration with modern Azure services.


Not read yet

Practical Implementation: Managing IP Addresses

Whether you are using the Azure Portal, Azure CLI, or PowerShell, the process of managing IP addresses follows a logical flow: create the VNet, define the subnets, and then attach the IP configurations to your network interfaces (NICs).

Step-by-Step: Creating a Static Private IP via Azure CLI

If you are automating your infrastructure, using the Azure CLI is often faster and less error-prone than clicking through the portal. Here is how you assign a static private IP to a network interface.

# Define your variables
RG="myResourceGroup"
VM_NAME="myVM"
NIC_NAME="myNIC"

# Update the network interface to set a static private IP
az network nic ip-config update \
    --resource-group $RG \
    --nic-name $NIC_NAME \
    --name ipconfig1 \
    --private-ip-address 10.0.0.50

Step-by-Step: Associating a Public IP

Public IPs are managed as independent resources in Azure. You create the Public IP resource first, and then attach it to a network interface or a load balancer.

# Create a Standard Public IP
az network public-ip create \
    --resource-group myResourceGroup \
    --name myPublicIP \
    --sku Standard \
    --allocation-method Static

# Associate it with an existing NIC
az network nic ip-config update \
    --resource-group myResourceGroup \
    --nic-name myNIC \
    --name ipconfig1 \
    --public-ip-address myPublicIP

Not read yet

Best Practices for IP Addressing Strategy

A common mistake in cloud networking is failing to plan for IP space exhaustion. If you start with a VNet address space that is too small, you may find yourself unable to add new subnets or scale your environment later.

1. Plan for Future Growth

When defining your VNet address space, use a large enough CIDR block to accommodate future growth. For example, using a /16 block (e.g., 10.1.0.0/16) provides over 65,000 addresses, which is usually plenty for most enterprises. You can then carve this up into smaller /24 or /26 subnets for different departments or tiers (web, application, database).

2. Avoid Overlapping CIDRs

If you plan to connect your Azure VNet to an on-premises data center or another Azure VNet via VPN or ExpressRoute, ensure that your IP address ranges do not overlap. Overlapping IP spaces will cause routing conflicts that are incredibly difficult to diagnose and fix. Always maintain an IP address management (IPAM) spreadsheet or tool to track which ranges are used where.

3. Use Network Security Groups (NSGs)

Never assume a private IP address is safe just because it is private. Always apply NSGs to your subnets or network interfaces to control traffic flow. Follow the principle of least privilege: only allow traffic that is strictly necessary for the application to function.

4. Leverage DNS

Do not hard-code IP addresses in your application configuration files. If you move a server or replace a load balancer, your application will break. Instead, use Azure’s built-in private DNS zones or your own internal DNS server to map hostnames to your private IP addresses. This provides an abstraction layer that makes your architecture more resilient.


Not read yet

Comparison: Public vs. Private IP Addressing

Feature Private IP Address Public IP Address
Scope VNet-internal only Globally routable (Internet)
Accessibility Cannot be reached from internet Reachable from internet
Cost Usually free (within limits) Incur costs (especially if static)
Primary Use Internal communication, DBs, Apps Web servers, Gateways, VPNs
Security Managed by NSGs Managed by NSGs + Basic/Standard SKU

Troubleshooting Common IP Issues

Even with careful planning, issues arise. Here are the most common scenarios where IP addressing causes problems and how to resolve them.

Issue 1: Connectivity Failure

If your VMs cannot communicate, the first step is to check if the traffic is being blocked by a Network Security Group. Even if the IP addresses are correct, an NSG rule may be dropping the packets. Use the "IP Flow Verify" tool in Azure Network Watcher to test connectivity between specific IP addresses and ports.

Issue 2: IP Exhaustion

If you cannot add a new VM to a subnet, check the remaining available addresses. If the subnet is full, you have two options: either resize the subnet if there is free space in the VNet, or move some resources to a different subnet. Tip: Azure does not allow you to shrink a VNet address space after it has been created, so always start with a larger space than you think you need.

Issue 3: Public IP "Disconnected"

If you find that a public IP is not working, ensure that the "Public IP SKU" matches the "Load Balancer SKU" or the "NIC SKU." For example, you cannot associate a Basic Public IP with a Standard Load Balancer. Everything in your stack must align with the same SKU level.


Not read yet

Advanced Networking: The Role of Load Balancers

In many cases, you should not assign a public IP directly to a virtual machine. This is considered a security risk because it exposes the VM's specific interface directly to the internet. Instead, use an Azure Load Balancer or an Application Gateway.

With a Load Balancer, the public IP is assigned to the load balancer's frontend. The load balancer then acts as a proxy, receiving traffic from the internet and distributing it to your internal VMs, which only have private IP addresses. This architecture hides your internal IP structure from the outside world and provides an extra layer of defense.

Example: Architecture with Load Balancer

  1. Public IP: Assigned to the Load Balancer frontend.
  2. Load Balancer: Receives traffic on port 443.
  3. Backend Pool: Contains your VMs with private IPs only.
  4. Result: The internet sees the Load Balancer's public IP, but the VMs themselves remain safely tucked away on the private network.

Callout: Security Through Obscurity? While hiding your backend IP addresses using a Load Balancer is not a total security solution, it is a significant improvement over direct exposure. It forces attackers to interact with the Load Balancer—which can perform health checks and SSL termination—rather than interacting directly with your application servers.


Not read yet

Best Practices for Managing IP Inventory

As your cloud footprint grows, managing IP addresses manually becomes impossible. Large organizations often face "IP fragmentation," where small, unused gaps in their address space are left behind, making it hard to allocate new, larger subnets.

Implement IPAM (IP Address Management)

For large-scale environments, use an IPAM solution. This can be a dedicated software tool or even a carefully maintained database that records:

  • VNet name and region.
  • Address space (CIDR).
  • Subnet names and their specific ranges.
  • Purpose of each subnet (e.g., "Web Tier," "Database Tier").
  • Reserved or static IP addresses for critical infrastructure.

The "Subnet-per-Tier" Pattern

Always separate your resources into subnets based on their role. For instance, put all web servers in a "Web Subnet" and all database servers in a "Database Subnet." This allows you to apply different NSG rules to each. You might allow inbound traffic from the internet to the Web Subnet on port 443, but block all direct internet access to the Database Subnet, allowing only the Web Subnet to talk to the Database Subnet.


Not read yet

Security Considerations: The "Standard" SKU Advantage

Earlier, we mentioned that Standard SKU Public IPs are "secure by default." This is such a critical concept that it warrants a deeper dive. When you create a Basic SKU public IP, it is effectively open to all inbound traffic by default. If you forget to configure an NSG, your server is immediately vulnerable.

Standard SKU public IPs are effectively "closed" until you explicitly define an NSG rule to allow traffic. This design shift forces developers and network engineers to be intentional about their security configuration. It is the modern standard for a reason: it prevents accidental exposure. If you are ever in doubt about which SKU to use, always default to Standard.

Monitoring IP Usage with Network Watcher

Azure provides a suite of tools called Network Watcher to help you monitor and diagnose your network. You can use it to:

  • Packet Capture: Inspect traffic flowing to and from a specific private or public IP.
  • Connection Monitor: Proactively monitor connectivity between two points (e.g., from an on-premises server to an Azure VM).
  • NSG Flow Logs: Log all traffic that is allowed or denied by your NSGs, which is invaluable for auditing and debugging.

Not read yet

Common Mistakes to Avoid

  1. Hard-coding IPs in Scripts: Never write 10.0.0.5 directly into a shell script or application config. If that VM is replaced or if the IP changes, your script will fail. Always use hostnames and rely on Azure's internal DNS resolution.
  2. Over-provisioning Public IPs: Public IP addresses cost money. If you have orphaned public IPs that are not attached to any resource, delete them immediately to save on costs.
  3. Ignoring IPv6: While IPv4 is still the standard, Azure now supports IPv6. If you are building a new, future-proof application, consider whether you need IPv6 support in your VNet design.
  4. Mixing SKUs: As mentioned before, trying to mix Basic and Standard SKUs in the same networking stack will lead to deployment failures. Always maintain consistency across your resources.

Summary and Key Takeaways

Mastering public and private IP addressing in Azure is a journey from understanding basic networking concepts to implementing sophisticated, secure architectures. By following the principles outlined in this lesson, you ensure that your cloud infrastructure is efficient, scalable, and secure.

Here are the essential takeaways from this module:

  • Private IPs are for Internal Use: They keep your resources hidden from the internet and facilitate communication within the VNet. Use them for everything that does not explicitly need to be public.
  • Public IPs are the Front Door: Use them sparingly. Whenever possible, hide your VMs behind a Load Balancer or Application Gateway rather than assigning public IPs directly to them.
  • Standard SKU is the Default for Production: Always choose the Standard SKU for public IPs to benefit from "secure by default" behavior and better integration with other Azure services.
  • Plan Your IP Space Carefully: Start with a large VNet address space to avoid future exhaustion, and use a consistent naming and subnetting convention to keep your environment organized.
  • Use NSGs for Every Subnet: Never trust a private network by default. Apply Network Security Groups to restrict traffic to the minimum required for your application to function.
  • Avoid Hard-coding IPs: Rely on DNS for service discovery. This makes your infrastructure flexible and easier to maintain when you need to update or replace resources.
  • Leverage Azure Tools: Use Network Watcher, NSG Flow Logs, and IPAM strategies to maintain visibility into your network and troubleshoot issues effectively.

By applying these practices, you move beyond simply "getting things to work" and start building professional-grade cloud networks that can handle the demands of modern, distributed applications. Networking is the connective tissue of the cloud; treat it with the care and planning it deserves, and your infrastructure will be much more stable and secure as a result.


Not read yet

Frequently Asked Questions (FAQ)

Can I change a static private IP to dynamic?

Yes, you can change the allocation method of a private IP address in the network interface configuration. However, be aware that if you change it to dynamic, the current IP might be released and a new one assigned, which could cause service downtime if your application is expecting the old address.

Are public IP addresses free?

No, public IP addresses incur a small hourly charge. This is a cost-control measure to encourage users to release public IPs when they are no longer in use. Static public IPs are generally more expensive than dynamic ones.

What happens if my VNet runs out of IP addresses?

If your VNet is full, you cannot add new subnets or new resources to existing subnets. You cannot "expand" a VNet's address space after it is created. You would need to create a new, larger VNet and migrate your services, which is a major project. This is why careful upfront planning is critical.

How do I allow traffic from an on-premises network to my private IPs?

You use a VPN Gateway or ExpressRoute to create a secure tunnel between your on-premises network and your Azure VNet. Once connected, your on-premises systems can communicate with your Azure VMs using their private IP addresses as if they were on the same local network.

Is there a limit to how many public IPs I can have?

Yes, every Azure subscription has a default limit (quota) on the number of public IP addresses you can create. If you hit this limit, you can request a quota increase through the Azure Portal by opening a support ticket.


Final Thoughts on Network Design

As you progress in your Azure journey, you will find that networking is often the first thing that goes wrong in a complex deployment, but it is also the most rewarding to master. When you understand how traffic flows—from the public internet, through your load balancers, into your subnets, and finally to your VMs—you gain the ability to troubleshoot almost any issue that arises.

Do not fear the complexity. Instead, embrace the tools that Azure provides. Use the documentation, experiment in a sandbox environment, and always keep your security posture at the front of your mind. A well-designed network is a quiet network; if you have done your job correctly, your resources will communicate smoothly, securely, and predictably, allowing you to focus on building the applications that actually drive value for your users.

Not read yet

Each section gets a ✓ as you scroll through it. Tap the button to jump to the next one.