Skip to main content

Hybrid Networking & Enterprise Connectivity

What You’ll Learn

By the end of this chapter, you’ll understand:
  • What hybrid networking actually is (connecting your office to Azure)
  • The difference between VPN and ExpressRoute (and when to use each)
  • How Virtual WAN simplifies complex network architectures
  • How to control traffic flow with routing and secure access with Bastion
  • Real costs and common mistakes that can cost you thousands

Introduction: What is Hybrid Networking?

Start Here if You’re Completely New

Imagine you run a company with:
  • An office building with servers, databases, and employee computers
  • Azure cloud where you’re building new applications
The Problem: How do these two worlds talk to each other securely? Real-World Analogy: Think of it like building a bridge between two islands:
  1. Island A = Your office (on-premises datacenter)
  2. Island B = Azure cloud
  3. The Ocean = The public internet (dangerous, anyone can intercept your traffic)
You have two options for the bridge: Option 1: VPN (Virtual Private Network) = Build a bridge OVER the ocean
  • Uses the public internet (the ocean)
  • Encrypts your traffic (armored truck on the bridge)
  • Cheaper ($140/month for 650 Mbps)
  • Less reliable (depends on internet quality)
Option 2: ExpressRoute = Build a private TUNNEL under the ocean
  • Bypasses the public internet entirely
  • Dedicated fiber cable just for you
  • More expensive ($1,627/month for 1 Gbps)
  • More reliable (99.95% SLA)

Why This Matters: Real Cost of Getting It Wrong

Case Study: Healthcare Company VPN Incident (2021) A healthcare company chose VPN for production workloads to save money:
  • The Setup: Site-to-Site VPN ($140/month)
  • The Problem: VPN bandwidth maxed out at 650 Mbps
  • The Incident: During peak hours, doctors couldn’t access patient records in Azure
  • The Cost: 4-hour outage, $2.3M in delayed procedures
  • The Fix: Migrated to ExpressRoute ($1,627/month)
  • The Lesson: 1,487/monthsavingscostthem1,487/month savings cost them 2.3M
The ROI Math:
  • Cost to do it right: 1,627/month×12=1,627/month × 12 = **19,524/year**
  • Cost of doing it wrong: $2.3M in one incident
  • ROI: 117x return on investment

For most enterprises, the cloud isn’t an island—it’s an extension of their on-premises datacenter.

1. Connecting to On-Premises

Understanding the Two Connection Types (From Absolute Zero)

Before we dive into the technical details, let’s understand what problem we’re solving: The Scenario: You’re a developer working from home, and your company has:
  1. A corporate office with servers and databases
  2. Azure cloud with applications and data
  3. Developers working remotely who need access to both
How do you connect all these pieces securely? Two Different Connection Types:

Point-to-Site (P2S): Individual Remote Access

The Analogy: Like a personal security escort for one person. Example:
Use Cases:
  • Developer working from home needs to access Azure resources
  • IT admin connecting to troubleshoot
  • Remote employee accessing internal systems
Real Numbers:
  • Cost: ~$140/month (VpnGw1 SKU)
  • Supports: Up to 10,000 concurrent connections
  • Speed: Up to 650 Mbps per gateway

Site-to-Site (S2S): Office-to-Cloud Connection

The Analogy: Like a private highway between two buildings. Example:
Use Cases:
  • Entire corporate office needs access to Azure
  • On-premises servers need to sync with Azure databases
  • Hybrid applications spanning both environments
Real Numbers:
  • Cost: ~$140/month (VpnGw1 SKU) + your office VPN device
  • Always-on connection
  • Speed: Up to 650 Mbps-10 Gbps (depending on SKU)

VPN Gateway (Deep Dive)

What It Is: Encrypted tunnel over the public internet. How It Works (Simplified):
  1. Your office sends data to Azure
  2. VPN Gateway encrypts it (like putting it in a locked box)
  3. Data travels over the public internet (but encrypted)
  4. Azure VPN Gateway decrypts it (unlocks the box)
  5. Data reaches your Azure resources
