Azure VM虚拟网络相互通信

时间:2012-12-21 19:03:22

标签: azure azure-virtual-machine azure-virtual-network

我是Azure的新手(罢工1)并且非常厌恶网络(罢工2)。

尽管如此,我已经在同一个虚拟网络中启动并运行了两个虚拟机;一个将充当Web服务器,另一个充当SQL数据库服务器。

虽然我可以看到他们的内部IP地址都在同一个网络中,但我无法验证这些机器是否可以相互通信,并且对于解决此问题的适当位置感到困惑。

微软自己的文档说

  

您在Windows Azure中创建的所有虚拟机都可以   使用专用网络通道与其他通道自动通信   同一云服务或虚拟网络中的虚拟机。   但是,您需要将端点添加到计算机以获取其他资源   在Internet或其他虚拟网络上与之通信。您   可以将特定端口和协议关联到端点。资源   可以使用TCP或UDP协议连接到端点。 TCP   协议包括HTTP和HTTPS通信。

那么为什么这些机器至少不能通过内部IP相互ping通?是Windows防火墙妨碍了吗?我开始怀疑我是否为简单的Web服务器/数据库服务器设置选择了错误的方法。请原谅我的无知。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:13)

如果两台计算机都在同一个虚拟网络中,那么只需关闭Windows防火墙,他们就可以互相ping通。另一种方法是在Windows防火墙中使用高级设置允许所有传入的ICMP流量。

但是有一个技巧。两台机器都会通过IP地址看到对方,但在如此定义的虚拟网络中将会有名称解析。这意味着您将无法通过名称ping,而只能通过直接IP地址ping。因此,如果希望您的网站(在VM1上)连接到SQL Server(在VM2上),您必须通过完整的IP地址而不是机器名称来解决它。

在虚拟网络中进行名称解析的唯一方法是使用专用DNS服务器,您可以在本地维护和配置。

This article详细介绍了Windows Azure中的名称解析方案。你的具体情况如下:

  

位于的虚拟机和角色实例之间的名称解析   相同的虚拟网络,但不同的云服务

如果您将虚拟机设置为相同的云服务,则可能实现名称解析。因此,您甚至不需要专用的虚拟网络。

答案 1 :(得分:0)

如果您的虚拟机位于Azure中的虚拟网络中,那么您必须确保两件事。

  1. 启用了必需的端口。
  2. 服务器上已禁用防火墙。
  3. 我试图从另一个VM连接到安装了SQL Server DB的一个VM。我必须在安装SQL的VM中启用1433端口。为此,您需要在Azure管理门户上向VM添加MSSQL端点。之后,我禁用了Windows防火墙。然后我就可以从另一个连接到VM了。