いまさら。基本的にはここ見ればわかります。(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 を使ってみた。はてなblogを独自ドメインに対応する
- 世界のやまさ!
- Office 365 のドメインを Azure DNS に移してみる
- Office 365といえば、かずあきさん!
ピンバック: Azure DNSの管理(ポータル編) | ブチザッキ