I am setting up a DKIM record which has more than 255 characters, in Google Cloud DNS. I have split it into 2 values as recommended in https://support.google.com/a/answer/173535. Вот как это отображается в terraform.
$ terraform show
google_dns_record_set.siteground_dkim:
id = rightleadsio/default._domainkey.rightleads.io./TXT
managed_zone = rightleadsio
name = default._domainkey.rightleads.io.
project = rlautomation-156511
rrdatas.# = 2
rrdatas.0 = "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApRvh3MHFry0h4WxY+flc29BDr750WmoaWdwQZwZ56HcdBE+wu6dd849IbMYT6uSCqT3SHpU2D6wVe9B3zlz0H4aZ75GUOTRl72FiTv5Q4Ru+NQ/4s1lwtgcyoJUnfVkxm8fT7qZiRwr+F7Wf7IqvNNVfPG2+0q5QUlgeu2ddXxjipaPMzIv1hxiHF75Pgse85"
rrdatas.1 = "zb3PdAsa8wHMhyvHMkS6wwXTiW8Mll2KFyLMjtq5RL56VE5ew+aY1wk6CjpKgvoCXbDJGc3pIa2FQQFhiVwNY/HJBEArM4yoM1y98RF7F7VgWYkLYqpvWbnQtaENcS67NGynJ1ViLIELLfINLRHywIDAQAB"
ttl = 3600
type = TXT
Но когда я запрашиваю это с помощью dig или mxtoolbox, он показывает rrdatas.1 как первое значение и rrdatas.0 как второе, таким образом, неправильно собирая значение.
$ dig +short txt default._domainkey.rightleads.io
"zb3PdAsa8wHMhyvHMkS6wwXTiW8Mll2KFyLMjtq5RL56VE5ew+aY1wk6CjpKgvoCXbDJGc3pIa2FQQFhiVwNY/HJBEArM4yoM1y98RF7F7VgWYkLYqpvWbnQtaENcS67NGynJ1ViLIELLfINLRHywIDAQAB"
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApRvh3MHFry0h4WxY+flc29BDr750WmoaWdwQZwZ56HcdBE+wu6dd849IbMYT6uSCqT3SHpU2D6wVe9B3zlz0H4aZ75GUOTRl72FiTv5Q4Ru+NQ/4s1lwtgcyoJUnfVkxm8fT7qZiRwr+F7Wf7IqvNNVfPG2+0q5QUlgeu2ddXxjipaPMzIv1hxiHF75Pgse85"
Я делаю что-то неправильно? Или это проблема с Google Cloud DNS? Есть ли способ обойти это без изменения ключа, поскольку это не в моей власти.
Похоже, что значение DKIM было добавлено неправильно, да.
Похоже, что вы добавили две отдельные записи TXT
со значением каждой строки, а не одну TXT
запись с обеими строками. (Да, записи TXT
являются многозначными, а ограничение длины - на значение)
Спецификация DKIM допускает длинные значения, она определена так, что если запись TXT
имеет несколько значений, то их следует объединить в одну длинную строку, прежде чем разбирать как значение DKIM.
.
Однако несколько отдельных записей TXT никак не должны быть объединены.
т.е., как говорится в статье Поддержки Google, длинная строка должна быть разбита на более короткие части, но все эти части все равно должны быть в одной записи.
.
(Это требование на уровне DNS, в некоторых случаях интерфейс взаимодействует с абстракцией такого поведения)
В формате мастер-файла ваша запись будет:
default._domainkey.rightleads.io. 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApRvh3MHFry0h4WxY+flc29BDr750WmoaWdwQZwZ56HcdBE+wu6dd849IbMYT6uSCqT3SHpU2D6wVe9B3zlz0H4aZ75GUOTRl72FiTv5Q4Ru+NQ/4s1lwtgcyoJUnfVkxm8fT7qZiRwr+F7Wf7IqvNNVfPG2+0q5QUlgeu2ddXxjipaPMzIv1hxiHF75Pgse85" "zb3PdAsa8wHMhyvHMkS6wwXTiW8Mll2KFyLMjtq5RL56VE5ew+aY1wk6CjpKgvoCXbDJGc3pIa2FQQFhiVwNY/HJBEArM4yoM1y98RF7F7VgWYkLYqpvWbnQtaENcS67NGynJ1ViLIELLfINLRHywIDAQAB"
Не похожа на то, что вы сейчас имеете:
default._domainkey.rightleads.io. 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApRvh3MHFry0h4WxY+flc29BDr750WmoaWdwQZwZ56HcdBE+wu6dd849IbMYT6uSCqT3SHpU2D6wVe9B3zlz0H4aZ75GUOTRl72FiTv5Q4Ru+NQ/4s1lwtgcyoJUnfVkxm8fT7qZiRwr+F7Wf7IqvNNVfPG2+0q5QUlgeu2ddXxjipaPMzIv1hxiHF75Pgse85"
default._domainkey.rightleads.io. 3600 IN TXT "zb3PdAsa8wHMhyvHMkS6wwXTiW8Mll2KFyLMjtq5RL56VE5ew+aY1wk6CjpKgvoCXbDJGc3pIa2FQQFhiVwNY/HJBEArM4yoM1y98RF7F7VgWYkLYqpvWbnQtaENcS67NGynJ1ViLIELLfINLRHywIDAQAB"
Как видно больше из примечания, в DNS в целом не определен порядок следования записей в пределах RRset (набор записей, имеющих одно и то же имя владельца , класс и тип ).
.
Предполагается, что порядок, который вы использовали при добавлении записей, не обязательно должен сохраняться (как в вашем примере), но это не имеет значения в контексте DKIM, так как все равно все значение DKIM должно быть в пределах одной и той же записи TXT
.