Advanced · Inside the VM · 24 of 32

App is up, but Spoke 2 can't reach it

Problem

vm-spoke2 can't reach the app on vm-spoke1 at 443.

Your job
  • Get vm-spoke2 reaching the app on vm-spoke1 (443) through fw-hub
Without breaking
  • Keep UFW running on vm-spoke1broken
  • Keep SSH from vm-spoke2 to vm-spoke1 blockedbroken
  • Don't peer the spokes to each otherbroken
Background

"nginx is running and answers locally," says the app team. Still, since the hub was rebuilt, vm-spoke2 can't reach the app on vm-spoke1 at 443. Spoke-to-spoke traffic goes through fw-hub at 10.0.2.4. The spokes aren't peered to each other. SSH to vm-spoke1 is for the hub's admins only, and UFW stays on.

How to work it
  1. 1See it fail

    Prove the problem yourself before you change anything. Reports are often wrong.

    VM commands forVMs: Linux
    1. ssh vm-spoke2
      What's this?

      Opens a shell on vm-spoke2, so the next commands run on that VM. In this lab it's a shortcut. In real Azure you'd connect through something like Azure Bastion, or SSH to an address you can reach.

    2. nc -zv 10.1.1.4 443
      What's this?

      netcat, a standard Linux tool. Tries to open a TCP connection and reports whether it worked.

      • -z only check whether the port answers. Send no data
      • -v print the result in words
      • 10.1.1.4 where to connect
      • 443 the port to try

    Ticks off when the test runs on vm-spoke2.

  2. 2Find where it stops
  3. 3Name the cause
  4. 4Fix it and test again
  5. 5Explain it
Sources on Microsoft Learn (5)
0/2 changes
Network map
?
  • Resource group, the outer dashed frame
  • Virtual network, with its address space top right
  • Subnet, with range and usable IPs (5 reserved)
  • Network security group. A small shield on a VM's NIC means the NIC has one too
  • Route table on the subnet
  • NICVM Appliance Private endpoint
  • Peering Connected Initiated or access off
  • Goal working Goal broken, X marks where it stops
  • Private DNS zone, dotted lines go to linked VNets
  • Orange pulse: what your last command changed. Drag to pan, Ctrl and scroll to zoom.
Resource grouprg-labvnet-spoke1: tap to inspectVirtual networkvnet-spoke110.1.0.0/16subnet-app: tap to inspectsubnet-app10.1.1.0/24 · 251 usablert-spoke1vm-spoke1 10.1.1.4: tap to inspectNICvm-spoke110.1.1.4vnet-hub: tap to inspectVirtual networkvnet-hub10.0.0.0/16subnet-fw: tap to inspectsubnet-fw10.0.2.0/24 · 251 usablefw-hub 10.0.2.4: tap to inspectfw-hub10.0.2.4vnet-spoke2: tap to inspectVirtual networkvnet-spoke210.2.0.0/16subnet-app: tap to inspectsubnet-app10.2.1.0/24 · 251 usablert-spoke2vm-spoke2 10.2.1.4: tap to inspectNICvm-spoke210.2.1.4Connected: tap to inspectpeeredConnected: tap to inspectpeered:443 ✗
  • vm-spoke2 → vm-spoke1:443should work: not working
  • vm-spoke2 → vm-spoke1:22should stay blocked: blocked
Goals 0/5
Cloud Shell · bashVMs: Linuxrg-lab · eastus2
cloudshell:~$