Separe três perguntas antes de caminhar na árvore
A DMARC O rastreamento de descoberta deve responder qual domínio foi o autor da mensagem, qual política de fornecimento de registro e qual domínio organizacional governa relaxado alinhamento. Essas respostas podem ser diferentes. Lendo o primeiro pai Registro TXT e declará-lo vencedor não é uma implementação fiel do algoritmo atual. Comece com o domínio do autor extraído de RFC5322e rotule cada pesquisa por finalidade: descoberta de política ou descoberta de domínio organizacional para alinhamento.
Seção 4.10 RFC 9989 define um limite Caminhada na árvore DNS. A Seção 4.10.1 aplica-o à seleção de políticas; a seção 4.10.2 explica o alinhamento. A distinção é importante quando o Domínio do Autor tem a sua própria política válida: esse registo fornece a política imediatamente, mas não estabelece automaticamente o domínio organizacional necessário para cada comparação de alinhamento. As especificações atuais e as implementações observadas do receptor devem ser documentadas separadamente.
Defina uma árvore fictícia com suposições completas
Use alerts.ops.north.example como um domínio de autor fictício. Suponha que ele exista, tenha um registro de endereço e não tenha uma política própria. Seu pai ops.north.example tem v=DMARC1;p=quarantine; psd=u. O north.example superior tem v=DMARC1;p=reject; sp=quarantine; np=reject; psd=n. Estes são dispositivos de ensino inventados, não registros obtidos do DNS e nem valores propostos para publicação de produção.
O nome inicial do candidato é _dmarc.alerts.ops.north.example . Neste dispositivo ele produz NOERROR oficial sem dados TXT , um SOA na resposta negativa e sem alias ou complicação de referência. O segundo nome é _dmarc.ops.north.example , onde o registro u é mantido como candidato. O terceiro é _dmarc.north.example , onde psd=n interrompe a subida. Manter o contexto da resposta torna o rastreamento passível de revisão, em vez de reduzir tudo a um rótulo ambíguo de “não encontrado”.
Derive o resultado em vez de parar no registro mais próximo
O limite n explícito identifica north.example como o domínio organizacional sob seção 4.10.2. O registro u anterior não vence apenas porque foi encontrado primeiro. Sem política de domínio de autor, o registro de domínio organizacional fornece política. Como alerts.ops.north.example existe e é um subdomínio desse domínio de política, sp=quarantine está selecionado. Mantenha a tag selecionada bem como seu valor no resultado esperado.
Agora mude apenas a resposta inicial do fixture para um v=DMARC1;p=none registro. A descoberta de política seleciona esse registro de Domínio do Autor e seu valor p. O alinhamento relaxado ainda pode exigir trabalho no domínio organizacional, dependendo dos identificadores autenticados e dos atalhos na seção 4.10.2. Não reutilize “pesquisa de política interrompida” como prova de que toda pesquisa de alinhamento possível também é interrompida.
Uma comparação de alinhamento estrito usa a igualdade das sequências de domínio relevantes. Outro atalho especificado se aplica quando o Domínio do Autor e todos os identificadores autenticados são o mesmo domínio e esse domínio possui um registro de política válido. Caso contrário, passando SPF e DKIM identidades podem exigir caminhadas adicionais. O limite de oito consultas é por caminhada, não uma promessa de que uma mensagem inteira envolva apenas oito solicitações DNS .
Torne o limite de profundidade visível
A caminhada genérica consulta um candidato, descarta material TXT não-DMARC e descarta todos os registros de política DMARC naquele destino se sobrar mais de um. Um único registro contendo psd=n ou psd=y encerra a caminhada. Sem essa parada, a remoção do rótulo segue a regra de profundidade prescrita, e não um loop pai por pai ilimitado.
Para o nome fictício de nove rótulos abcdefghexample , a pesquisa inicial usa esse nome completo com _dmarc prefixado. O próximo candidato é cdefghexample , abreviado para sete rótulos. Os candidatos subsequentes são defghexample , efghexample , fghexample , ghexample , h.example e example. Cada um recebe o prefixo _dmarc . Sem nenhuma condição de parada anterior, essas são oito consultas candidatas. O bcdefghexample intermediário de oito rótulos é deliberadamente ignorado.
Isso significa que um limite administrativo profundamente aninhado pode ser perdido quando não é o alvo inicial. Seção 5.1.8 RFC 9989 explica a consequência para organizações complexas e requer um registro exato do Domínio do Autor para o caso descrito com mais de oito rótulos. Um teste proposto deve incluir tanto o limite ignorado quanto o registro inicial explícito, em vez de assumir que todo ancestral é visitado.
Classifique os erros sem inventar uma política
A ausência confirmada é diferente de uma falha transitória de resolução. A Seção 4.10.1 proíbe a aplicação DMARC quando a descoberta não produz registro de política por ausência, deixando o tratamento de erros DNS ao critério do receptor. Um receptor pode adiar temporariamente ou escolher uma abordagem de falha aberta. SERVFAIL não é uma prova negativa de existência e não deve ser inserido no aparelho como se significasse “continuar normalmente sem registro”.
Uma resposta vazia também precisa de interpretação. Seção 2.2 RFC 2308 distingue NODATA de situações de referência e alias. Preserve o nome da pergunta, tipo, código de resposta, contexto de autoridade e cadeia de alias. Um filho _dmarc ausente não estabelece que o domínio do autor em si é inexistente. Essa é uma questão separada usada ao selecionar entre sp e np.
Mantenha um rastro que outro engenheiro possa desafiar
A comissão exata é: construir uma árvore DNS concreta e rastrear o algoritmo RFC atual em relação a ela. A árvore fictícia pré-rascunhada fornece um rastreamento esperado derivado manualmente, mas nenhum dispositivo DNS controlado ou execução do receptor foi retido. A porta de provas originais comissionada, portanto, permanece aberta. Um futuro teste autorizado deve preservar cada nome de candidato, registro de candidato, motivo de rejeição, condição de parada, domínio de política selecionado e saída de alinhamento.
Registre as versões do resolvedor e do receptor, o tempo de observação, o contexto do cache e a versão aprovada do equipamento. Compare o rastreamento real com o esperado antes de alterar qualquer coisa. A verificação da errata atual, a revisão técnica do SME, a aplicabilidade da produção, as verificações visuais e a liberação do proprietário ainda estão pendentes. Um traço esperado transparente é uma preparação útil; não é um resultado de interoperabilidade.