我有几个云服务,以及在Azure中运行Redis的虚拟机。 根据我的理解,我需要创build一个虚拟networking,以便云服务可以在虚拟机上与Redis进行通信。 那很简单。 现在我想要做的就是设置DNS,所以我不必在任何地方指定IP地址。
我find的文章都涉及集成一个现场DNS服务器,但我没有。 反正有使用godaddy,还是简单的呢? 那么在当前的虚拟机上安装一个简单的DNS服务呢?
我想我的问题可以概括为:我需要做些什么来使云服务可以通过DNS名称与我的VN进行通信?
VN在Azure中有一些“隐藏”function可以帮助您。 首先,是的,你是对的。 如果您创build虚拟networking,名称parsing将不起作用,除非您提供您自己的DNS服务器并将其设置为允许dynamic更新。 您不能使用公共DNS服务为Windows Azure虚拟networking提供DNS名称parsing。
所以这里是你的解决scheme。 您必须启动“清理”,因为一旦VNet运行了虚拟机,就无法更改DNS服务器IP地址。
需要注意的事项:
这个架构已经被certificate是有效的,可以在Windows Azure IaaS(又名虚拟机)
我有同样的问题,我相信我已经想出了一个合理的解决scheme,不涉及任何额外的机器,是很less的工作。
简而言之,您将后端和前端放在同一个虚拟networking和子网中,以便为它们提供相同的DNS服务器。 然后,在前端服务上configurationDNS后缀search列表,以便在执行名称parsing时使用后端的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;
将该脚本命名为Set-DnsSuffixSearchList.ps1并将其包含在您的项目中,将文件上的属性设置为“始终复制”,如下所示:
创build一个名为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
通过编辑ServiceDefinition.csdef
并在WebRole
节点下添加以下XML,将启动任务添加到Azure云服务项目中:
<Startup> <Task commandLine="startup.cmd" executionContext="elevated" taskType="background"> </Task> </Startup>
假设你已经指定你的站点和后端应该在同一个子网中,你就完成了。 如果没有,请将此添加到ServiceConfiguration
节点内的ServiceConfiguration
文件中:
<NetworkConfiguration> <VirtualNetworkSite name="yourVirtualNetwork" /> <AddressAssignments> <InstanceAddress roleName="yourCloudServiceName"> <Subnets> <Subnet name="yourSubnetName" /> </Subnets> </InstanceAddress> </AddressAssignments> </NetworkConfiguration>
希望能帮助那些在同一个问题上磕磕绊绊的人!
在新的门户中,您可以在公共IP地址资源中设置您的DNS名称。 以下是描述如何configuration的照片:
(点击查看大图)