1

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

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

4

2 回答 2

1

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

WEBSITE_DNS_SERVER 值为 168.63.129.16 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 Private Zones,我认为您可以通过指示 Web App 使用特定的 DNS 服务器来获得类似的结果。这可以使用 WEBSITE_DNS_SERVER 和 WEBSITE_DNS_ALT_SERVER 应用程序设置来完成(这些值是您要使用的服务器的 IP 地址)。这是我能找到的关于使用这些设置的最权威的公开声明。

  1. 转到网络应用程序->设置->应用程序设置->应用程序设置部分
  2. 添加以下内容: (WEBSITE_NODE_DEFAULT) 应该已经存在。一个。WEBSITE_DNS_SERVER,其值具有主 DNS 服务器的 IP 地址。湾。WEBSITE_ALT_DNS_SERVER(可选),其值为第二个 DNS 服务器的 IP 地址。
  3. 然后保存设置并在门户中重新启动 webapp。
  4. 仔细检查 Web 应用程序实际上可以连接到 DNS 服务器:在 kudu 控制台中,运行: Nameresolver.exe [hostname-to-lookup] [dns-server-to-use] 第一个参数应该是您要查找的主机名,第二个参数是步骤 1 中的 DNS 服务器之一)如果超时,则说明您的 DNS 服务器的配置方式存在问题(防火墙等)

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

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

于 2020-10-06T00:12:52.457 回答
0

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

根据Azure 虚拟网络中资源的名称解析。对于从一个虚拟网络中的应用服务 Web 应用到不同虚拟网络中的 VM 的名称解析方案,您需要使用自己的 DNS 服务器在虚拟网络之间转发查询以供 Azure(DNS 代理)解析。请参阅使用您自己的 DNS 服务器进行名称解析

在此处输入图像描述

在这种情况下,您只允许此 azure Web 服务可以解析 Azure 之外的公共 IP 地址。您可以为您的 Web 应用启用虚拟网络集成,这会限制您在专用网络中的 Web 应用访问。然后,您可以在与 Web 应用程序集成的 VNet 相同的 Vnet 中部署 DNS 服务器。您可以在 DNS 区域中创建A类型记录以指向您的服务公共 IP,然后将 DNS 服务器的 IP 地址添加到门户中集成 Web 应用程序 Vnet 的 DNS 服务器中。如果是这样,Web 应用程序可以通过自定义 DNS 服务器解析此公共 IP。

希望这可以帮助你。

于 2019-07-19T09:53:45.160 回答