Iniciativa do dia da bandeira DNS de 2020 para resolver problemas de fragmentação e suporte TCP

Hoje, vários grandes fabricantes de serviços DNS e servidores DNS realizarão um evento conjunto Dia da Bandeira DNS 2020projetado para se concentrar em a decisão проблем com fragmentação de IP ao processar grandes mensagens DNS. Este é o segundo evento desse tipo, no ano passado “Dia da bandeira do DNS” estava focado sobre o correto processamento de solicitações EDNS.

Os participantes da iniciativa DNS Flag Day 2020 estão pedindo que os tamanhos de buffer recomendados para EDNS sejam fixados em 1232 bytes (tamanho de MTU 1280 menos 48 bytes para cabeçalhos), bem como traduzir processar solicitações via TCP é um recurso obrigatório nos servidores. EM RFC 1035 Apenas o suporte para processamento de solicitações via UDP é marcado como obrigatório, e o TCP é listado como desejável, mas não obrigatório para operação. Novo RFC 7766 и RFC 5966 listar explicitamente o TCP como um recurso necessário para que o DNS funcione corretamente. A iniciativa propõe forçar a transição do envio de solicitações por UDP para o uso de TCP nos casos em que o tamanho do buffer EDNS estabelecido seja insuficiente.

As alterações propostas eliminarão a confusão na escolha do tamanho do buffer EDNS e resolverão o problema de fragmentação de grandes mensagens UDP, cujo processamento muitas vezes leva à perda de pacotes e timeouts no lado do cliente. No lado do cliente, o tamanho do buffer EDNS será constante e grandes respostas serão enviadas imediatamente ao cliente por TCP. Evitar o envio de mensagens grandes por UDP também resolverá problemas com pacotes grandes sendo descartados em alguns firewalls e permitirá o bloqueio ataques sobre envenenamento de cache DNS, baseado na manipulação de pacotes UDP fragmentados (quando dividido em fragmentos, o segundo fragmento não inclui cabeçalho com identificador, portanto pode ser forjado, para o que basta corresponder à soma de verificação).

A partir de hoje, os provedores de DNS participantes, incluindo CloudFlare, Quad 9, Cisco (OpenDNS) e Google, mudará gradualmente Tamanho do buffer EDNS de 4096 a 1232 bytes em seus servidores DNS (a alteração do EDNS será distribuída por 4 a 6 semanas e cobrirá um número crescente de solicitações ao longo do tempo). As respostas às solicitações UDP que não se enquadrarem no novo limite serão enviadas via TCP. Fornecedores de servidores DNS, incluindo BIND, Unbound, Knot, NSD e PowerDNS, lançarão atualizações para alterar o tamanho do buffer EDNS padrão de 4096 bytes para 1232 bytes.

Em última análise, essas alterações podem levar a problemas de resolução ao acessar servidores DNS cujas respostas DNS UDP excedem 1232 bytes e não podem enviar uma resposta TCP. Um experimento realizado no Google mostrou que alterar o tamanho do buffer EDNS praticamente não tem efeito na taxa de falhas - com um buffer de 4096 bytes, o número de solicitações UDP truncadas é de 0.345% e o número de novas tentativas inacessíveis por TCP é de 0.115%. Com um buffer de 1232 bytes, esses números são de 0.367% e 0.116%. Tornar o suporte TCP um recurso DNS obrigatório causará problemas em cerca de 0.1% dos servidores DNS. Nota-se que nas condições modernas, sem TCP, o funcionamento desses servidores já é instável.

Os administradores de servidores DNS autoritativos devem garantir que seus servidores respondam via TCP na porta de rede 53 e que essa porta TCP não esteja bloqueada por um firewall. Um servidor DNS respeitável também não deve enviar respostas UDP maiores que
tamanho do buffer EDNS solicitado. No próprio servidor, o tamanho do buffer EDNS deve ser definido para 1232 bytes. Os resolvedores têm aproximadamente os mesmos requisitos - capacidade obrigatória de resposta via TCP, suporte obrigatório para envio de solicitações repetidas via TCP ao receber uma resposta UDP truncada e configuração do buffer EDNS para 1232 bytes.

Os seguintes parâmetros são responsáveis ​​por definir o tamanho do buffer EDNS em diferentes servidores DNS:

  • LIGAR

    opções {
    edns-udp-tamanho 1232;
    tamanho máximo udp 1232;
    };

  • Nó DNS

    carga útil máx.udp: 1232

  • Resolvedor de nós

    net.bufsize(1232)

  • PowerDNS autoritativo

    limite de truncamento udp = 1232

  • Recursor PowerDNS

    edns-outgoing-bufsize=1232
    limite de truncamento udp = 1232

  • Não consolidado

    tamanho do buffer edns: 1232

  • NSD

    tamanho ipv4-edns: 1232
    tamanho ipv6-edns: 1232

    Fonte: opennet.ru

  • Adicionar um comentário