Azure DNS Preview が使えるようになったので Office 365 のドメインを Azure DNS で管理するようにしてみます。
Azure DNS でのゾーン情報作成
まずは Office 365 で使うドメインのゾーン情報を作ります。
使用するドメインはいつぞやの kazuakix.jp を使います。
New-AzureDnsZone -Name kazuakix.jp -ResourceGroupName DnsResourceGroup
ドメイン名の他にリソースグループ名が必要になるので前もってこんな感じで作作っておきました。
New-AzureResourceGroup -Name DnsResourceGroup -location "japanwest"
Get-AzureDnsRecordSet で内容を確認してみます。
PS C:\> Get-AzureDnsRecordSet -ZoneName kazuakix.jp -ResourceGroupName DnsResourceGroup Name : @ ZoneName : kazuakix.jp ResourceGroupName : DnsResourceGroup Ttl : 3600 Etag : 22d1b6b6-ea60-4921-9085-f0909e08d401 RecordType : SOA Records : {[edge1.azuredns-cloud.net,msnhst.microsoft.com,900,300,604800,300]} Tags : {} Name : @ ZoneName : kazuakix.jp ResourceGroupName : DnsResourceGroup Ttl : 3600 Etag : 4e5186c9-584d-46dc-95a7-cd8c0b27dfd7 RecordType : NS Records : {ns1-08.azure-dns.com, ns2-08.azure-dns.net, ns3-08.azure-dns.org, ns4-08.azure-dns.info} Tags : {}
SOA と NS レコードができていますね。
レコードの作成
その他 Office 365 に必要なレコードはドメインの登録中に指定されます。
これらのレコードについても順番に作成していきましょう。
BIND なんかだと 1 レコードは "@ 3600 IN MX 0 hogehoge.outlook.com." みたいな感じで 1 行で書きますが、Azure DNS はレコードセットという入れ物を作って その中にレコードを追加するという手順になります。例えば MX のレコードセットを作ってその中に優先順位をつけて複数のメールサーバーをレコードとして登録するようなイメージです。
MX レコードの作成
とりあえず MX レコードを作ってみます。画面の指示だと @ (ここではドメイン名) に対して優先度 0, TTL 3,600 秒で kazuakix-jp.mail.protection.outlook.com を指定するようになっていました。
最初に @ に対する MX レコードセットを作成します。
$rs=New-AzureDnsRecordSet -Name "@" -RecordType MX -ZoneName kazuakix.jp -ResourceGroupName DnsResourceGroup -Ttl 3600
この時点ではレコードセットはこんな状態になっていました。
PS C:\> $rs Name : @ ZoneName : kazuakix.jp ResourceGroupName : DnsResourceGroup Ttl : 3600 Etag : ba55b5fc-2585-4955-96c2-947ca79c18ac RecordType : MX Records : {} Tags : {}
作成したレコードセットにレコードを追加します。
Add-AzureDnsRecordConfig -Exchange kazuakix-jp.mail.protection.outlook.com -Preference 0 -RecordSet $rs
中身を見るとレコードが追加されている事がわかります。
PS C:\> $rs Name : @ ZoneName : kazuakix.jp ResourceGroupName : DnsResourceGroup Ttl : 3600 Etag : ba55b5fc-2585-4955-96c2-947ca79c18ac RecordType : MX Records : {[0,kazuakix-jp.mail.protection.outlook.com]} Tags : {}
最後にレコードセットの内容をゾーンに反映させます。
Set-AzureDnsRecordSet -RecordSet $rs
以下、同じような作業の繰り返しになります。
CNAME レコードの作成
画面の指示に従って 4 つの CNAME を作成します。
$rs=New-AzureDnsRecordSet -Name autodiscover -RecordType CNAME -ZoneName kazuakix.jp -ResourceGroupName DnsResourceGroup -Ttl 3600 Add-AzureDnsRecordConfig -Cname autodiscover.outlook.com -RecordSet $rs Set-AzureDnsRecordSet -RecordSet $rs $rs=New-AzureDnsRecordSet -Name sip -RecordType CNAME -ZoneName kazuakix.jp -ResourceGroupName DnsResourceGroup -Ttl 3600 Add-AzureDnsRecordConfig -Cname sipdir.online.lync.com -RecordSet $rs Set-AzureDnsRecordSet -RecordSet $rs $rs=New-AzureDnsRecordSet -Name lyncdiscover -RecordType CNAME -ZoneName kazuakix.jp -ResourceGroupName DnsResourceGroup -Ttl 3600 Add-AzureDnsRecordConfig -Cname webdir.online.lync.com -RecordSet $rs Set-AzureDnsRecordSet -RecordSet $rs $rs=New-AzureDnsRecordSet -Name msoid -RecordType CNAME -ZoneName kazuakix.jp -ResourceGroupName DnsResourceGroup -Ttl 3600 Add-AzureDnsRecordConfig -Cname clientconfig.microsoftonline-p.net -RecordSet $rs Set-AzureDnsRecordSet -RecordSet $rs
TXT レコードの作成
@ に対する TXT レコードを追加します。 MX レコードのときもそうですが @ は "" で囲まないとエラーになりました。
$rs=New-AzureDnsRecordSet -Name "@" -RecordType TXT -ZoneName kazuakix.jp -ResourceGroupName DnsResourceGroup -Ttl 3600 Add-AzureDnsRecordConfig -Value "v=spf1 include:spf.protection.outlook.com -all" -RecordSet $rs Set-AzureDnsRecordSet -RecordSet $rs
SRV レコードの作成
最後に SRV レコード。サービスとプロトコル名を繋いだものが名前になります。
$rs=New-AzureDnsRecordSet -Name "_sip._tls" -RecordType SRV -ZoneName kazuakix.jp -ResourceGroupName DnsResourceGroup -Ttl 3600 Add-AzureDnsRecordConfig -Port 443 -Weight 1 -Priority 100 -Target sipdir.online.lync.com -RecordSet $rs Set-AzureDnsRecordSet -RecordSet $rs $rs=New-AzureDnsRecordSet -Name "_sipfederationtls._tcp" -RecordType SRV -ZoneName kazuakix.jp -ResourceGroupName DnsResourceGroup -Ttl 3600 Add-AzureDnsRecordConfig -Port 5061 -Weight 1 -Priority 100 -Target sipfed.online.lync.com -RecordSet $rs Set-AzureDnsRecordSet -RecordSet $rs
ネームサーバーの変更
登録が終わったらドメインのレジストラ側でネームサーバーを変更します。ネームサーバーは Get-AzureDnsRecordSet を実行した際に NS レコードに表示されるサーバーすべてを指定します。
今回は お名前.com でドメインを取得していたので こんな感じで指定しました。
Office 365 での確認
ネームサーバーが切り替わるのを待って Office 365 の画面に戻って「レコードを追加しました」のリンクをクリックすることで DNS の内容がチェックされます。エラーがなければ完了画面になって無事終了になります。