Rrdatas неправильно упорядочен Google Cloud DNS
Я настраиваю запись DKIM длиной более 255 символов в Google Cloud DNS. Я разделил его на 2 значения, как рекомендовано в https://support.google.com/a/answer/173535. Вот как это показано в терраформе.
$ 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? Есть ли способ обойти это без изменения ключа, так как это не в моем контроле.
1 ответ
Похоже, что значение 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
запись в любом случае.