7 domain-name-system azure virtual-network
我有一些云服务和一个在 Azure 中运行 Redis 的 VM。据我所知,我需要创建一个虚拟网络,以便云服务可以与 VM 上的 Redis 通信。那很简单。现在我想做的是设置 DNS,这样我就不必到处指定 IP 地址。
我发现的所有文章都涉及集成现场 DNS 服务器,但我没有。无论如何要使用godaddy或dnsimple吗?在当前虚拟机上安装一个简单的 DNS 服务怎么样?
我想我的问题可以概括为我需要做什么才能使我的云服务可以通过 DNS 名称与我的 VN 通信?
我遇到了同样的问题,我相信我已经提出了一个合理的解决方案,它不涉及任何额外的机器并且工作量很小。
简而言之,您将后端和前端放在相同的虚拟网络和子网中,以便为它们提供相同的 DNS 服务器。然后在前端服务上配置 DNS 后缀搜索列表,以便它们在执行名称解析时使用后端的 DNS 后缀。
脚步:
ipconfig.从输出中,得到值 Connection-specific DNS Suffix

将 的值设置为$dnsSuffix以下脚本中步骤 2 中的值。
$dnsSuffix = 'xxxxxx.yyyyy.uswest.internal.cloudapp.net';
$nics = Get-WmiObject `
-Class win32_networkadapterconfiguration `
-Filter 'IPEnabled = true';
$nics | % {
$nicSuffixes = $_.DNSDomainSuffixSearchOrder;
if ($nicSuffixes -notcontains $dnsSuffix) {
$_.DNSDomainSuffixSearchOrder = $dnsSuffix + $_.DNSDomainSuffixSearchOrder;
}
};
Invoke-WmiMethod `
-Class win32_networkadapterconfiguration `
-Name setDNSSuffixSearchOrder `
-ArgumentList @(@($dnsSuffix)),$null;
Run Code Online (Sandbox Code Playgroud)将该脚本命名为 Set-DnsSuffixSearchList.ps1 并将其包含在您的项目中,将文件的属性设置为“始终复制”,如下所示:

创建一个名为的文件startup.cmd,其中包含以下内容并设置“始终复制”属性:
powershell -Command "Set-ExecutionPolicy Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1
# Set the DNS SearchList so that backend hosts are resolvable using their shortened names.
powershell .\Set-DnsSuffixSearchList.ps1 >> "%TEMP%\StartupLog.txt" 2>&1
Run Code Online (Sandbox Code Playgroud)通过ServiceDefinition.csdef在WebRole节点下编辑和添加以下 XML,将启动任务添加到 Azure 云服务项目:
<Startup>
<Task
commandLine="startup.cmd"
executionContext="elevated"
taskType="background">
</Task>
</Startup>
Run Code Online (Sandbox Code Playgroud)大功告成,假设您已经指定您的站点和后端应该在同一个子网中。如果没有,请将其添加到节点ServiceConfiguration.Cloud.cscfg内的文件中ServiceConfiguration:
<NetworkConfiguration>
<VirtualNetworkSite name="yourVirtualNetwork" />
<AddressAssignments>
<InstanceAddress roleName="yourCloudServiceName">
<Subnets>
<Subnet name="yourSubnetName" />
</Subnets>
</InstanceAddress>
</AddressAssignments>
</NetworkConfiguration>
Run Code Online (Sandbox Code Playgroud)希望能帮助其他遇到同样问题的人!
小智 5
Azure 中有一些 VN 的“隐藏”功能可以帮助您。首先,是的,你是对的。如果您创建虚拟网络,除非您提供自己的 DNS 服务器并将其设置为允许动态更新,否则名称解析将不起作用。您不能使用公共 DNS 服务为 Windows Azure 虚拟网络提供 DNS 名称解析。
所以这是你的解决方案。您必须启动“清理”,因为一旦 VNet 在其中运行虚拟机,您就无法更改 DNS 服务器 IP 地址。
需要注意的事项:
这种架构已被证明是有效的,并且可以在 Windows Azure IaaS(又名虚拟机)中使用
| 归档时间: |
|
| 查看次数: |
31324 次 |
| 最近记录: |