4
votes

I have created 2 VMs in the same Virtual Network within the same Cloud Service. They do not have public endpoints. I would like to have the VMs be able to recognize each other as if they are on a local network. For example, I'd like to be able to reference them by machine names using \\ syntax, e.g. on VM1, I'd like to be able to access \\VM2_host_name\shared_folder. Can someone please provide me the steps to configure my VMs to enable this scenario.

Notes: I tried referencing them by their internal IP addresses, and also enabled ICMP traffic in the Windows Firewall. I even entirely turned off the firewalls for both machines just to test. No luck. I can't ping these machines either by host name or IP address from the other machine even without firewall. I have also reviewed similar sounding questions such as (Azure VMs Virtual Network inter-communication) but to no avail.

More Information:

From VM_A (internal IP 10.0.0.5), I'm trying to communicate with VM_B (internal IP 10.0.0.4). Both VMs belong to the same cloud service "MyCloudServiceName". For this test, I also turned off their firewalls just reduce the variables at play.

C:\Users\Matt>NSLookup VM_B
Server:  UnKnown
Address:  168.XX.XXX.XX

Non-authoritative answer:
Name:    VM_B.MyCloudServiceName.hX.internal.cloudapp.net
Address:  10.0.0.4


C:\Users\Matt>ping VM_B

Pinging VM_B.MyCloudServiceName.hX.internal.cloudapp.net [10.0.0.4] with 32 bytes of data:
Reply from 10.0.0.5: Destination host unreachable.
Reply from 10.0.0.5: Destination host unreachable.
Reply from 10.0.0.5: Destination host unreachable.
Reply from 10.0.0.5: Destination host unreachable.

Ping statistics for 10.0.0.4:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)

So what I can tell is that the DNS resolution is working. But the machines are still isolated from each other even within the same cloud service.

Note that my actual scenario is I have an ASP.NET Web API self hosted on a service running on one machine which I'd like to be able to access from the other in the same cloud service internally.

2

2 Answers

3
votes

We had a similar issue and it was due to the Checksum Offload of the Network Adapters. Thanks to Microsoft Azure Support for helping us diagnose the issue.

The simple fix is to run this on every machine then do a quick reboot:

Disable-NetAdapterChecksumOffload * -TcpIPv4

Here is an article describing the problem in more details: http://systemscentre.blogspot.com.au/2013/05/problems-clustering-virtual-machines-on.html

0
votes

PING may not work as its often disabled in network environments. So I would suggest an NSLookup to verify it is able to resolve the location of the other server.

If both VMs are already in the same cloud service, virtual network should not be necessary as Azure provides basic DNS resolution within that cloud service boundary. By doing a NSLookup -all on each server, you should be able to identify the names they are currently using.

Once you've verified that they can resolve each other, you shouldn't have any other issues getting them to address each other providing you're not using an unsupported protocol (such as UDP multi-cast).