Acho que seus dados precisam de algumas novas aproximações, já que uma resposta normal do servidor DNS é menor que 520 bytes (na verdade, a maioria dos roteadores pode fornecer dores de cabeça quando o tamanho do pacote UDP ultrapassa 512kb - mas não estamos falando aqui apenas de UDP).
Aqui vai - vai usar duas ferramentas linux muito conhecidas para aproximar o tamanho de uma requisição típica de DNS. cavar linux.org + stats
; <<>> DiG 9.6.1-P1 <<>> linux.org +stats
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7061
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;linux.org. IN A
;; ANSWER SECTION:
linux.org. 43200 IN A 198.182.196.48
;; AUTHORITY SECTION:
linux.org. 43180 IN NS ns0.aitcom.net.
linux.org. 43180 IN NS ns.invlogic.com.
;; Query time: 239 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Oct 29 11:52:44 2009
;; MSG SIZE rcvd: 100
Como você pode ver, fiz uma consulta DNS ao servidor DNS local, interface de loopback (para simplificar e clarear). Você deve achar interessante a última linha "MSG SIZE" ...
Confirme com o tcpdump (rodando na interface de loopback):
IP localhost.36855 > localhost.domain: 7061+ A? linux.org. (27)
IP localhost.domain > localhost.36855: 7061 1/2/0 A 198.182.196.48 (100)
O que você vê no final de cada linha é o tamanho real (a coisa que você está procurando).
Aconselho-o a executar várias consultas de teste e a calcular o tamanho médio do pedido de DNS nos seus cálculos. Fique de olho nos domínios que não são servidos diretamente de seus servidores DNS (isso deve ser um pouco interessante).
Kaplah.