我有两个用于数据库和应用服务器的虚拟机,并且我希望应用服务器且只有应用服务器连接到数据库服务器。
它们位于同一个虚拟网络中。我正尝试通过保护端点来实现这一点。
使用 Azure,我可以看到,如果我关闭虚拟机,它们将获得新的 IP 地址,因此我无法在数据库服务器的 ACL 列表中对应用服务器的公共 IP 地址进行硬编码。如果我在 acl 中放置一个 vnet 范围(如 10.2.0.0/16),那么我需要我的应用服务器数据库连接字符串使用本地地址,但数据库的本地地址在关闭时也会发生变化。
我看到的唯一选项是设置 DNS 服务器。还有其他方法吗?
我可能可以将 DNS 角色添加到我的应用服务器。这似乎是一种常见的情况,人们通常如何处理这种情况?
编辑:我找到了如何使用 nslookup 获取 FQDN。这将解析为 10.xxx 地址,因此我可以在连接字符串中使用它。
答案1
答案2
您可以保留公有和私有 IP 地址以避免发生更改。
私有 IP 示例:
Get-AzureVM -ServiceName MyCloudService -Name MyVM | Set-AzureStaticVNetIP -IPAddress 10.10.0.7 | Update-AzureVM
公网 IP 示例:
New-AzureReservedIP –ReservedIPName MyReservedIP –Location "Central US"
Set-AzureReservedIPAssociation -ReservedIPName MyReservedIP -ServiceName MyCloudService
关于 NSG 与 ACL,NSG 始终是更好的控制和管理选择。通常,我们谈论的是多台虚拟机,想象一下如果您必须一直添加/删除 ACL 规则。在 NSG 中,您可以为单个虚拟机、组甚至整个子网定义入站和出站规则。
如果您只需要管理几个虚拟机,那么就使用 ACL。默认情况下,ACL 将允许 0.0.0.0 作为开放端点。只要您将条目添加到列表中,它就会成为白名单,因此您可以添加应用服务器 IP 以仅允许其连接到您的数据库。
参考: