Um pouco sobre os registros TXT e como eles são usados para o DKIM
TXT
registros têm vários valores, cada valor é uma cadeia de até 255 bytes.
Em seu exemplo, você começou com um registro sugerido TXT
especificado no formato de arquivo mestre padrão que tinha três valores.
Existindo três valores é indicado pelas aspas, observe que estes não são realmente parte dos dados do registro, eles apenas especificam onde cada valor começa e termina.
Seu valor TXT
:
"v=DKIM1; k=rsa; p=" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7UNgSlnndT9JY0soSjxLhFFnvAeVN8b6Y3oKctAunNltMjvXfTD37doER8a9xwEOIXkGPgxJ5UPb/KndvHiIo+j8AScoIZCW1glFWp4AUoKlQkKP7o7vwFnWypU+DmcJAtyuhZ9X5yzag37cVRGYD4icd02yAETLbIpv1mnMUFkTnkdmtSa5gL2cLUueUOValoENwkWTcZR" "+kraTEU/VDPIrRgNBu6OJmQdk0sv4qdkwVVvxvquT4C/SimQDoDaQwlFCp2sBryXyaNSRCaAhRxPaKUpKsPmubW0SJF2nQZ3DprJQcaRQLd9Qgxz+V+XaseaXXWPy+6rtB6BlPFk5FwIDAQAB"
significa:
-
v=DKIM1; k=rsa; p=
-
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7UNgSlnndT9JY0soSjxLhFFnvAeVN8b6Y3oKctAunNltMjvXfTD37doER8a9xwEOIXkGPgxJ5UPb/KndvHiIo+j8AScoIZCW1glFWp4AUoKlQkKP7o7vwFnWypU+DmcJAtyuhZ9X5yzag37cVRGYD4icd02yAETLbIpv1mnMUFkTnkdmtSa5gL2cLUueUOValoENwkWTcZR
-
+kraTEU/VDPIrRgNBu6OJmQdk0sv4qdkwVVvxvquT4C/SimQDoDaQwlFCp2sBryXyaNSRCaAhRxPaKUpKsPmubW0SJF2nQZ3DprJQcaRQLd9Qgxz+V+XaseaXXWPy+6rtB6BlPFk5FwIDAQAB
Para o propósito de DKIM, não é realmente significativo ter vários valores, mas como cada valor de um registro TXT
tem comprimento limitado e a especificação DKIM reconhece isso e diz que, para o propósito de DKIM, vários valores devem ser simplesmente concatenados em uma cadeia longa , o que permite chaves longas.
Ou seja, um cliente DKIM irá concatenar os valores acima na string
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7UNgSlnndT9JY0soSjxLhFFnvAeVN8b6Y3oKctAunNltMjvXfTD37doER8a9xwEOIXkGPgxJ5UPb/KndvHiIo+j8AScoIZCW1glFWp4AUoKlQkKP7o7vwFnWypU+DmcJAtyuhZ9X5yzag37cVRGYD4icd02yAETLbIpv1mnMUFkTnkdmtSa5gL2cLUueUOValoENwkWTcZR+kraTEU/VDPIrRgNBu6OJmQdk0sv4qdkwVVvxvquT4C/SimQDoDaQwlFCp2sBryXyaNSRCaAhRxPaKUpKsPmubW0SJF2nQZ3DprJQcaRQLd9Qgxz+V+XaseaXXWPy+6rtB6BlPFk5FwIDAQAB
Isso também significa que a string acima poderia ter sido dividida em diferentes posições sem alterar o significado em DKIM.
Minúsculos e TXT
O Tinydns tem duas maneiras que você poderia usar para representar um registro TXT
(de link ):
1)
'fqdn:s:ttl:timestamp:lo
TXT (''text'') record for fqdn. tinydns-data creates a TXT record for fqdn containing the string s. You may use octal \nnn codes to include arbitrary bytes inside s; for example, 2 is a colon.
2)
:fqdn:n:rdata:ttl:timestamp:lo
Generic record for fqdn. tinydns-data creates a record of type n for fqdn showing rdata. n must be an integer between 1 and 65535; it must not be 2 (NS), 5 (CNAME), 6 (SOA), 12 (PTR), 15 (MX), or 252 (AXFR). The proper format of rdata depends on n. You may use octal \nnn codes to include arbitrary bytes inside rdata.
Não parece que o construído em TXT
support (1 acima) permita especificar explicitamente vários valores, mas, enquanto o manual não declara isso, eu encontrei indicações de que ele irá dividir uma longa string por conta própria. / p>
Ou seja, algo assim deve funcionar (supondo que as informações na divisão automática estejam realmente corretas):
'mail03._domainkey.zygonia.net:v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7UNgSlnndT9JY0soSjxLhFFnvAeVN8b6Y3oKctAunNltMjvXfTD37doER8a9xwEOIXkGPgxJ5UPb/KndvHiIo+j8AScoIZCW1glFWp4AUoKlQkKP7o7vwFnWypU+DmcJAtyuhZ9X5yzag37cVRGYD4icd02yAETLbIpv1mnMUFkTnkdmtSa5gL2cLUueUOValoENwkWTcZR+kraTEU/VDPIrRgNBu6OJmQdk0sv4qdkwVVvxvquT4C/SimQDoDaQwlFCp2sBryXyaNSRCaAhRxPaKUpKsPmubW0SJF2nQZ3DprJQcaRQLd9Qgxz+V+XaseaXXWPy+6rtB6BlPFk5FwIDAQAB:7200
A outra opção, o suporte a registro genérico (2 acima), certamente funcionará desde que você forneça o rdata apropriado.
A questão é que o rdata referenciado lá é uma representação de muito baixo nível, você absolutamente não pode simplesmente colocar um texto simples lá dentro e esperar que ele funcione.
Ou seja, se você percorrer a rota de inserir dados de registro genérico em tinydns, não será realmente ajudado pela representação de formato de arquivo mestre de registros (os dados de registros de texto simples com os quais você costuma trabalhar, como os dados de registro sugeridos) para você), mas você preferiria procurar como esses dados são convertidos no formato de fio DNS (o formato binário real usado no protocolo DNS) e gravar isso (escapando de bytes problemáticos conforme necessário) para o rdata campo.
Ou seja, para um registro de TXT
você teria as cadeias de valor prefixadas por seus comprimentos (inteiro de byte único, que precisaria ser escapado em octal, como observado na documentação).
O djbdns / tinydns é uma causa perdida?
Aficie-se não por causa de seu processamento de TXT
registros especificamente.
No entanto, é um software que, em sua forma oficial, não recebe atualizações desde 2001 (versão 1.05).
Existem patches e garfos que lidam com várias deficiências (o protocolo DNS, assim como nossas demandas e expectativas, evoluíram continuamente ao longo desses 15 anos), mas acredito que faria mais sentido mudar para uma implementação de servidor DNS melhor mantida e atualizada. / p>