Облако Cloud2 предоставляет пользователям служебные DNS серверы, с помощью которых вы можете решить задачи универсальным способом без использования IP-адресов, что обеспечивает большую универсальность сервисов. DNS-серверы обслуживают только публичную сеть Cloud2, приватные сети аккаунтов ими не обслуживаются.
Служба DNS поддерживает следующие автоматически управляемые служебные A и AAAA записи для первичных IPv4/v6 адресов:
- индивидуальное имя виртуальной машины в домене Cloud2;
- индивидуальное имя в общем пространстве имен Cloud2;
- групповое имя виртуальной машины в домене Cloud2;
- групповое имя в общем пространстве имен Cloud2;
- индивидуальное имя виртуальной машины в домене пользователя;
- групповое имя виртуальной машины в домене пользователя.
Служба DNS поддерживает автоматически создаваемые PTR-записи для первичного IPv4/IPv6 адресов.
Для генерации уникальных записей используются следующие компоненты:
- имя виртуальной машины;
- группа виртуальной машины;
- UUID аккаунта в Cloud2;
- сетевой домен аккаунта Cloud2;
- сетевой домен домена Cloud2.
TTL записей доменных имен в Cloud2
TTL для записей доменных имен установлен в 60 секунд.
Индивидуальное DNS имя виртуальной машины для доступа из облака
Внутри облака между виртуальными машинами доступно обнаружение по доменным именам. Данные доменные имена недоступны для внешних потребителей, а предназначены только для взаимодействия машин между собой. Такое обнаружение доступно только в том случае, если настройки DNS, получаемые по DHCP, не изменены. В этом случае машины внутри Cloud2 доступны по именам:
- <vmname>
- <vmname>.cs2vm.netpoint-dc.com
Эти доменные имена не обнаруживаются снаружи облака Cloud2.
Индивидуальное DNS имя виртуальной машины для публичного доступа
Cloud2 автоматически создает A и AAAA записи для каждой создаваемой виртуальной машины. Правила создания записей следующие:
- Если для учетной записи указана доменная зона, то запись создается в этой зоне, иначе запись создается в доменной зоне, указанной для домена Cloud2, в котором создан аккаунт.
- Запись создается в общей доменной зоне cs2.netpoint-dc.com.
Пример 1. Для аккаунта указана доменная зона site.com, пользователь создает виртуальную машину с именем site-appserver-1.
Сгенерированные имена:
- site-appserver1.site.com
- site-appserver1.cs2.netpoint-dc.com
Пример 2. Для аккаунта не указана доменная зона, аккаунт находится в домене Cloud2 premium, пользователь создает виртуальную машину с именем site-appserver-1.
Сгенерированные имена:
- site-appserver-1.premium.cs2.netpoint-dc.com
- site-appserver-1.cs2.netpoint-dc.com
Замечание 1. В том случае, если Вы хотите использовать доменную зону для аккаунта, необходимо связаться со службой технической поддержки и договориться о принятии зоны на обслуживание. Также, необходимо выполнить делегирование зоны на DNS серверы Cloud2.
Замечание 2. Все имена виртуальных машин в Cloud2 должны быть уникальными, старайтесь не использовать короткие имена, которые могут быть использованы другими пользователями облака. Это может привести к ошибке при создании виртуальной машины. Мы рекомендуем использовать имена в стиле <vmname>-<accountname> или не указывать имя, тогда Cloud2 задаст его по умолчанию в форме vm-<UUID>.
Групповое имя виртуальной машины
В Cloud2 поддерживается функция множественных A и AAAA записей для одного имени. Данная функция реализуется с помощью групп виртуальных машин Cloud2. Все машины, находящиеся в одной группе будут получать общее доменное имя, которое может использоваться для балансировки трафика с помощью средств DNS. Таким образом, для распределения нагрузки между несколькими серверами в Cloud2, вы просто добавляете серверы в одну группу виртуальных машин и создаете CNAME запись в зоне, что позволяет службе DNS правильно балансировать трафик. Далее рассмотрим как это работает. При генерации имени используется имя группы VM и UUID аккаунта. Процедура генерации имени выглядит следующим образом:
- от UUID аккаунта обрезаются первые 8 символов и формируют accountprefix.
- имя группы очищается от недопустимых символов, переводится в нижний регистр и формирует safename. Список допустимых символов: 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
если safename — непустая строка, то создается групповое имя вида: <safename>-<accountprefix>.
Таким образом, если вы хотите, чтобы ваши групповые имена полностью соответствовали задаваемым при создании машины, то используйте в имени только безопасные символы.
Пример 1. В качестве группы используется имя WWW, UUID аккаунта — c1ebdda3-c69b-11e7-bdcf-0242ac110004. Для аккаунта указано доменное имя зоны site.com.
Сгенерированные групповые имена:
- www-c1ebdda3.site.com
- www-c1ebdda3.cs2.netpoint-dc.com
Пример 2. В качестве группы используется имя WWW, UUID аккаунта — c1ebdda3-c69b-11e7-bdcf-0242ac110004. Для аккаунта не указано доменное имя зоны. Аккаунт находится в домене Cloud2 premium.
Сгенерированные групповые имена:
- www-c1ebdda3.premium.cs2.netpoint-dc.com
- www-c1ebdda3.cs2.netpoint-dc.com
Пример 3. В качестве группы используется имя Группа.
Сгенерированные групповые имена: поскольку после очистки от небезопасных символов получается пустая строка, то групповое имя создано не будет.
Пример 4. В качестве группы используется имя Группа:WWW.
Сгенерированные групповые имена: поскольку после очистки от небезопасных символов получается строка WWW, то групповое имя будет эквивалентно группе WWW.
Балансировка трафика по DNS с помощью групповых доменных имен
Представим, что вы создали две машины и добавили их в группу www аккаунта с UUID c1ebdda3-c69b-11e7-bdcf-0242ac110004, тогда система генерирует для несколько A и AAAA записей, которые можно посмотреть с помощью утилиты nslookup:
nslookup www-c1ebdda3.premium.cs2.netpoint-dc.com Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: www-c1ebdda3.premium.cs2.netpoint-dc.com Address: 176.120.28.220 Name: www-c1ebdda3.premium.cs2.netpoint-dc.com Address: 176.120.28.221 Name: www-c1ebdda3.premium.cs2.netpoint-dc.com Address: 2001:67c:20dc:1c00:1c00:55ff:fe00:1da Name: www-c1ebdda3.premium.cs2.netpoint-dc.com Address: 2001:67c:20dc:1c00:1c00:59ff:fe00:1d9
Как можно видеть, для одного имени выдается 4 записи — две для доступа по IPv4 и две для доступа по IPv6.
Поскольку такое имя не всегда является удобным для практического использования, то в зоне DNS, например site.com можно добавить запись CNAME вида:
app.site.com CNAME www-c1ebdda3.premium.cs2.netpoint-dc.com
что позволит выполнять доступ к ресурсам по app.site.com, при этом будет обеспечиваться балансировка между двумя серверами.
Поскольку в облаке Cloud2 TTL записей 60 секунд, то после добавления нового сервера к группе он станет доступен через 60 секунд.
Удаление сервера из группы не является безопасным действием, поскольку часть клиентов будет получать ошибку доступа как минимум 60 секунд. Для решения данной проблемы вы можете использовать коммерческие или opensource-средства балансировки трафика, которые используют динамическое разрешение CNAME, например Nginx Plus, Dynamic Request Router for Nginx, HAProxy и сервисы, например, Cloudflare. В следующем разделе предлагаются практические рекомендации по удобному использованию данного механизма совместно с Cloudflare.
Использование Cloudflare для балансировки трафика по CNAME
Cloudflare широко используется пользователями по всему миру для оптимизации движения трафика и кэширования контента. В Cloudflare используется встроенный механизм трейсинга IP по CNAME. Это означает, что при указании CNAME, Cloudflare будет автоматически выполнять внутреннее разрешение имен, доходя до конкретных IP-адресов. Это позволяет Cloudflare наблюдать состояние конечных серверов, которые скрываются под общим CNAME.
Поскольку Cloudflare автоматически отключает от CDN серверы, которые не функционирует и включает их когда они становятся доступны, то использование групповых имен становится очень удобным. Вы просто добавляете серверы в группу и удаляете их когда они не нужны, а остальную работу выполняет Cloudflare, позволяя вам гибко обрабатывать изменение нагрузки на ваши приложения.
Индивидуальная PTR-запись для виртуальной машины
Для каждой машины создаются PTR-записи вида <vm-name>.premium.cs2.netpoint-dc.com для IPv4 и IPv6. Данные PTR-записи могут быть изменены по запросу пользователя на те, которые ему необходимы. Для изменения записи обратитесь в службу технической поддержки.