このクイックスタートでは、Azure Resource Manager テンプレート (ARM テンプレート) を使用して Azure DNS Private Resolver を作成する方法について説明します。
Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、宣言型の構文が使用されています。 デプロイしようとしているものを、デプロイを作成する一連のプログラミング コマンドを記述しなくても記述できます。
次の図は、使われる一般的なセットアップをまとめたものです。 テンプレートで使われるサブネット アドレスの範囲は、図に示されているものとは若干異なります。
環境が前提条件を満たしていて、ARM テンプレートの使用に慣れている場合は、 [Azure へのデプロイ] ボタンを選択します。 Azure portal でテンプレートが開きます。
前提条件
Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
テンプレートを確認する
このクイックスタートで使用されるテンプレートは Azure クイックスタート テンプレートからのものです。
このテンプレートは、以下のリソースを作成するように構成されています。
- 仮想ネットワーク
- DNS リゾルバー
- 受信および送信エンドポイント
- 転送ルールとルールセット。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.17.1.54307",
"templateHash": "4642931119059320905"
}
},
"parameters": {
"resolverVNETName": {
"type": "string",
"defaultValue": "dnsresolverVNET",
"metadata": {
"description": "name of the new virtual network where DNS resolver will be created"
}
},
"resolverVNETAddressSpace": {
"type": "string",
"defaultValue": "10.7.0.0/24",
"metadata": {
"description": "the IP address space for the resolver virtual network"
}
},
"dnsResolverName": {
"type": "string",
"defaultValue": "dnsResolver",
"metadata": {
"description": "name of the dns private resolver"
}
},
"location": {
"type": "string",
"allowedValues": [
"australiaeast",
"uksouth",
"northeurope",
"southcentralus",
"westus3",
"eastus",
"northcentralus",
"westcentralus",
"eastus2",
"westeurope",
"centralus",
"canadacentral",
"brazilsouth",
"francecentral",
"swedencentral",
"switzerlandnorth",
"eastasia",
"southeastasia",
"japaneast",
"koreacentral",
"southafricanorth",
"centralindia",
"westus",
"canadaeast",
"qatarcentral",
"uaenorth",
"australiasoutheast",
"polandcentral"
],
"metadata": {
"description": "the location for resolver VNET and dns private resolver - Azure DNS Private Resolver available in specific region, refer the documenation to select the supported region for this deployment. For more information https://docs.microsoft.com/azure/dns/dns-private-resolver-overview#regional-availability"
}
},
"inboundSubnet": {
"type": "string",
"defaultValue": "snet-inbound",
"metadata": {
"description": "name of the subnet that will be used for private resolver inbound endpoint"
}
},
"inboundAddressPrefix": {
"type": "string",
"defaultValue": "10.7.0.0/28",
"metadata": {
"description": "the inbound endpoint subnet address space"
}
},
"outboundSubnet": {
"type": "string",
"defaultValue": "snet-outbound",
"metadata": {
"description": "name of the subnet that will be used for private resolver outbound endpoint"
}
},
"outboundAddressPrefix": {
"type": "string",
"defaultValue": "10.7.0.16/28",
"metadata": {
"description": "the outbound endpoint subnet address space"
}
},
"resolvervnetlink": {
"type": "string",
"defaultValue": "vnetlink",
"metadata": {
"description": "name of the vnet link that links outbound endpoint with forwarding rule set"
}
},
"forwardingRulesetName": {
"type": "string",
"defaultValue": "forwardingRule",
"metadata": {
"description": "name of the forwarding ruleset"
}
},
"forwardingRuleName": {
"type": "string",
"defaultValue": "contosocom",
"metadata": {
"description": "name of the forwarding rule name"
}
},
"DomainName": {
"type": "string",
"defaultValue": "contoso.com.",
"metadata": {
"description": "the target domain name for the forwarding ruleset"
}
},
"targetDNS": {
"type": "array",
"defaultValue": [
{
"ipaddress": "10.0.0.4",
"port": 53
},
{
"ipaddress": "10.0.0.5",
"port": 53
}
],
"metadata": {
"description": "the list of target DNS servers ip address and the port number for conditional forwarding"
}
}
},
"resources": [
{
"type": "Microsoft.Network/dnsResolvers",
"apiVersion": "2022-07-01",
"name": "[parameters('dnsResolverName')]",
"location": "[parameters('location')]",
"properties": {
"virtualNetwork": {
"id": "[resourceId('Microsoft.Network/virtualNetworks', parameters('resolverVNETName'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', parameters('resolverVNETName'))]"
]
},
{
"type": "Microsoft.Network/dnsResolvers/inboundEndpoints",
"apiVersion": "2022-07-01",
"name": "[format('{0}/{1}', parameters('dnsResolverName'), parameters('inboundSubnet'))]",
"location": "[parameters('location')]",
"properties": {
"ipConfigurations": [
{
"privateIpAllocationMethod": "Dynamic",
"subnet": {
"id": "[format('{0}/subnets/{1}', resourceId('Microsoft.Network/virtualNetworks', parameters('resolverVNETName')), parameters('inboundSubnet'))]"
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/dnsResolvers', parameters('dnsResolverName'))]",
"[resourceId('Microsoft.Network/virtualNetworks', parameters('resolverVNETName'))]"
]
},
{
"type": "Microsoft.Network/dnsResolvers/outboundEndpoints",
"apiVersion": "2022-07-01",
"name": "[format('{0}/{1}', parameters('dnsResolverName'), parameters('outboundSubnet'))]",
"location": "[parameters('location')]",
"properties": {
"subnet": {
"id": "[format('{0}/subnets/{1}', resourceId('Microsoft.Network/virtualNetworks', parameters('resolverVNETName')), parameters('outboundSubnet'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/dnsResolvers', parameters('dnsResolverName'))]",
"[resourceId('Microsoft.Network/virtualNetworks', parameters('resolverVNETName'))]"
]
},
{
"type": "Microsoft.Network/dnsForwardingRulesets",
"apiVersion": "2022-07-01",
"name": "[parameters('forwardingRulesetName')]",
"location": "[parameters('location')]",
"properties": {
"dnsResolverOutboundEndpoints": [
{
"id": "[resourceId('Microsoft.Network/dnsResolvers/outboundEndpoints', parameters('dnsResolverName'), parameters('outboundSubnet'))]"
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Network/dnsResolvers/outboundEndpoints', parameters('dnsResolverName'), parameters('outboundSubnet'))]"
]
},
{
"type": "Microsoft.Network/dnsForwardingRulesets/virtualNetworkLinks",
"apiVersion": "2022-07-01",
"name": "[format('{0}/{1}', parameters('forwardingRulesetName'), parameters('resolvervnetlink'))]",
"properties": {
"virtualNetwork": {
"id": "[resourceId('Microsoft.Network/virtualNetworks', parameters('resolverVNETName'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/dnsForwardingRulesets', parameters('forwardingRulesetName'))]",
"[resourceId('Microsoft.Network/virtualNetworks', parameters('resolverVNETName'))]"
]
},
{
"type": "Microsoft.Network/dnsForwardingRulesets/forwardingRules",
"apiVersion": "2022-07-01",
"name": "[format('{0}/{1}', parameters('forwardingRulesetName'), parameters('forwardingRuleName'))]",
"properties": {
"domainName": "[parameters('DomainName')]",
"targetDnsServers": "[parameters('targetDNS')]"
},
"dependsOn": [
"[resourceId('Microsoft.Network/dnsForwardingRulesets', parameters('forwardingRulesetName'))]"
]
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2022-01-01",
"name": "[parameters('resolverVNETName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('resolverVNETAddressSpace')]"
]
},
"enableDdosProtection": false,
"enableVmProtection": false,
"subnets": [
{
"name": "[parameters('inboundSubnet')]",
"properties": {
"addressPrefix": "[parameters('inboundAddressPrefix')]",
"delegations": [
{
"name": "Microsoft.Network.dnsResolvers",
"properties": {
"serviceName": "Microsoft.Network/dnsResolvers"
}
}
]
}
},
{
"name": "[parameters('outboundSubnet')]",
"properties": {
"addressPrefix": "[parameters('outboundAddressPrefix')]",
"delegations": [
{
"name": "Microsoft.Network.dnsResolvers",
"properties": {
"serviceName": "Microsoft.Network/dnsResolvers"
}
}
]
}
}
]
}
}
]
}
このテンプレートでは次の 7 つのリソースが定義されています。
- Microsoft.Network/virtualnetworks
- Microsoft.Network/dnsResolvers
- Microsoft.Network/dnsResolvers/inboundEndpoints
- Microsoft.Network/dnsResolvers/outboundEndpoints
- Microsoft.Network/dnsForwardingRulesets
- Microsoft.Network/dnsForwardingRulesets/forwardingRules
- Microsoft.Network/dnsForwardingRulesets/virtualNetworkLinks
テンプレートのデプロイ
read -p "Enter the location: " location
resourceGroupName="exampleRG"
templateUri="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.network/azure-dns-private-resolver/azuredeploy.json"
az group create \
--name $resourceGroupName \
--location $location
az deployment group create \
--resource-group $resourceGroupName \
--template-uri $templateUri
デプロイの検証
Azure portal にサインインします。
左側のウィンドウから [リソース グループ] を選択します。
前のセクションで作成したリソース グループを選択します
このリソース グループには、次のリソースが含まれている必要があります。
DNS Private Resolver サービスを選択して、プロビジョニングと現在の状態を確認します。
[受信エンドポイント] と [送信エンドポイント] を選択して、エンドポイントが作成され、送信エンドポイントが転送ルールセットに関連付けられていることを確認します。
[送信エンドポイント] ページから [関連付けられているルールセット] を選択して、転送ルールセットとルールの作成を確認します。
リゾルバー仮想ネットワークが転送ルールセットにリンクされていることを確認します。
次のステップ
このクイックスタートでは、仮想ネットワークと DNS Private Resolver を作成しました。 次に、Azure ドメインとオンプレミス ドメインの名前解決を構成します。