O TCP também é usado se a resposta estiver excedendo 512 bytes, não apenas para transferências de zona.
Eu não bloquearia isso no seu firewall.
Eu executo uma configuração de DNS "mestre primário oculto" no BIND, portanto, apenas secundárias são visíveis para o mundo externo. O firewall atualmente permite o tráfego da Internet para udp / 53 e tcp / 53 nos secundários e tudo parece funcionar bem.
No entanto, todos os dias vejo várias entradas de log de "recusar notificação de não mestre" de endereços externos que não têm nada a ver comigo. Eu entendo o que as entradas de log estão me dizendo lá, mas eu prefiro não ter todo esse "ruído" em meus logs.
Como apenas os secundários estão voltados para a Internet, posso negar com segurança o tráfego tcp / 53 da Internet para impedir as entradas "notificação recusada de não-mestre" ou há um bom motivo para permitir o tráfego tcp / 53 para a Internet? secundárias? O mestre está atrás do mesmo firewall e não seria afetado pela alteração desse firewall.
O mecanismo padrão é que a resposta de truncamentos do servidor de dns é maior que 512 bytes. O cliente DNS deve reenviar a consulta usando TCP para obter resposta completa. A resposta de consultas IPv6 AAAA e DNSSEC pode cair facilmente do limite de 512 bytes. Consultas CNAME com nome de host longo também podem ultrapassar esse limite.
Você pode bloquear a porta tcp / 53 no seu firewall se tiver certeza de que seus CNAMEs não são muito longos e você não planeja usar a resolução DNSSEC e IPv6.
Você também deve verificar por que está recebendo notificações de fora. Isso significa que seu IP está listado em registros NS de algum domínio. Sniff este notifica, se possível - pode indicar que sua configuração de DNS é diferente com o que você pensa.
Eu assumo que a lógica (não-declarada) que você está aplicando nesta instância está assumindo que o DNS usa TCP apenas para transferências de zona, e como você não está fazendo transferências de zona para a Internet, você acha que deve ser seguro para cortar o tráfego da porta TCP 53 da Internet para seus secundários.
Para formular uma resposta, primeiro você precisa entender por que o DNS usa UDP e TCP, e quando usa um ou outro.
A especificação original do DNS informa que o tamanho máximo de um pacote DNS UDP é de 512 bytes. Se uma resposta exceder esse valor, o servidor solicitará que o cliente reenvie a solicitação usando o TCP, e o servidor fornecerá a resposta sobre o TCP. Observe que isso não é apenas para transferência de zona, mas para qualquer resposta grande. Um pacote de resposta DNS típico geralmente seria pequeno o suficiente para caber dentro do limite, mas a linha inferior é que você deve permitir o TCP para seus servidores DNS também, mesmo se você não estiver fazendo transferências de zona para a Internet.
Consulte o RFC 5966. Estritamente falando, o RFC se aplica aos implementadores de software do DNS, mas explica por que os operadores dos servidores DNS também devem permitir o TCP.