The Trade-Off:
  • Cheaper ($140/month)
  • Easy to set up (takes 30 minutes)
  • Slower (depends on your internet speed)
  • Less reliable (if your internet goes down, VPN goes down)
Types:
  1. Point-to-Site (P2S): For individual developers working remotely. Connects your laptop to Azure.
  2. Site-to-Site (S2S): Connects an entire office to Azure. Uses an IPsec/IKE VPN tunnel.
SKU Selection: Decision Tree: Which VPN SKU Do I Need?
Common Mistake #1: Using Basic SKU for Production The Trap:
  • Developer creates VPN Gateway
  • Chooses “Basic” to save money (27/monthvs27/month vs 140/month)
  • Works fine in testing
  • Problem: Basic SKU doesn’t support BGP (Border Gateway Protocol)
  • Impact: Can’t automatically failover when connection drops
Real Example:
  • Company saved $113/month using Basic SKU
  • VPN connection failed during business hours
  • No automatic failover (BGP missing)
  • 6-hour manual recovery
  • Cost: $450K in lost productivity
  • Lesson: 113/monthsavingscostthem113/month savings cost them 450K

ExpressRoute (The Premium Option)

What It Is: Private, dedicated fiber connection. Traffic never touches the public internet. The Analogy: Imagine you’re moving gold bars between buildings: VPN = Armored truck driving on public roads
  • Anyone can see the truck (even if they can’t open it)
  • Depends on traffic conditions
  • Slower, less predictable
ExpressRoute = Private underground tunnel
  • Nobody knows you’re moving gold
  • Dedicated path, no traffic
  • Faster, more predictable
How It Works (Simplified):
  1. Microsoft partners (like AT&T, Verizon, Equinix) install a dedicated fiber cable
  2. One end connects to your office
  3. Other end connects to Azure datacenter
  4. Your data travels on this private cable (never touches public internet)
The Numbers: Hidden Costs:
  • Circuit fee (above)
  • ExpressRoute Gateway (213213-3,105/month)
  • Outbound data (if not unlimited plan)
  • Partner setup fees (1,0001,000-5,000 one-time)
Total Cost Example (1 Gbps):
Benefits:
  • Security: Private link, never touches public internet
  • Reliability: SLA up to 99.95% (without internet fluctuations)
  • Speed: Up to 100 Gbps (Direct)
  • Predictable Latency: Consistent performance (no “internet weather”)
  • Compliance: Meets strict regulatory requirements (HIPAA, PCI-DSS, FedRAMP)
Decision Tree: VPN or ExpressRoute?
Real-World Comparison:
[!WARNING] Gotcha: ExpressRoute Cost You pay for the Circuit (monthly flat fee) AND the Gateway (hourly fee) AND Outbound Data (unless you have an Unlimited plan). It is significantly more expensive than VPN. Example Surprise Bill:
  • Circuit: $1,627/month (expected)
  • Gateway: $213/month (forgot about this!)
  • Outbound data: $350/month (forgot about this too!)
  • Total: 2,190/monthinsteadofexpected2,190/month instead of expected 1,627/month
Common Mistake #2: ExpressRoute for Dev/Test The Trap:
  • Team reads “ExpressRoute is better than VPN”
  • Deploys ExpressRoute for dev environment
  • Cost: $1,875/month for rarely-used connection
Better Approach:
  • VPN for Dev/Test ($140/month)
  • ExpressRoute only for Production ($1,875/month)
  • Savings: 1,735/month=1,735/month = 20,820/year
Hybrid Connectivity

2. Azure Virtual WAN (vWAN)

Understanding Virtual WAN (From Absolute Zero)

The Problem It Solves: Imagine you have:
  • 5 offices around the world (New York, London, Tokyo, Sydney, Mumbai)
  • 10 Azure VNets (Production, Dev, Test, etc.)
  • Remote workers connecting from home
