Google Cloud DNS 未正确排序 Rrdata

Google Cloud DNS 未正确排序 Rrdata

我正在 Google Cloud DNS 中设置一条长度超过 255 个字符的 DKIM 记录。我已按照建议将其拆分为 2 个值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 的问题?有没有办法解决这个问题而不改变密钥,因为这不在我的控制范围内。

答案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 中,一般没有定义记录的顺序RR集(具有相同所有者姓名班级类型)。
预计您在添加记录时使用的顺序可能不一定会保持不变(如您的示例所示),但这在 DKIM 上下文中并不重要,因为整个 DKIM 值TXT无论如何都必须在同一条记录内。

相关内容