Azure DNS さわってみる

いまさら。基本的にはここ見ればわかります。(x-plat CLIでもOK)

まずAzure上のサブスクリプションでDNS(Preview)機能を有効化します。(今だけ。サブスクリプション毎に一度だけ実行すればいい)※ ARMモードにしときましょう(そろそろ寿命が、、、

 C:\temp> Register-AzureProviderFeature -ProviderNamespace Microsoft.Network -FeatureName azurednspreview 確認 Are you sure you want to register for the feature 'azurednspreview' of the provider 'Microsoft.Network' [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y FeatureName ProviderName RegistrationState ----------- ------------ ----------------- azurednspreview Microsoft.Network Registered PS C:\temp> 

DNS用のリソースを作ります。いわゆるゾーンですね。所属するリソースグループを指定する必要があるので、あらかじめリソースグループは作っておきます。

 PS C:\temp> New-AzureDnsZone -Name xxx.com -ResourceGroupName xxxcom-resourcegroup Name ResourceGroupName Etag Tags ---- ----------------- ---- ---- xxx.com xxxcom-resourcegroup 24e10023-0140-4ed3-92e3-2933f59720e9 {} PS C:\temp> 

できました。Get-AzureDnsRecordSetで見てみましょう。

 PS C:\temp> Get-AzureDnsRecordSet -ZoneName xxx.com -ResourceGroupName xxxcom-resourcegroup Name : @ ZoneName : xxx.com ResourceGroupName : xxxcom-resourcegroup Ttl : 3600 Etag : 0c997612-xxxxxxxxxxxx-92cc1d43f338 RecordType : SOA Records : {[ns1-07.azure-dns.com,msnhst.microsoft.com,3600,300,2419200,300]} Tags : {} Name : @ ZoneName : xxx.com ResourceGroupName : xxx.com-resourcegroup Ttl : 3600 Etag : 64eae43e-xxxxxxxxxxxxb87414 RecordType : NS Records : {ns1-07.azure-dns.com, ns2-07.azure-dns.net, ns3-07.azure-dns.org, ns4-07.azure-dns.info} Tags : {} 

SOAとNSレコードができました。この時点でnslookup等でazure-dns.comなNSへ問い合わせればちゃんとSOAなどがひけます。どうでもいいですけどGet-AzureDnsZoneで返ってくるDNSゾーンオブジェクトを$zone とかに保存しておくと以降のコマンドが楽です。(-Zoneで指定できるのでリソースグループ名などの指定が省略できます)

レコードの編集方法

レコードセットを取得して適宜編集したあとSet-で設定します。例えばSOAに連絡先のメアドを設定する場合は以下のようにします。

 $rs = Get-AzureDnsRecordSet -Name "@" -RecordType SOA -Zone $zone $rs.Records[0].Email = "admin.xxx.com" Set-AzureDnsRecordSet -RecordSet $rs 

$rsの中身をいじってSet-AzureDnsRecordSetするだけですね。

レコードの追加

レコードセットをNew-で追加してそこにあれこれ追加する感じです。例えばMXレコードの場合

 $rs = New-AzureDnsRecordSet -Name "@" -RecordType MX -Zone $zone -Ttl 7200 

という感じで作ります。RecordTypeがキモですね。あとは名前はゾーンと同じであれば”@”です。その後、レコードセット$rsに対してAdd-AzureDnsRecordConfigでレコードを追加します。このとき、追加するレコードタイプによって引数がかわります。

MXの場合は

 Add-AzureDnsRecordConfig -RecordSet $rs -Exchange "xxx.com.mail.protection.outlook.com" -Preference 0 

という感じです。MXを表す-Exchange とサーバーのポインタ(例だとOffice365用ですが)、MXの優先度用の-Preferenceを指定します。他にもレコードがあれば同じようにレコードセットに追加していき、最後にSet-AzureDnsRecordします。

他のレコードも似たような感じでできるのでドキュメント参照ください。

レコードの削除

レコードの削除は Remove-AzureDnsRecordConfig を実行してレコードセットから削除した後、Set-AzureDnsRecordSetします。レコードセットそのものを削除する場合は Remove-AzureDnsRecordSet をよびます。ただし@ (SOA) とNSは消せません(Zoneを削除した時に自動的に削除されます)

ネームサーバーホストの設定

RecordTypeがNSのレコードセットに含まれる値を設定します。

$rs = Get-AzureDnsRecordSet -Zone $zone -RecordType NS

で得られた中のRecordsプロパティの値になります。(例)

$rs.Records

Nsdname
-------
ns1-07.azure-dns.com
ns2-07.azure-dns.net
ns3-07.azure-dns.org
ns4-07.azure-dns.info

 

まとめ

構造とレコードセットの考え方(と設定方法)わかればそんなに難しくないと思います。まぁポータルでできてほしいですけど。

参考

Azure DNS さわってみる」への1件のフィードバック

  1. ピンバック: Azure DNSの管理(ポータル編) | ブチザッキ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中