Without Virtual WAN:
With Virtual WAN:
The Analogy: Without Virtual WAN = Managing your own airport
  • You build runways (VPN gateways)
  • You create flight paths (routing tables)
  • You manage air traffic control (routing)
  • Result: Complex, expensive, error-prone
With Virtual WAN = Using a managed airport service
  • Microsoft builds the runways
  • Microsoft manages flight paths
  • Microsoft handles air traffic control
  • Result: Simple, automated, reliable

Virtual WAN Components (Simplified)

1. Virtual Hub = The central airport
  • Location: One per Azure region
  • Connects: Offices, VNets, remote users
  • Routing: Automatic
2. Hub VNet Connections = Airplane gates
  • Connects your VNets to the hub
  • Automatic routing between VNets
3. Site-to-Site VPN = International flights
  • Connects offices to Azure
  • Up to 20 Gbps aggregate throughput
4. Point-to-Site VPN = Private jets
  • Connects remote workers
  • Up to 100,000 concurrent users
5. ExpressRoute = Private runways
  • Dedicated connections for high-traffic routes

Virtual WAN: “Hub-and-Spoke as a Service”

Instead of managing your own Hub VNet with complex peering and routing tables, Microsoft manages the Hub for you. Capabilities:
  • Automated Site-to-Site VPN
  • Automated P2S User VPN
  • ExpressRoute integration
  • Transit Routing (Spoke-to-Spoke, Spoke-to-Branch)
  • Integrated Azure Firewall
[!TIP] Jargon Alert: Transit Routing In standard peering, Spoke A cannot talk to Spoke B directly. In Virtual WAN, all spokes can talk to everything (if you allow it) because the vHub acts as a super-router. Visual Example:
Real Cost Comparison: Scenario: 3 offices + 10 VNets + 500 remote workers Decision Tree: Do I Need Virtual WAN?
Common Mistake #3: Virtual WAN for Simple Setups The Trap:
  • Single office connecting to single VNet
  • Developer reads “Virtual WAN is best practice”
  • Deploys Virtual WAN
  • Cost: $870/month
Reality:
  • Simple VPN Gateway would cost $140/month
  • Waste: 730/month=730/month = 8,760/year
The Rule:
  • < 3 connections = Use standard VPN
  • ≥ 4 connections = Use Virtual WAN
Virtual WAN Architecture

3. User Defined Routes (UDR)

Understanding Routing (From Absolute Zero)

The Analogy: Imagine you live in a neighborhood with:
  • Your house (VM in Subnet A)
  • Friend’s house (VM in Subnet B)
  • Grocery store (Internet)
  • Security checkpoint (Azure Firewall)
Default Routing (System Route):
Azure automatically knows how to route traffic. Everything works. Problem: Your company wants all internet traffic inspected by the firewall (for security). Solution: User Defined Route (UDR)
You’re overriding the default route to force traffic through the firewall.

How UDR Works (Step-by-Step)

Before UDR:
After UDR:

Routing Table Priority (Most Specific Wins)

Azure checks routes in this order: Priority Ranking:
  1. User Defined Route (UDR) - You create these manually
  2. BGP Route - Learned from ExpressRoute/VPN
  3. System Route - Azure’s default routing
Example: You have these routes: Traffic to 10.5.20.5:
The Rule: Most specific prefix wins (bigger number after / = more specific)
  • /32 beats /24 beats /16 beats /8 beats /0

Common UDR Scenario: Force All Internet Traffic Through Firewall

Goal: Inspect all outbound internet traffic for security. Step-by-Step: 1. Create Route Table
2. Add Rule: Send All Internet Traffic to Firewall
Translation:
  • 0.0.0.0/0 = All internet traffic
  • VirtualAppliance = Azure Firewall
  • 10.0.1.4 = IP address of your firewall
