0XC0130016

Fix 0XC0130016: Cluster network not internal

Network & Connectivity Intermediate 👁 0 views 📅 Jun 9, 2026

This error means a cluster network isn't marked for internal use. The quick fix is checking network roles in Failover Cluster Manager. The real fix is usually adjusting the network's cluster role.

30-Second Fix: Check network role in Failover Cluster Manager

Open Failover Cluster Manager, go to Networks in the left pane. Find the network throwing the error. Right-click it, select Properties. Under the General tab, look at the Allow cluster network communication on this network checkbox. Make sure it's checked. Also check the radio buttons below — Use this network for all cluster communication or Use this network for client communication only? If it's set to client only, that's your problem. Change it to All communication (internal + client) or Internal cluster communication only, depending on your setup. Click OK, then run a cluster validation test.

This fixes maybe 40% of cases. If you still see the error, move on.

5-Minute Fix: PowerShell to force the network role

When the GUI doesn't stick or you're dealing with multiple nodes, PowerShell is faster and more reliable. Open PowerShell as Administrator on a cluster node (not a domain controller).

Get-ClusterNetwork

Look at the output. You'll see each network with its Role column. The network causing 0XC0130016 likely shows a Role of 0 (which is "None") or 3 (which is "ClientOnly"). You need Role 1 (InternalClusterCommunicationOnly) or 2 (AllCommunications).

To fix it, identify the cluster network object name, then run:

Get-ClusterNetwork "YourNetworkName" | Set-ClusterNetworkRole -Role InternalClusterCommunicationOnly

Replace YourNetworkName with the actual name from the Get-ClusterNetwork output. If you want the network to also handle client traffic (like a heartbeat + LAN), use -Role AllCommunications instead. After running the command, verify with Get-ClusterNetwork again. The Role should show 1 or 2.

Run a cluster validation and check the error. This resolves another 30% of cases.

15+ Minute Fix: Deep dive — DNS, subnet mismatches, and node isolation

If the error still shows up, the problem isn't just the role setting. It's something deeper. Here's what I've seen cause this:

1. DNS registration issues

The cluster network relies on DNS for node discovery. If nodes can't resolve each other's IPs on that subnet, the cluster won't trust it for internal use. Check the cluster network's DNS settings in the adapter properties. Make sure each node's adapter on that subnet points to the same DNS servers. Run ipconfig /all on each node and compare. Mismatched DNS servers (especially one pointing to a different domain controller) can cause this.

2. Subnet mismatch

All nodes must have the same subnet configured for that network. I've seen a case where one node had a /24 subnet and another had a /16 — the cluster saw them as different networks. Check the subnet mask on each node's adapter. They must match exactly. Fix in Network and Sharing CenterChange adapter settings.

3. Firewall rules blocking cluster traffic

The cluster uses specific ports (UDP 3343, TCP 3343, UDP 1434, TCP 135, and ICMP for heartbeats). If Windows Firewall or a third-party firewall is blocking these on that network adapter, the cluster can't use it for internal communication. Temporarily disable the firewall on that adapter (not the other adapters) and see if the error clears. If it does, create firewall rules to allow cluster traffic. Use netsh advfirewall firewall add rule or Group Policy.

4. Node isolation due to routing

In multi-subnet clusters (stretched clusters or sites), the cluster network might span different physical subnets. If routing between those subnets isn't working correctly, the cluster can't establish internal communication. Run ping -n 4 between all nodes on that network's IPs. If any fail, check routing tables with route print. Add a persistent route if needed.

5. Cluster log analysis

Pull the cluster logs with:

Get-ClusterLog -Destination C:\ClusterLogs -TimeSpan 5

Open the resulting .log files in Notepad or a log viewer. Search for 0xC0130016 or NETWORK_NOT_INTERNAL. Look at the context around those lines. You'll often see a Node: X reference pointing to which node reported the issue. Also look for DNS or Heartbeat failures nearby. That tells you where to start.

6. Network adapter priority

The cluster chooses the network with the highest metric for internal communication. If you have multiple adapters, make sure the one you want for internal use has the lowest metric (highest priority). Use Get-ClusterNetwork and check the Metric column. Lower values are preferred. You can't change the metric directly in the GUI — use PowerShell:

Get-ClusterNetwork "YourNetworkName" | Set-ClusterNetwork -Metric 200

Set a lower metric (like 100) for the network you want as primary, and higher metrics (like 1000) for others.

When to rebuild the network configuration

If all else fails — and I mean all else — destroy and recreate the cluster network role. This is rare but sometimes the cluster database gets corrupted for that network. Here's the nuclear option:

Stop-ClusterNode -Name "Node1" -Force
Stop-ClusterNode -Name "Node2" -Force
Start-ClusterNode -Name "Node1"
Start-ClusterNode -Name "Node2"
Get-ClusterNetwork | Remove-ClusterNetwork

Then add the networks back via Add-ClusterNetwork. But honestly, this should be your last resort. Try the other steps first. Pro tip: Before nuking, check if the cluster network name has spaces or special characters. Rename it to something simple like Heartbeat or ClusterInternal in the GUI and re-run validation. That alone has fixed it for me twice.

One last thing — don't bother disabling IPv6 on the cluster adapters. It rarely helps and can actually break cluster functionality. Leave IPv6 enabled.

Was this solution helpful?