Domain-Name-System
Google Cloud DNS 未正確排序 Rrdata
我正在 Google Cloud DNS 中設置超過 255 個字元的 DKIM 記錄。我已按照https://support.google.com/a/answer/173535中的建議將其拆分為 2 個值。這就是它在 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 記錄。
即,正如穀歌支持文章所說,一個長字元串需要被分成更短的部分,但這些部分仍然應該都在一個記錄中。
(這是 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
無論如何都必須在同一記錄中。