3. Associate Route Table with Your Subnets
Result:
[!WARNING] Gotcha: Asymmetric Routing If your request goes out via Azure Firewall but the return traffic comes back via ExpressRoute bypass, the firewall will drop the packet (it didn’t see the SYN). Ensure traffic flows symmetrically! Visual Example of the Problem:
The Fix: Ensure BOTH directions use the same path:
Common Mistake #4: Forgetting to Update Route Tables The Trap:
  • Deploy new subnet
  • Forget to associate route table
  • Internet traffic bypasses firewall
  • Security Risk: Unmonitored traffic
Real Example:
  • Company had UDR forcing traffic through firewall
  • Developer created new subnet for testing
  • Forgot to associate route table
  • Malware infected test VM, spread to production
  • Cost: $1.2M breach (could have been prevented with proper routing)
The Fix:
  • Use Azure Policy to auto-associate route tables with new subnets
  • Regular audits of subnet configurations

4. Azure Bastion

Understanding Azure Bastion (From Absolute Zero)

The Problem: You have a VM in Azure that you need to access (RDP for Windows, SSH for Linux). Traditional Approach (DANGEROUS):
Real Incident: Open RDP Port (2022) A company left RDP port open to the internet:
  • Day 1: VM deployed with public IP
  • Day 2: 47,000 brute-force login attempts
  • Day 3: Attackers gained access (weak password)
  • Day 7: Ransomware encrypted entire network
  • Cost: $4.2M in ransom + recovery
  • Prevention Cost: $140/month for Azure Bastion
ROI: Spending 140/monthcouldhavesaved140/month could have saved 4.2M (30,000x return)

How Azure Bastion Works (Simplified)

The Analogy: Without Bastion = Your house has a door facing the street
  • Anyone can walk up and try to break in
  • 24/7 exposure to criminals
With Bastion = Your house is inside a gated community
  • Must go through security checkpoint first
  • Security guards (Azure) verify identity
  • Then you get access to your house

Azure Bastion: The Secure Solution

What It Is: A secure jump box managed by Microsoft. How It Works:
Step-by-Step:
  1. You open Azure Portal in browser (HTTPS, port 443)
  2. Click “Connect” → “Bastion” on your VM
  3. Bastion creates secure tunnel
  4. VM has NO public IP, NO open ports
  5. You access VM via browser (no RDP client needed!)

Why Use Azure Bastion?

Benefits: No Public IPs needed on your VMs (hackers can’t find them) ✅ No TCP 3389/22 open to the internet (no attack surface) ✅ TLS 443: Access via your web browser (Portal) ✅ No VPN needed: Works from anywhere ✅ Centralized access: All connections logged and audited ✅ No software: No need to install RDP/SSH clients Cost Comparison: Decision Tree: How Should I Access My VMs?

Azure Bastion Requirements

Technical Requirements:
  1. Dedicated subnet named AzureBastionSubnet
    • Must be exactly this name (Azure enforces it)
    • Minimum size: /27 (32 IP addresses)
    • Recommended: /26 (64 IP addresses) for scalability
  2. Public IP (Standard SKU) for the Bastion host itself
    • Note: Bastion has public IP, NOT your VMs
    • This is the entry point (hardened by Microsoft)
  3. VNet where your VMs live
