O cliente não sabe de antemão que a resposta será muito grande, por isso consultará o servidor via UDP.
O servidor responderá via UDP e incluirá o máximo possível e definirá o bit de cabeçalho truncado ("TC" link ).
O cliente pode então reenviar o pedido via TCP e obter a resposta completa.
Veja também: link
In the absence of EDNS0 (Extension Mechanisms for DNS 0) (see below), the normal behaviour of any DNS server needing to send a UDP response that would exceed the 512-byte limit is for the server to truncate the response so that it fits within that limit and then set the TC flag in the response header. When the client receives such a response, it takes the TC flag as an indication that it should retry over TCP instead.
E: link
E, como mencionado nos comentários, é claro que as transferências de zona DNS estão sempre usando TCP.