“Maximum DNS-interactive terms limit (10) exceeded”, como resolver

Author: Ricardo Soares - Postado em: 27/09/2016
Relacionado as categorias: Diversos, Tecnologia | Leave a Comment 





Dont unplug the internet Jem

 

Como funciona a interpretação de uma regra de SPF

Quando escrevendo uma regra de SPF podemos incluir nela algumas referências a domínios, seja este domínio o próprio ou externo. Enquanto a regra não é executada ela nada mais é que um registro de banco de dados, é no momento da execução que ela é avaliada e posta a prova.

A execução é composta por o momento da captura, o momento da avaliação e o momento da decisão, se um erro ocorre no momento da captura o momento da avaliação é rápido e repassa para o decisor que retorna negativando indicando o motivo da falha. Se a captura ocorre o sistema então repassa a informação para a avaliação que mastiga a regra em várias regras, digamos então que a regra abaixo seja válida:
“v=spf1 ip4:200.200.14.200/29 include:spf.dominio.com.br -all”

O sistema  irá separar as informações em quatro partes, o comando “v”, o comando “ip4”, o comando “include” e o comando “all” (não são comandos mas vamos facilitar e nomear assim …), o processo de avaliação irá considerar que o comando “include” é uma nova chamada de DNS pois ele terá que fazer uma nova consulta no SPF, somar a regra do comando atual e agregar nela os complementos da segunda execução, de forma que se o registro de SPF de spf.dominio.com.br contiver a string abaixo
“v=spf1 ip4:201.200.14.200/29  ip4:202.200.14.200/29 -all” 

seria como se o registro anterior estivesse sido escrito da seguinte forma:
“v=spf1  ip4:200.200.14.200/29 ip4:201.200.14.200/29  ip4:202.200.14.200/29 -all”

Ou seja, ao avaliar o sistema de SPF irá juntar todas as regras em uma só e validar elas separadamente.

Por questões de velocidade o comando include apresentado acima só será validado caso seja necessário, ou seja, se eu encaminhar um  email a partir de um domínio que se enquadre na primeira regra (ip4:200.200.14.200/29) a segunda regra será ignorada, somente se o procedimento de avaliação resultar em negativo o segundo comando (include:spf.dominio.com.br) será interpretado.

 

O que é a mensagem “Maximum DNS-interactive terms limit (10) exceeded”

Devido a uma condição de segurança para evitar ataques de DoS e até mesmo problemas com referência circular (o servidor 1 includa o servidor 2 que includa o servidor 1) a recomendação para segurança relacionada no RFC do SPF (http://www.openspf.org/RFC_4408#security) indica que devemos manter um máximo de 10 consultas de domínios por vez nos registros de SPF, ou seja, 10 “includes” por registro de SPF. Você pode até incluir mais de 10 registros, porem haverá situações em que ao consultar um domínio algum servidor pode retornar o erro “Maximum DNS-interactive terms limit (10) exceeded” que indica literalmente que a quantidade de includes de SPF chegou ao máximo e o seu domínio não foi validado. Com isto, independente se seu domínio possui um IP configurado em algum include posterior a geração do erro a regra de SPF não valerá para aquele destinatário que está validando a regra.

Devido a evolução dos serviços de email terceirizados muitos já aumentaram a quantidade limite para um número acima de 10, porem ainda hoje, apesar de mais difícil, encontra-se servidores que ainda se apegam a regra definida no RFC.

 

Alternativas para resolver

Você deve diminuir a quantidade de comandos includes na regra do SPF, uma forma é utilizar mascaras CIDR para diminuir a quantidade de registros de ip4 necessárias para a regra, outra forma é re-ordenar os comandos ip4 de forma a levar uma menor probabilidade da demanda de processar o include, fazendo assim com que o servidor não gere o erro na grande maioria das vezes.

A outra alternativa é solicitar que seu destinatário atualize o sistema de recebimento de emails para que a regra de SPF seja atualizada para uma maior quantidade de checagens de DNS na validação do SPF













Comments

Leave a Reply






Últimos posts