是否可以在Azure Web应用程序中创建等效于主机文件的文件

时间:2019-07-19 08:46:50

标签: azure dns vnet

我正在将过去在本地物理服务器上存在的asp.net服务迁移到Azure。但是,他们需要访问一些尚无法迁移到Azure的Web服务(SOAP)。这些服务器具有公共IP,但是我需要设置主机名,以便IIS将请求正确重定向到正确的服务,因为同一服务器上有多个服务器。有什么方法可以在Azure中创建某种类型的DNS服务器,该DNS服务器仅适用于可以在Azure中解析为公共IP地址的Azure中创建的服务? (我们已经使用服务器上的hosts文件来实现此目的)

我尝试使用专用DNS区域,但是据我了解,它们只能指向同一vnet内的其他Azure服务(如果我输入错了,请更正我)。我也尝试过创建dnsmasq docker容器。但是,由于它在Linux容器中运行,因此似乎无法将其与asp.net应用程序服务放在同一vnet中。因此,我无法检索这些服务可用于访问DNS服务器的专用IP地址。

2 个答案:

答案 0 :(得分:0)

可能但不能使用私有DNS区域。

根据Name resolution for resources in Azure virtual networks。对于从一个虚拟网络中的App Service Web Apps到另一个虚拟网络中的VM的名称解析情况,您需要使用您的自己的DNS服务器在虚拟网络之间转发查询以通过Azure(DNS代理)进行解析。参见Name resolution using your own DNS server

enter image description here

在这种情况下,您仅允许,该蔚蓝的Web服务可以解析Azure外部的公共IP地址。您可以启用virtual network integration for your web app,这将限制您的Web应用程序在专用网络中的访问。然后,您可以在与Web应用程序集成的VNet相同的Vnet中部署DNS服务器。您可以在DNS区域中创建一个A类型的记录,以指向您的服务“公共IP”,然后将DNS服务器的IP地址添加到门户网站中集成Web应用程序Vnet的DNS服务器中。如果是这样,则该网络应用可以通过自定义DNS服务器解析此公共IP。

希望这可以为您提供帮助。

答案 1 :(得分:0)

据我了解,现在可以根据需要使用Azure DNS专用区域。 您将需要使用区域vnet集成来将您的应用流量指向连接到专用区域的vnet。您还需要以下设置,这意味着来自Web App的所有出站流量都首先通过集成vnet进行路由,并且Azure默认DNS服务器用于DNS。

值为168.63.129.16的WEBSITE_DNS_SERVER WEBSITE_VNET_ROUTE_ALL的值为1

https://docs.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet#azure-dns-private-zones

如果您不想使用Azure DNS专用区域,我认为您可以通过指示Web应用程序使用特定的DNS服务器来获得类似的结果。可以使用WEBSITE_DNS_SERVER和WEBSITE_DNS_ALT_SERVER应用程序设置(这些值是您要使用的服务器的IP地址)来完成。 这是有关使用这些设置的最权威的公开声明。

  1. 转到网络应用->设置->应用设置->应用设置 部分
  2. 添加以下内容:(WEBSITE_NODE_DEFAULT)应该已经 那里。 一种。 WEBSITE_DNS_SERVER,其值具有该IP地址的 主DNS服务器。 b。 WEBSITE_ALT_DNS_SERVER(可选),带有值 具有第二个DNS服务器的IP地址。
  3. 然后保存设置并在门户中重新启动webapp。
  4. 仔细检查该网络应用是否可以实际运行 连接到DNS服务器:在Kudu控制台中,运行:Nameresolver.exe [要查找的主机名] [要使用的dns服务器] 第一个参数应该是 您要查找的主机名,第二个参数是DNS之一 步骤1中的服务器)如​​果超时,则说明如何处理 您的DNS服务器已配置(防火墙等)

https://github.com/MicrosoftDocs/azure-docs/issues/13927#issuecomment-416382230

如果将这些设置与只能通过专用IP访问的DNS服务器一起使用,则需要再次使用区域vnet集成来连接到vnet。如果DNS服务器是本地服务器,则必须通过VPN或ExpressRoute通过集成的vnet进行连接。

相关问题