Setup Example:
Cost: 140/month(720hours×140/month (720 hours × 0.19/hour)

Using Azure Bastion (Step-by-Step)

Via Azure Portal (Easy):
  1. Navigate to your VM in Azure Portal
  2. Click “Connect”“Bastion”
  3. Enter VM username and password
  4. Click “Connect”
  5. Browser opens with RDP/SSH session ✅
Via Native Client (Advanced):
[!NOTE] Deep Dive: Bastion Native Client You can now use your local native SSH/RDP client (terminal/mstsc) to tunnel through Bastion using the Azure CLI: az network bastion tunnel Benefits:
  • Use your favorite SSH/RDP client
  • Copy/paste works better
  • Better performance than browser

Common Mistake #5: Wrong Subnet Name

The Trap:
  • Create subnet named “BastionSubnet” (logical, right?)
  • Try to deploy Bastion
  • Error: “Subnet must be named AzureBastionSubnet”
The Rule:
  • MUST be exactly AzureBastionSubnet (case-sensitive)
  • Azure enforces this strictly

Common Mistake #6: Bastion for Every VNet

The Trap:
  • Deploy Bastion in every VNet ($140/month each)
  • 10 VNets = $1,400/month
  • Waste: $1,260/month
Better Approach:
  • Deploy Bastion in Hub VNet ($140/month)
  • Peer all Spoke VNets to Hub
  • Use single Bastion for all VMs
  • Savings: 1,260/month=1,260/month = 15,120/year
The Architecture:

Interview Deep-Dive

Strong Candidate Answer:
  • Immediate diagnosis: First, I would check the VPN Gateway metrics in Azure Monitor — specifically “Gateway S2S Bandwidth” and “Tunnel Egress/Ingress Bytes.” If the VpnGw1 SKU is deployed, the maximum bandwidth is 650 Mbps. At 95% utilization, that is 617 Mbps, and packet drops begin at around 90% due to TCP congestion control backing off. The gateway does not fail gracefully — it degrades silently.
  • Short-term fix (same day): Resize the VPN Gateway from VpnGw1 (140/month)toVpnGw2AZ(140/month) to VpnGw2AZ (361/month) which doubles bandwidth to 1 Gbps and adds zone redundancy. Gateway resizing takes 20-45 minutes and causes a brief disconnection, so schedule it during a maintenance window. This buys time while planning the long-term fix.
  • Long-term assessment: 95% utilization on a VPN suggests the workload has outgrown VPN entirely. For healthcare with HIPAA requirements, I would recommend ExpressRoute with a 1 Gbps circuit ($1,627/month). The arguments: predictable sub-10ms latency (VPN latency varies 20-100ms depending on internet conditions), 99.95% SLA (vs 99.9% for VPN), and compliance teams prefer private connectivity for PHI (Protected Health Information).
  • The hybrid approach if budget is tight: Keep the VPN as a backup failover path and deploy ExpressRoute as the primary. This gives you redundancy — if ExpressRoute goes down (rare but it happens during provider maintenance), traffic fails over to VPN automatically via BGP route preference. Total cost: 1,627+1,627 + 361 = $1,988/month for production-grade hybrid connectivity.
  • What most people miss: Before spending on ExpressRoute, analyze what traffic is crossing the VPN. If 70% of the bandwidth is backup traffic or large file transfers, move those to Azure Site Recovery or Azure Data Box instead of pushing them over the VPN. This might reduce VPN utilization to 30% without any gateway changes.
Follow-up: The CFO says ExpressRoute is too expensive at $19,524/year. How do you justify it?I would calculate the cost of the incident they already experienced. If doctors could not access patient records for 4 hours during peak, that translates to delayed procedures, potential patient safety risk, and HIPAA violation exposure (fines of 100100-50,000 per violation). One 4-hour outage affecting 50 doctors is 200 person-hours of lost productivity at 300/hourloadedcost=300/hour loaded cost = 60,000 in a single incident. ExpressRoute at $19,524/year is a 3x return on a single incident prevention. For healthcare, I would also add the reputational and regulatory risk: a HIPAA audit finding of “inadequate network controls for PHI transmission” carries fines that dwarf the ExpressRoute cost.
Strong Candidate Answer:
  • What asymmetric routing is: The outbound request takes Path A (through Azure Firewall) but the inbound response takes Path B (bypassing the Firewall). The Firewall sees a response packet (TCP ACK) for a connection it never saw the initial SYN for, so it drops the packet as suspicious.
  • The classic scenario: You have a UDR on your application subnet that sends 0.0.0.0/0 (all internet traffic) through Azure Firewall. The outbound path works: VM sends request to API on the internet, Firewall inspects and forwards it. But the response comes back via ExpressRoute (because BGP advertises a more specific route for your IP range), bypassing the Firewall entirely. The Firewall drops the unsolicited return packet.
  • Why it fails technically: Azure Firewall is stateful. It maintains a connection table (5-tuple: source IP, source port, dest IP, dest port, protocol). When the SYN goes through the Firewall, it creates a table entry. When the ACK comes back through a different path, the Firewall has no matching entry and drops it. The client sees a connection timeout.
  • Prevention patterns: (1) Ensure UDRs are applied symmetrically — if outbound goes through Firewall, force inbound return traffic through Firewall too by applying UDRs on the GatewaySubnet. (2) For ExpressRoute scenarios, use route tables on the GatewaySubnet that point internal Azure subnets back through the Firewall. (3) Use Azure Firewall’s forced tunneling mode if all internet-bound traffic must go through an on-premises firewall first. (4) Enable Azure Firewall SNAT for all traffic so the source IP is the Firewall’s IP, ensuring responses naturally return to the Firewall.
  • Debugging approach: Use Network Watcher Connection Troubleshoot and Packet Capture. The telltale sign is that the TCP handshake (SYN) completes one way but the ACK never arrives. NSG flow logs will show the outbound SYN allowed but no corresponding inbound ACK.
Follow-up: How would you detect asymmetric routing before it causes production issues?I would add a smoke test in the CI/CD pipeline that deploys a test VM in each subnet, makes outbound HTTPS calls to known endpoints, and verifies the response. Run traceroute from the VM to confirm the path goes through the Firewall (you should see the Firewall’s private IP as a hop). In Azure Monitor, set up an alert on Azure Firewall’s “SNAT port utilization” and “Application rules hit count” — if the hit count drops to zero while traffic should be flowing, something is bypassing the Firewall.
Strong Candidate Answer:
  • What is wrong: A separate VPN Gateway per office means 10 VPN Gateways at 140/montheach=140/month each = 1,400/month. But worse, you also need VNet peering between all these VNets for inter-office communication, which creates a mesh of 45 peering connections (n*(n-1)/2). Each peering adds routing complexity, and spoke-to-spoke traffic does not work through peering by default, so you need UDRs on every subnet. This is a management nightmare that will break during the first network change.
  • The correct approach for 10+ branches: Azure Virtual WAN with a single Virtual Hub. Deploy one vWAN hub per region. Each branch office creates a single S2S VPN tunnel to the hub. The hub automatically routes traffic between all branches and all connected VNets. Cost: approximately 180/monthforthehub+180/month for the hub + 140/month for the integrated VPN gateway + peering costs. Total around 400/monthvs400/month vs 1,400/month for separate gateways, with massively reduced operational complexity.
  • If the company already has SD-WAN appliances: vWAN integrates natively with major SD-WAN vendors (Cisco Viptela, VMware, Barracuda). The branch offices’ existing SD-WAN appliances can auto-discover and connect to the vWAN hub without manual IPsec tunnel configuration.
  • The scaling advantage: Adding branch #11 with vWAN takes 15 minutes (configure the VPN device, point it at the hub). Adding branch #11 with the separate-gateway approach requires a new VNet, new gateway, 10 new peering connections, and route table updates across all existing VNets.
Follow-up: Three of the 10 offices are in regions where Azure Virtual WAN is not available. How do you handle this?For offices in regions without vWAN support, I would deploy a standard VPN Gateway in the nearest supported region and use the branch office’s internet connection to reach it. The latency increase from routing to a nearby region (typically 10-30ms extra) is acceptable for most workloads. Alternatively, if those offices have ExpressRoute-capable ISPs, use an ExpressRoute circuit to the nearest Azure region with vWAN support and connect the circuit to the vWAN hub. The key principle is to maintain vWAN as the central routing fabric and treat the non-supported regions as edge cases, not exceptions that justify abandoning the architecture.