在同一虚拟网络上的Azure VM之间进行简单的内部通信

时间:2014-02-19 14:29:10

标签: azure

我在同一个Cloud Service中的同一个虚拟网络中创建了2个VM。他们没有公共端点。我希望VM能够相互识别,就像它们在本地网络上一样。例如,我希望能够使用\\语法通过机器名称引用它们,例如在VM1上,我希望能够访问\\ VM2_host_name \ shared_folder。有人可以请我提供配置我的VM以启用此方案的步骤。

注意:我尝试通过内部IP地址引用它们,并在Windows防火墙中启用了ICMP流量。我甚至完全关闭了两台机器的防火墙只是为了测试。没运气。即使没有防火墙,我也无法通过主机名或来自其他机器的IP地址ping这些机器。我也审查过类似的问题,例如(Azure VMs Virtual Network inter-communication),但无济于事。

更多信息:

从VM_A(内部IP 10.0.0.5),我正在尝试与VM_B(内部IP 10.0.0.4)进行通信。两个VM都属于同一个云服务“MyCloudServiceName”。对于这个测试,我也关闭了防火墙,只是减少了变量。

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)

所以我能说的是DNS解析正在运行。但即使在同一个云服务中,这些机器仍然相互隔离。

请注意,我的实际情况是我在一台计算机上运行的服务上托管了一个ASP.NET Web API,我希望能够在内部的同一个云服务中从另一台计算机上访问它。

2 个答案:

答案 0 :(得分:3)

我们遇到了类似的问题,这是由于网络适配器的Checksum Offload。 感谢Microsoft Azure支持帮助我们诊断问题。

简单的解决方法是在每台机器上运行,然后快速重启:

Disable-NetAdapterChecksumOffload * -TcpIPv4

这是一篇更详细地描述问题的文章: http://systemscentre.blogspot.com.au/2013/05/problems-clustering-virtual-machines-on.html

答案 1 :(得分:0)

PING可能无法正常工作,因为它经常在网络环境中被禁用。所以我建议NSLookup验证它是否能够解析其他服务器的位置。

如果两个虚拟机已经在同一个云服务中,则不需要虚拟网络,因为Azure在该云服务边界内提供基本的DNS解析。通过在每台服务器上执行NSLookup -all,您应该能够识别它们当前使用的名称。

一旦您确认他们可以相互解决,如果您没有使用不受支持的协议(例如UDP多播),则不应该让任何其他问题让他们相互解决。

相关问题