Purpose
Locate the failed layer
Determine whether evidence first diverges at Azure resource state, addressing, policy, routing, an intermediary, DNS, the guest firewall, or the application listener.
Azure / Virtual machines / Connectivity / Investigation
Define the traffic flow, compare Azure control-plane evidence with the guest operating system, and find the earliest point where observed behavior diverges from the expected path. This is an investigation guide, not a connectivity repair or Azure deployment procedure.
Purpose
Determine whether evidence first diverges at Azure resource state, addressing, policy, routing, an intermediary, DNS, the guest firewall, or the application listener.
Boundary
No NSG, route, IP, firewall, load balancer, DNS, appliance, guest, credential, or Azure role is changed by this guide.
Example
KrippyTech Lab, rg-krippytech-lab, and LAB-VM-01 are documentation-safe placeholders.
Method
Record source, destination, protocol, port, direction, UTC time, and expected path before interpreting any control.
1 · Investigation question
Identify the exact traffic flow that failed, establish which Azure and guest controls should affect it, and record the earliest layer where the evidence stops matching the expected design.
Separate RDP, SSH, application ports, internet egress, private service access, hybrid traffic, and load-balanced traffic. They can follow different paths.
Compare source and destination state, IP placement, effective policy, effective route, intermediary health, DNS, guest policy, and listener evidence.
Determine whether one source, one VM, one subnet, one frontend, one region, or every comparable path is affected.
A single successful or failed test rarely proves which layer owns the symptom. Preserve uncertainty until independent evidence agrees.
2 · Common symptoms
RDP or SSH cannot reach the VM, or Azure shows the VM as running while the guest or management service remains unreachable.
An application port, internal service, or load-balanced frontend is unavailable even though some other traffic succeeds.
One VM cannot reach another, or connectivity succeeds from one subnet but fails from another.
The VM cannot reach the internet, a VPN or ExpressRoute path behaves unexpectedly, or a route appears to use the wrong appliance.
Private connectivity works while public access fails, or a public path works while an internal service or private endpoint does not.
A hostname returns an unexpected address, connectivity is intermittent, or failures cluster around a specific source, destination, or change window.
3 · Boundaries and safety
Use only accounts and diagnostic operations authorized for the affected resources. Viewing a resource is not the same permission as running a Network Watcher diagnostic action. Microsoft documents specific actions for each capability; do not assume the Reader role is sufficient.
Keep the layers separate. Azure fabric, effective network policy, routing, intermediaries, guest firewall, and application listener are distinct evidence sources.
A broad allow rule is not an acceptable diagnostic shortcut. Do not open RDP or SSH to the internet, disable a guest firewall, or bypass an appliance to make a test pass.
Network Watcher diagnostics can generate test traffic and require regional service availability and RBAC permissions. Obtain authorization before running them. Packet capture is deliberately excluded because it may collect sensitive traffic and create diagnostic resources.
4 · Define the flow
Record the exact attempted flow before reviewing controls. If the symptom is intermittent, record both a failed attempt and a comparable successful attempt.
| Field | Synthetic example | Why it matters |
|---|---|---|
| Source resource or device | ADMIN-WS-01 | Identifies the starting policy, route, and network context. |
| Source IP | 10.20.4.25 | Required for NSG, appliance, hybrid, and return-path analysis. |
| Destination resource | LAB-VM-01 | Connects the test to the correct NIC and guest. |
| Destination | 10.20.8.20 or app.example.com | Distinguishes IP connectivity from name resolution. |
| Protocol and port | TCP 443 | NSGs, probes, listeners, and tests are protocol- and port-specific. |
| Direction | Inbound to LAB-VM-01 | Determines which source, destination, and rule direction to evaluate. |
| UTC timestamp | 2026-08-22T14:00:00Z | Correlates the attempt with logs, health, and changes. |
| Expected path | ADMIN-WS-01 → peering → subnet-workloads → nic-lab-vm-01 | Provides a hypothesis that evidence can confirm or reject. |
| Path type | Private and peered | Public, private, hybrid, load-balanced, and appliance-routed flows have different dependencies. |
| Scope and frequency | Constant; one source subnet | Separates a path-specific failure from a destination-wide failure. |
5 · Initial evidence
Scope
Record subscription KrippyTech Lab, resource group rg-krippytech-lab, VM LAB-VM-01, region, guest OS, and accountable workload owner.
Compute
Record resource existence, provisioning state, power state, Resource Health or platform-health evidence, guest responsiveness, expected service, and port.
Interface
Record nic-lab-vm-01, primary and secondary IP configurations, private IP allocation, public IP association if present, accelerated networking, and IP forwarding state.
Network
Record vnet-lab, subnet-workloads, address prefixes, peering, route-table association, custom DNS, VPN, ExpressRoute, and private-endpoint involvement.
Policy
Record NSGs on the NIC and subnet, Application Security Groups, effective security rules, and any Azure Virtual Network Manager security admin rules.
Intermediaries
Record load-balancer membership, health probe, Azure Firewall or NVA involvement, user-defined routes, NAT or outbound method, and the expected return path.
Change context
Record relevant Azure Activity Log changes, deployment events, guest changes, application releases, monitoring gaps, and ownership near the failure window.
Test definition
Preserve the exact source, destination, protocol, port, direction, UTC time, result, and whether the test was local, remote, public, private, or load-balanced.
6 · Virtual-machine state
Azure distinguishes provisioning state from power state. Provisioning state describes the latest control-plane operation; power state is the last known instance state. Resource Health, guest responsiveness, and application availability add separate evidence.
The VM resource exists in the expected subscription and resource group. This does not prove that it started successfully or has a working guest.
Succeeded means the last control-plane operation completed. It does not prove that a current application process is healthy.
Running means Azure reports the VM as up. It does not prove that Windows, Linux, RDP, SSH, a firewall, or an application listener is responsive.
Compare Resource Health or platform incidents with guest heartbeat, boot diagnostics already available under authorization, monitoring, and application checks. Do not infer one layer from another.
7 · NIC and IP configuration
From the VM networking view, identify the attached NIC and inspect its IP configurations. Compare the primary configuration, any secondary configurations, private allocation method and address, public IP association, subnet, accelerated networking, and IP forwarding state with the documented design.
Do not change IP allocation, attach a public IP, move the interface, change subnet membership, enable IP forwarding, or edit DNS settings. Multi-NIC and multi-IP systems also require guest route and binding evidence; the first NIC shown is not automatically the path used by the application.
Record whether DNS servers are inherited from the virtual network or explicitly configured on the NIC. Microsoft notes that NIC-level DNS settings take precedence over virtual-network settings. Do not edit adapter DNS settings inside the guest as a substitute for reviewing Azure configuration.
8 · VNet and subnet placement
Confirm that nic-lab-vm-01 is in subnet-workloads, that the IP fits the subnet prefix, and that the VNet, subscription, region, and peering relationships match the intended architecture.
System routes generally provide VNet reachability, but NSGs, security admin rules, guest controls, and appliances can still affect traffic.
Peering carries traffic over Microsoft’s backbone. Review both peering directions, address spaces, NSGs, gateway transit, and service-chaining expectations.
VPN and ExpressRoute introduce gateways, BGP-learned routes, on-premises policy, edge devices, and return-path ownership beyond the VM’s VNet.
Private endpoints add a private NIC, approval state, DNS mapping, subnet controls, and path-specific routing. Escalate when ownership or Private DNS behavior is unclear.
9 · Network security groups
An NSG rule includes direction, priority, source, destination, protocol, source port, destination port, and allow or deny action. Lower numeric priorities are processed first; evaluation stops at the first match. Azure default rules have lower precedence than custom rules.
Check the relevant direction at both ends. An inbound allow does not prove that source egress, return traffic, or a listener is correct.
When NSGs exist on both, traffic must satisfy both layers. Reviewing only nsg-lab-workloads is incomplete if the NIC has another NSG.
Include Azure default rules and Virtual Network Manager security admin rules. An admin Deny or Always allow can terminate evaluation before ordinary NSG rules.
An ASG represents grouped NICs in rule sources or destinations. Confirm actual membership rather than treating an ASG name as proof that the VM is included.
Do not create Any-to-Any rules or expose management ports to the internet. A passing test after a broad exception would not identify the original control and may create unauthorized exposure.
10 · Effective security rules
Network Watcher’s Effective security rules view aggregates inbound and outbound rules applied to a NIC, including rules from NIC and subnet NSGs and applicable security admin rules. Azure generally requires the VM to be running and an NSG to be associated with the NIC or subnet before effective NSG rules are shown.
In the Azure portal, use Network Watcher’s Effective security rules view or the NIC’s effective-security view, depending on the current portal experience. Select the correct subscription, resource group, VM, and NIC. Record expanded source and destination prefixes, priorities, and the responsible rule.
What it proves: the aggregated Azure security and admin rules reported for that NIC at that time.
What it does not prove: route selection, appliance policy, return-path symmetry, DNS correctness, guest firewall behavior, or an application listener.
Permissions: viewing and diagnostic actions require the documented Microsoft.Network permissions. Owner, Contributor, or Network Contributor may satisfy many Network Watcher operations; a custom role must include the capability-specific actions.
11 · Routes and effective routes
Effective routes combine Azure system routes, user-defined routes, and routes propagated through a virtual-network gateway using BGP. For a given destination, Azure uses longest-prefix match; when prefixes are equal, route-source precedence and documented exceptions determine the selected route.
Azure creates routes for the VNet, peering, service endpoints, and default paths. Their presence does not override a more specific applicable path in every scenario.
A UDR can direct traffic to a virtual appliance, virtual-network gateway, internet, or no route. Record the route table, prefix, source, state, and next hop.
VPN or ExpressRoute gateways can propagate on-premises prefixes. Confirm which prefix was learned and whether the expected return route exists.
A 0.0.0.0/0 route to a gateway or appliance can move internet-bound traffic through another control point and affect management return paths.
For a running VM, select its NIC and review Effective routes. Record the matching address prefix, next-hop type, next-hop address when present, route source, and state. Next-hop types can include Virtual network, Virtual network peering, Virtual appliance, Virtual network gateway, Internet, and None.
An unexpected appliance or gateway is an escalation clue, not authorization to add, delete, disable, or replace a route.
12 · Public and private connectivity
Private IP connectivity can use the same VNet, peering, VPN, ExpressRoute, Bastion, a load balancer, or another authorized access path. Public IP connectivity is a separate design choice and exposure boundary.
Validate private addressing, route, policy, peering or hybrid transit, DNS, and the guest listener. No public IP is required for a valid private path.
A public IP association alone does not prove an inbound rule, return path, NAT relationship, guest policy, or listener. Use 198.51.100.24 only as a documentation example.
Bastion and load balancers provide indirect access patterns. Review their frontend, backend, policy, probe, and route evidence rather than expecting a NIC public IP.
Record the explicit egress design: NAT gateway, load-balancer outbound rules, public IP, Azure Firewall, or NVA. For VNet API versions after March 31, 2026, new VNets default to private subnets; older VNets can retain legacy default outbound behavior.
Private endpoints use private IPs for Azure services and commonly depend on Private DNS. DNS returning a private address does not prove that NSGs, routes, firewalls, the service connection state, or the application path are correct.
13 · Load balancers, firewalls, and appliances
Record frontend IP and protocol, load-balancing rule, backend pool membership, health probe protocol and port or path, backend health, and any inbound NAT rule.
A successful probe shows that the configured probe received the expected response from that backend. It does not prove every client path, application transaction, DNS answer, or frontend rule.
Record the expected policy owner, UDR, source and destination translation, rule collection, available logs, and both directions of the path. Do not infer policy from the route alone.
Record NICs, IP forwarding state, UDR next hop, vendor health, policy, logs, high-availability design, and return route. Azure IP forwarding and guest forwarding are separate requirements.
A forward flow and its reply can select different appliances, gateways, or interfaces. Stateful devices can drop a flow even when each individual route looks plausible.
Do not change rules, probes, backend pools, NAT, forwarding, or appliance configuration. Preserve the evidence and route remediation through the owner.
14 · Azure and guest evidence
Use authorized guest access and record access-denied results. These Windows commands read current state; they do not change networking or firewall configuration.
ipconfig /all
route print
Get-NetIPConfiguration -Detailed
Test-NetConnection -ComputerName app.example.com -Port 443 -InformationLevel Detailed
Get-NetTCPConnection -LocalPort 443 -State Listen
Resolve-DnsName -Name app.example.com -Type A -DnsOnly
Get-NetFirewallProfile -PolicyStore ActiveStore
Get-NetFirewallRule -PolicyStore ActiveStore -Enabled True -Direction Inbound |
Where-Object DisplayName -Like '*Remote Desktop*' |
Select-Object DisplayName, Enabled, Profile, Direction, Actionipconfig /all and Get-NetIPConfiguration -Detailed show guest addressing, gateways, interfaces, and DNS-server evidence.route print shows the guest route table; it is not the Azure NIC effective-route table.Test-NetConnection tests the specified TCP destination and reports name, source-interface, route, and connection evidence. Test the required port, not just ping.Get-NetTCPConnection -LocalPort 443 -State Listen asks whether a local TCP listener exists on the synthetic service port. A listener does not prove remote reachability or application health.Resolve-DnsName -DnsOnly avoids LLMNR and NetBIOS fallback. A successful answer does not prove the returned address is intended or the port is reachable.Get-NetFirewallProfile and the focused Get-NetFirewallRule query display active guest policy evidence. Rule properties such as ports and addresses can require associated filter cmdlets for complete interpretation.The Azure path may be allowed while the guest firewall blocks traffic. The guest firewall may allow traffic while no application listens. A local listener may exist while an NSG, route, appliance, load balancer, or return path blocks remote access.
Linux guest evidence should answer the same questions—assigned addresses, routes, resolver configuration, firewall policy, listener, and application health—using commands supported by that distribution. This guide does not prescribe Linux configuration changes.
15 · DNS evidence
When the test uses a hostname, record the queried name, resolver, returned A or AAAA address, TTL when available, source network, UTC time, and whether the answer matches the intended public, private, or hybrid path.
Investigate resolver reachability, suffix and forwarding design, Private DNS links, record existence, and custom DNS health. Do not treat it as an NSG conclusion.
Compare Azure-provided DNS, custom DNS, Private DNS, split-horizon, and caching evidence. A syntactically valid answer can still select the wrong path.
Name resolution succeeded. Continue with policy, route, intermediary, guest firewall, listener, and application evidence.
Azure-provided DNS is scoped and basic; custom DNS, Private Resolver, and Private DNS add forwarding, zone-link, and ownership dependencies.
Ping success or failure is not conclusive application evidence. ICMP behavior must not be generalized to the required TCP or UDP flow.
16 · Network Watcher
Network Watcher is regional and is normally enabled automatically when a VNet is created or updated unless the subscription opted out. Confirm an instance exists in the VM’s region and confirm capability-specific RBAC before running a diagnostic.
| Tool | Question and inputs | What success proves | Limitations and prerequisites |
|---|---|---|---|
| Connection troubleshoot | Can this supported Azure source reach a VM, FQDN, URI, or IP using the tested TCP or ICMP input? | The diagnostic probes completed and Azure reported the tested point-in-time path and findings. | Requires supported source/destination types and capability RBAC. Agentless operation is currently preview; extension requirements can vary. It is not permanent monitoring or full application validation. |
| IP flow verify | Would configured Azure security and admin rules allow or deny this TCP or UDP tuple? | Azure reports allow or deny and the responsible rule for the supplied direction, addresses, protocol, and ports. | Requires Network Watcher in the VM region and IP-flow permissions. It does not test ICMP, routes, appliances, guest firewall, or listeners. |
| Next hop | Which next-hop type, IP, and route-table source apply from this VM to one destination IP? | Azure reports the selected next-hop information for that specific input. | Requires next-hop plus VM and NIC read permissions. It does not prove that the next hop forwards traffic or that the return path is symmetric. |
| Effective security rules | Which aggregated inbound and outbound rules apply to this NIC? | The reported NIC, subnet, and applicable security-admin policy is visible together. | The VM generally must be running and an NSG must be associated. It does not test a live application flow. |
| Effective routes | Which system, UDR, and BGP routes are effective on this running VM’s NIC? | The route inventory and selected prefixes visible to the NIC are recorded. | Available for a NIC attached to a running VM. It does not prove appliance health, guest routes, or return routing. |
| Topology | Which supported Azure resources and relationships appear within the selected scope? | Azure Resource Graph reports the displayed resource relationships. | Requires topology RBAC and supported resource types. Configuration changes can take up to 30 hours to appear; topology is context, not packet-path proof. |
Packet capture can collect sensitive payload or endpoint information and can create diagnostic resources. Escalate when packet-level evidence is required.
17 · Complete network path
18 · Evidence correlation
| Observation | What it may indicate | What it does not prove | Safest next investigation step |
|---|---|---|---|
| VM is running but RDP or SSH fails. | A management-port path, guest service, firewall, route, policy, credential, or application-state issue. | That Azure networking or the guest is healthy. | Define the exact source and port, then correlate effective policy, route, guest listener, firewall, and platform health. |
| IP flow verify reports a deny. | The reported Azure security or admin rule denies the supplied tuple. | That changing the rule is authorized or that no other failure exists. | Preserve the tuple and responsible rule; confirm ownership and expected policy. |
| NSG objects look correct but effective rules differ. | Another NIC, subnet, admin rule, expanded prefix, or ASG membership changes the effective policy. | Which configuration should be modified. | Identify the contributing control and its owner. |
| Effective route points to an unexpected appliance. | A UDR, BGP route, forced tunnel, or service-chaining design is active. | That the appliance is faulty or the route is unauthorized. | Record the matching prefix, route source, next hop, appliance health, and return path. |
| DNS resolves but the port test fails. | Name resolution completed while policy, route, listener, guest firewall, or application evidence diverges later. | End-to-end connectivity or application health. | Test the returned address and required port, then continue down the path. |
| TCP reaches the VM but the application is unavailable. | The network path may be open while protocol, binding, dependency, certificate, or application health fails. | A healthy application transaction. | Correlate listener ownership and application logs without changing configuration. |
| Application listens locally but remote access fails. | A remote policy, route, intermediary, binding address, guest firewall, or return path is involved. | That the listener is reachable from the tested source. | Compare local binding with the destination address and remote flow evidence. |
| Private access works but public access fails. | The private path is valid while public IP, frontend, NAT, policy, return route, or exposure design differs. | That the VM should receive a public IP. | Confirm the approved public-access architecture and its owner. |
| One subnet works while another fails. | Source-specific NSGs, routes, peering, DNS, appliance policy, or return routing differs. | That the destination is universally healthy. | Compare otherwise identical tests from both sources at the same time. |
| Load-balancer health probe fails. | The backend did not satisfy the configured probe because of listener, path, NSG, protocol, port, or application response. | That the backend VM is completely unhealthy. | Match probe configuration, backend membership, effective policy, and local listener evidence. |
| Backend VM is healthy but frontend is unavailable. | Frontend IP, rule, probe, backend association, NAT, policy, or client path can differ. | That Load Balancer delivered the client flow. | Trace frontend-to-rule-to-backend evidence and test the documented frontend tuple. |
| No public IP exists. | The VM may be intentionally private and accessed through Bastion, peering, hybrid, or load balancing. | A misconfiguration or missing internet egress. | Confirm the approved access and outbound design. |
| Public IP exists but connectivity fails. | Association exists while NSG, NAT, route, guest firewall, listener, or application evidence remains incomplete. | That an inbound path or listener exists. | Correlate the public frontend with the private NIC and required port. |
| Azure checks pass but the guest firewall blocks traffic. | Azure fabric delivered or allowed the tested path farther than the guest policy. | Authorization to disable the firewall. | Identify the active profile, responsible rule, policy source, and security owner. |
| Connectivity is intermittent. | Multiple backends, DNS answers, asymmetric paths, SNAT pressure, transient health, appliance state, or application saturation. | That the last successful test represents every path. | Correlate repeated UTC-stamped tests with backend, route, DNS, metric, and log changes. |
| Hybrid connectivity is involved. | Azure plus gateway, BGP, on-premises firewall, carrier, and return-path dependencies affect the flow. | That the Azure NIC is the failing boundary. | Escalate with both endpoint prefixes, effective routes, circuit or tunnel state, and accountable owners. |
19 · Escalation
Preserve the flow definition, UTC timestamps, Azure state, effective policy, routes, diagnostics, guest evidence, and remaining unknowns, then escalate when any of these conditions appears:
A production outage, multiple workloads, widespread intermittent failure, or active business impact is present.
NSG, route, peering, firewall, appliance, load balancer, application gateway, private endpoint, or Private DNS ownership is unknown.
VPN, ExpressRoute, BGP, forced tunneling, asymmetric routing, gateway transit, or on-premises policy is involved.
An Azure platform incident, compromise, unauthorized public exposure, suspicious route or rule, or missing monitoring is suspected.
Packet capture is required, logs are missing, the tested path cannot be reproduced safely, or no verified recovery plan exists.
Any production NSG, route, IP, peering, firewall, appliance, load balancer, DNS, guest, application, credential, role, restart, or redeployment change is required.
Business, application, subscription, network, security, or recovery ownership cannot be verified.
Private endpoint connection state, Private DNS, service-specific policy, or hub-spoke routing requires a specialist determination.
20 · Intentionally excluded
Excluded actions include creating or modifying NSG rules; opening RDP or SSH to the internet; adding or removing public IPs; changing NIC IP configurations or subnet placement; adding, deleting, or changing routes or route tables; enabling IP forwarding; modifying peering, VPN, ExpressRoute, Azure Firewall, or an NVA; changing load-balancer rules, probes, NAT rules, or backend pools; changing Azure DNS or Private DNS; disabling guest firewalls; restarting or redeploying a VM; resetting remote access; deploying Bastion; capturing packets; changing applications or credentials; and granting Azure roles.
Those actions require separate authorization, change control, confirmed ownership, rollback planning, verified recovery readiness, and environment-specific remediation.
21 · Related resources
Topic hub
Place this evidence-first investigation within KrippyTech’s developing Azure foundations, identity, networking, and hybrid learning path.
Open Azure JourneyLearning method
Use the understand, investigate, resolve, and verify sequence while keeping this guide in the investigation phase.
Review the learning pathRelated investigation
Use the domain-health guide when Azure VM connectivity overlaps domain discovery, secure channels, replication, time, or service evidence.
Open the domain-health guideFocused DNS method
Use the published read-only DNS resource for a bounded query after recording the resolver, expected address, and path.
Open the Test-KTDNS tutorialRead-only tooling
Review KrippyTech’s published tooling standards and current read-only release without treating a DNS result as complete network health.
Open the PowerShell LibraryMicrosoft sources