Eu acho que o DNS é um protocolo de camada de aplicativo, porque se, por exemplo, eu quero criar uma conexão TCP, preciso do endereço IP de destino na camada 4, estou correto?
IP é um protocolo de camada 3.
O DNS é apenas um serviço que traduz nomes de host em endereços IP; você precisa disso porque os humanos são melhores em lembrar nomes do que números.
Portanto, depois de inserir o nome de um site, o cliente do navegador possui alguma API para solicitar ao sistema operacional que emita uma solicitação de DNS para o nome digitado.
As solicitações de DNS são transmitidas para um endereço IP específico do servidor DNS que reside em algum lugar da Internet (o endereço que você configurou manualmente ou recebeu por meio de uma atualização DHCP). Para que esse servidor saiba qual serviço você deseja especificamente (como esse servidor também pode ser um servidor HTTP, por exemplo), você também precisa especificar um número de porta, o DNS usa a porta UDP 53. Portanto, por esse motivo, deve ser um protocolo de camada de aplicativo.
Se o seu servidor DNS sempre residisse na sua sub-rede local, você poderia ter um protocolo da Camada 4 para implementar isso (o servidor identificaria a solicitação de entrada pelo endereço IP multicast exclusivo dedicado a este serviço - o mesmo mecanismo do OSPF, por exemplo).