Office365 独自ドメインをAzureDNSで設定したメモ – PowerShell

Office365で外部DNSを利用して、独自のドメインを利用することができると。
ポータルからはまだよく見えてなかったけど存在しているAzureDNSを使って設定したメモをマスクしながらここに残しておきます。
ただ、最近はポータルからも設定できるようになってきましたので、そもそもこれでやるメリットはそこまでないと思う。テンプレート化してというのもあるけど、ARMもあるわけで、メモ程度と考えてください
課金形態は、クエリ単位のものなので、利用者が極端に多い場合は、DNSサーバー使ったほうがいいかもしれない。けど可用性や負荷の面倒から解放されるというの機能も捨てがたいかもしれない。
また、AzureDNSは一つのゾーンで、4つのDNSサーバーを持つ様子。
おそらくは、それぞれの地域でサーバーが存在していると思われる。
(多分、それぞれの地域でIPにResolveすればわかる気がするけど、試してはいない)
最初にDNSゾーンの作成、その後レコードセットと言われるDNSのレコードを登録していきました。PowerShellの参考として考えてください。

[ゾーンの作成と確認]

New-AzureDnsZone -Name [ドメイン名] -ResourceGroupName [リソースグループ名]
Get-AzureDnsRecordSet -ZoneName [ドメイン名] -ResourceGroupName [リソースグループ名]

[レコードセットの作成 – MX]

$rsmx = New-AzureDnsRecordSet -Name "@" -RecordType "MX" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rsmx -Exchange [mailホスト名].mail.protection.outlook.com -Preference 0
Set-AzureDnsRecordSet -RecordSet $rsmx

[作成済みの場合]
$rsmx = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "@" -RecordType "MX"

[レコードセットの作成 – TXT]

$rstxt = New-AzureDnsRecordSet -Name "@" -RecordType "TXT" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rstxt -Value "v=spf1 include:spf.protection.outlook.com -all"
Set-AzureDnsRecordSet -RecordSet $rstxt

[作成済みの場合]
$rstxt = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "@" -RecordType "TXT"

[レコードセットの作成 – CNAME autodiscover]

$rscnameautodiscover = New-AzureDnsRecordSet -Name "autodiscover" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnameautodiscover -Cname "autodiscover.outlook.com"
Set-AzureDnsRecordSet -RecordSet $rscnameautodiscover 

[作成済みの場合]
$rscnameautodiscover = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "autodiscover" -RecordType "CNAME"

[レコードセットの作成 – CNAME lyncdiscover]

$rscnamelyncdiscover = New-AzureDnsRecordSet -Name "lyncdiscover" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnamelyncdiscover -Cname "webdir.online.lync.com"
Set-AzureDnsRecordSet -RecordSet $rscnamelyncdiscover 

[作成済みの場合]
$rscnamelyncdiscover = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "lyncdiscover" -RecordType "CNAME"

[レコードセットの作成 – CNAME msoid]

$rscnamemsoid = New-AzureDnsRecordSet -Name "msoid" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnamemsoid -Cname "clientconfig.microsoftonline-p.net"
Set-AzureDnsRecordSet -RecordSet $rscnamemsoid 

[作成済みの場合]
$rscnamemsoid = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "msoid" -RecordType "CNAME"

[レコードセットの作成 – CNAME sip]

$rscnamesip = New-AzureDnsRecordSet -Name "sip" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnamesip -Cname "sipdir.online.lync.com"
Set-AzureDnsRecordSet -RecordSet $rscnamesip 

[作成済みの場合]
$rscnamesip = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "sip" -RecordType "CNAME"

[レコードセットの作成 – CNAME enterpriseregistration]

$rscnameenterpriseregistration = New-AzureDnsRecordSet -Name "enterpriseregistration" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnameenterpriseregistration -Cname "enterpriseregistration.windows.net"
Set-AzureDnsRecordSet -RecordSet $rscnameenterpriseregistration 

[作成済みの場合]
$rscnameenterpriseregistration = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "enterpriseregistration" -RecordType "CNAME"

[レコードセットの作成 – CNAME enterpriseenrollment]

$rscnameenterpriseenrollment = New-AzureDnsRecordSet -Name "enterpriseenrollment" -RecordType "CNAME" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rscnameenterpriseenrollment -Cname "enterpriseenrollment.manage.microsoft.com"
Set-AzureDnsRecordSet -RecordSet $rscnameenterpriseenrollment 

[作成済みの場合]
$rscnameenterpriseenrollment = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "enterpriseenrollment" -RecordType "CNAME"

[レコードセットの作成 – SRV _sipfederationtls._tcp]

$rssrv_sipfederationtls_tcp = New-AzureDnsRecordSet -Name "_sipfederationtls._tcp" -RecordType "SRV" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rssrv_sipfederationtls_tcp –Priority 100 –Weight 1 –Port 5061 –Target "sipfed.online.lync.com"
Set-AzureDnsRecordSet -RecordSet $rssrv_sipfederationtls_tcp

[作成済みの場合]
$rssrv_sipfederationtls_tcp = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "_sip._tls" -RecordType "SRV"

[レコードセットの作成 – SRV _sip._tls]

$rssrv_sip_tls = New-AzureDnsRecordSet -Name "_sip._tls" -RecordType "SRV" -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Ttl 3600
Add-AzureDnsRecordConfig -RecordSet $rssrv_sip_tls –Priority 100 –Weight 1 –Port 443 –Target "sipdir.online.lync.com"
Set-AzureDnsRecordSet -RecordSet $rssrv_sip_tls

[作成済みの場合]
$rssrv_sip_tls = Get-AzureDnsRecordSet -ZoneName "[ドメイン名]" -ResourceGroupName "[リソースグループ名]" -Name "_sip._tls" -RecordType "SRV"

そして、最後に確認!

Get-AzureDnsRecordSet -ZoneName [ドメイン名] -ResourceGroupName [リソースグループ名]

追記 2016/02/17

Azure No1の方がポータルでの設定をまとめていらっしゃいました

Azure DNSの管理(ポータル編)