Azure DNS
Не так давно у Microsoft появилась довольно интересная услуга под названием Azure DNS. Суть услуги – это предоставление хостинга клиентских DNS зон причем зарегистрированных как самим Microsoft так и у других DNS провайдеров. Рассмотрим все за и против данного решения:
К положительным сторонам решения я безусловно могу отнести глобальный масштаб, другими словами, сервис размещен в большинстве ЦОДов Azure, что придает довольно большей уровень высокой доступности. Так же стоит отметить, что реализована поддержка геолокации, другими словами, если вы будете делать запрос находясь в Америке, то он будет направлен в ближайший ЦОД в Штатах.
К отрицательным сторонам стоит отнести невозможность графически управлять решением. Конечно это можно списать на то, что пока данная услуга не вышла в продакшин, но все же создает некий барьер к тестированию решения. По этому я решил написать маленькую статью, которая покажет как именно можно начать работу с Azure DNS и что для этого нужно.
Поваренный рецепт довольно прост – действующая подписка Azure и компьютер под управлением любой платформы. Кроссплатформенность достигается за счет использования не только Azure PowerShell но и Azure CLI для конфигурирования.
Регистрация зоны с помощью Azure PowerShell
Так как Azure DNS использует диспетчер ресурсов Azure (ARM), для последующей работы необходимо в него переключится, делается это так:
1 | Switch-AzureMode -Name AzureResourceManager |
Далее, либо через Add-AzureAccount или Get-AzurePublishSettingsFile, подключаемся к своей подписке Azure. Если у вас несколько подписок на одном аккаунте, напоминаю, чтобы переключатся между ними следует использовать Select-AzureSubscription.
На следующем шаге необходимо создать новую группу ресурсов в которую мы разместим новую зону DNS:
1 | New-AzureResourceGroup -Name DNS -location "West Europe" |
Azure DNS управляется поставщиком ресурсов Microsoft.Network, по сему его необходимо предварительно зарегистрировать, для этого выполняем:
1 | Register-AzureProvider -ProviderNamespace Microsoft.Network |
Само создание DNS зоны выражается одним коммандлетом New-AzureDnsZone, используем его для создания зоны azurednsdemo.ait.in.ua:
1 | New-AzureDnsZone -Name azurednsdemo.ait.in.ua -ResourceGroupName DNS |
Для просмотра этих записей используйте командлет Get-AzureDnsRecordSet:
1 | Get-AzureDnsRecordSet -ZoneName azurednsdemo.ait.in.ua -ResourceGroupName DNS |
Как видите SOA и NS записей в зоне нечего нету.
Добавление записей в зону Azure DNS при помощи Azure PowerShell
В двух словах процесс добавления новых записей будет сводится к 3-м шагам:
- Созданию набора записей и назначению его в переменную. Сам набор записей содержит в себе тип, имя записи, TTL.
- Определение значений IP адресов в созданном наборе записей.
- Применение конфигурации.
Шаг первый:
1 | $var = New-AzureDnsRecordSet -Name www -RecordType A -ZoneName azurednsdemo.ait.in.ua -ResourceGroupName DNS -Ttl 60 |
Шаг второй:
Добавим значение IP:
1 | Add-AzureDnsRecordConfig -RecordSet $var -Ipv4Address 91.183.34.89 |
Шаг третий:
Применим изменения:
1 | Set-AzureDnsRecordSet -RecordSet $var |
Готово. Проверить что запись присутсвует в зоне мы можем выполнив коммандет Get-AzureDnsRecordSet:
1 | Get-AzureDnsRecordSet –Name www –RecordType A -ZoneName azurednsdemo.ait.in.ua -ResourceGroupName DNS |
Тестирование
Для тестирования можно использовать как утилиту CMD nslookup так и PowerShell коммандлет Resolve-DnsName. Единственный момент, для тестирования необходимо указать NS сервера Azure DNS.
1 | Resolve-DnsName -Name www.azurednsdemo.ait.in.ua -Type A -Server ns1-06.azure-dns.com |
Для того чтобы запустить в продакшин работу Azure DNS с вашей стороны нужно в настройках регистратора зоны указать список NS серверов Azure DNS. Сам список можно получить запросив записи NS вашей зоны:
1 | Get-AzureDnsRecordSet -ZoneName azurednsdemo.ait.in.ua -ResourceGroupName DNS -RecordType NS |
Выводы:
Azure DNS довольно интересный сервис, который показал в тестировании не плохой результат производительности плюс возможности установки маленьких значений TTL не будут лишними. Ждем графических средств администрирования.