Назад | Перейти на главную страницу

Правильная реализация Wildcard DNS поверх записи A

Мне нужно установить DNS-запись с подстановочными знаками для поддомена, в котором уже есть запись A. Я не уверен, нужно ли мне использовать для этого новую запись A или просто использовать CNAME, указывающую на запись A.

Мой скрипт имеет следующую доменную структуру

http(s)://{random_code}.{location_subdomain}.{domain.com}/{path}

Текущий файл зоны DNS

domain.org. 86400   IN  NS  dns1.domain.org.
domain.org. 86400   IN  NS  dns2.domain.org.
domain.org. 86400   IN  NS  dns3.domain.org.
domain.org. 86400   IN  NS  dns4.domain.org.
domain.org. 14400   IN  A   1.1.1.1
localhost   14400   IN  A   127.0.0.1
www     14400   IN  CNAME   domain.org.
ftp     14400   IN  A   1.1.1.1
france  3600    IN  A   2.2.2.2
phoenix 3600    IN  A   3.3.3.3
nl      3600    IN  A   4.4.4.4
*       14400   IN  A   1.1.1.1

Но мне нужно добавить подстановочный знак для каждой записи местоположения, которая указывает на тот же адрес. Так, например, {randome_code} .phoenix. {Domain.com} будет указывать на 3.3.3.3, но при этом убедиться, что phoenix. {Domain.com} по-прежнему указывает на тот же IP-адрес.

Мне просто нужно создавать новые записи A, подобные этой, для каждого местоположения, сохраняя при этом записи без подстановочных знаков?

*.france    3600    IN  A   2.2.2.2
*.phoenix   3600    IN  A   3.3.3.3
*.nl        3600    IN  A   4.4.4.4

Я был уверен, что это будет дополнительный поиск, поэтому я подумал, что смогу использовать CNAME, но я не уверен в правильном формате для добавления записи CNAME с подстановочными знаками, которая указывает на уже созданную запись A, при этом сохраняя исходный подстановочный знак работает так, чтобы на любой поиск, не использующий поддомен местоположения, по-прежнему отвечал адрес нашего интерфейсного веб-сервера.

Или у меня это совершенно неправильно, может ли у меня не быть подстановочного знака в корневом домене, а также в записях A?

Что у вас там:

*.france    3600    IN  A   2.2.2.2

будет работать именно так, как вы ожидаете; запрос на abc.france.example.com получит ответ от подстановочного знака A запись, в то время как france.example.com будет по-прежнему получать данные из france 3600 IN A 2.2.2.2.

Никакого дополнительного поиска не требуется, поскольку вы не выполняете дополнительное делегирование.

Если вам легче управлять, вы также можете использовать CNAME:

*.france    3600    IN  CNAME   france

А CNAME обычно может вызвать дополнительный поиск, но в этом случае этого не произойдет; упомянутая запись находится в той же зоне, поэтому ваш DNS-сервер ответит "ответом" CNAME, а также включая соответствующие A запись для france.example.com.