2013-08-25 31 views
1

我在Azure网络中的服务器之间建立SQL连接真正困难。真奇怪的是,我可以从VM网络外的家用机器连接到SQL。这似乎是来自VM域内的某种类型的网络问题,我还没有找到。无法连接到Azure网络内的SQL

我的配置如下:

  • 我有三个虚拟机(活动目录,SQL服务器和应用服务器)
  • 我试图建立从应用服务器到SQL Server SQL连接
  • 两个虚拟机的Windows Server 2012中
  • 所有服务器都是一样的蔚蓝网络,亲和力组,域
  • 连接到域的所有服务器,并有知识产权的
  • 我能看到的DNS解析,因为我可以使用SQL Server的计算机名称
  • 我创建防火墙规则两台服务器
  • SQL服务器监听允许输入/输出端口1433 ping命令从应用程序服务器的SQL服务器在默认端口,因为这个命令在SQL Server上执行(我不理解0.0.0.0 IP,虽然这可能是一个问题)(我可以在家中连接,所以我认为这是好的)

    netstat - 一个|找到 “:1433”

    TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING

    TCP [::]:1433 [:]:0 LISTENING

  • 我创建公共&私人端点对SQL的默认SQL端口1433

  • 其实我可以从我家的机器连接到SQL Server
  • 我已经暂时关闭防火墙在两台服务器上
  • 来自应用服务器的tracert看起来像这样。

    tracert的spsql01

    跟踪路线spsql01 [10.0.0.7]

    在最大的30个酒花:

    1 * * *请求超时。

    2 * * *请求超时。

    3 * * *请求超时。

    4 5毫秒< 1毫秒1毫秒spsql01 [10.0.0.7]

    跟踪完成。

  • 在App Server上,我创建了一个connection.udl文件来测试与我的SQL Server的连接,但它从未通过连接测试。 Failed Connection

回答

0

您是否制作了您的VM在Windows Azure中相应的Windows Azure SQL数据库防火墙规则?您可以为所有Windows Azure使用特殊的0.0.0.0,或者更好地,为您的IaaS云服务(而不是各个VM的专用DIP)提供公共VIP。后者将防火墙限制为仅限您的云服务,因为与WASD的出站连接将使用您的公共VIP。请注意,如果您删除(或停止/取消分配)您云服务中的所有虚拟机,您将失去VIP。

+0

如果我的SQL服务器不是SQL Azure数据库,这个建议是否仍然适用?它是运行SQL Server的Win Server 2012。感谢您的帮助 – ChiliYago

+0

编号我所说的一切只适用于Windows Azure SQL数据库而不是SQL Server。如果所有服务器都在同一个VNET上,那么您应该能够使用其私有DIP访问SQL Server,而无需通过公共VIP - 即,您不应该(需要)公开云服务上的公共端点。在Windows Azure培训工具包中,有一个使用VNET从PaaS前端访问SQL Server的例子 - 这应该向您显示在VNET上打开SQL Server VM到其他服务器所需的步骤。 –

+0

是的,我意识到它**应**工作,但它是奇怪还没有。神秘... – ChiliYago