Рейтинг:0

Separating DNS records into multiple zones for the same domain

флаг aw

I thought it would be a good idea to setup MX records in one zone, while using another zone managed by Terraform (using GCP) to deal with A records and CNAMES for the web server I'm setting up. Both zones have the sane DNS name (e.g. "example.com.")

I ended up with two different sets of NS records to configure as nameservers for the domain, so I added 2 servers from the first and two from the second, meaning:

  • ns-cloud-c1.googledomains.com
  • ns-cloud-c2.googledomains.com
  • ns-cloud-d1.googledomains.com
  • ns-cloud-d2.googledomains.com

Nameservers c1-c4 contain the MX records with the DNS zone that is not managed by Terraform, whereas nameservers d1-d4 contain the A and CNAME records managed by Terraform.

As I checked for propagation with https://dnschecker.org/, I ended up with some funky behavior, where every refresh gives me different results, and never fully propagated.

A few refreshes for the A record:

Refresh #1 enter image description here Refresh #2 enter image description here Refresh #3 enter image description here

And for the MX records

Refresh #1 enter image description here Refresh #2 enter image description here

My goal is to have a DNS zone for "example.com" that is fully managed by Terraform (for A and CNAME records) so that it can be destroyed without affecting the MX records. My questions are:

  1. Why does this behavior happen?, meaning, getting records not resolved on half of the propagation, but then appearing resolved on the next refresh.

  2. Should I be associating my domain name with multiple NS records in separate zones? (e.g. ns-cloud-[cde][1234].googledomains.com)

3.- Can I have 1 zone point to another one so that my DNS records are sharDed somehow? and just configure a single set of NS records with my domain.

4.- What is the best practice when it comes to using multiple zones for the same domain (not talking about subdomains)

joeqwerty avatar
флаг cv
Чего именно вы пытаетесь достичь и почему? Почему вы хотите отделить записи MX от других записей?
флаг aw
@joeqwerty Я хочу иметь возможность создавать/удалять записи DNS с помощью terraform, но только те, которые связаны с сервером, который я создаю (terraform создает внешний IP-адрес, запись A для этого IP-адреса, некоторые записи CNAME и DNS-записи). зона, чтобы связать их). Я также не хочу использовать `terraform import` для зоны... и я хочу превратить свой код terraform в модуль, чтобы я также мог запускать различные среды (например, тестовую, промежуточную, разработку).
Рейтинг:2
флаг jp

У вас не может быть разных зон с разным набором записей ресурсов для одного и того же домена. Каждый сервер имен, назначенный NS-записями для вашего домена, должен иметь точно такой же набор ресурсных записей.

Если вы не хотите, чтобы некоторые записи ресурсов были уничтожены терраформировать уничтожить затем используйте терраформировать жизненный цикл предотвратить_уничтожить атрибут.

флаг aw
Использование атрибута `lifecycle` `prevent_destroy` полностью запрещает мне использовать `terraform destroy`
флаг jp
Вы можете удалить эти ресурсы из состояния Terraform с помощью `terraform state rm` перед использованием `terraform destroy`.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.