He visto cuál es la representación de texto de una solicitud HTTP, pero ¿cómo se ve una solicitud DNS? ¿En qué parte de los datos se encuentra la ubicación de la URL que está tratando de localizar? Además, ¿cómo se formatea la respuesta?
32
Respuestas:
Este es un volcado sin procesar de Wireshark de una consulta DNS.
La parte DNS comienza con 24 1a:
Y aquí está el desglose:
Y la respuesta, nuevamente comenzando en 24 1a:
Descompostura:
Editar:
Tenga en cuenta que si su verdadera pregunta es "¿cómo escribo un servidor DNS?", Entonces hay dos respuestas apropiadas:
Editar (2):
La solicitud se envió usando
host
una caja de Linux:Si está en Windows, puede usar
nslookup
fuente
/questions/173187/what-does-a-dns-request-look-like
incluido en la solicitud?El diseño de datos de solicitud de DNS se describe en RFC 1035 . Creo que no tiene sentido copiar el texto aquí ...
fuente
Las consultas y respuestas DNS se analizan mejor utilizando un analizador de protocolos: Wireshark es una buena herramienta multiplataforma que puede capturar y deconstruir las solicitudes y respuestas en sus diversas partes. Hay una buena introducción a la estructura de solicitudes y respuestas de DNS en Firewall.cx aquí .
Las solicitudes de DNS contienen preguntas que especifican un nombre (o tal vez un campo de texto algo arbitrario) y un tipo de registro; el contenido de la respuesta variará según el tipo. La mayoría de las solicitudes son búsquedas directas simples de un nombre de servidor en busca de una dirección IP en respuesta (Tipo A), pero algunas buscarán más información sobre los propios servidores de nombres (Tipo NS), registros de correo (Tipo MX) y otros servicios (Tipo SRV que devolverá nombres, puertos, pesos y prioridades). Las respuestas de DNS contienen respuestas a estas preguntas, posiblemente más de una si la solicitud lo requiere y no siempre son solo direcciones IP.
Otra aclaración: el DNS no resuelve las URL: en la mayoría de los escenarios que involucran URL, el DNS solo se usa para permitir que el sistema del lado del cliente encuentre la dirección IP de la parte del servidor de la URL, todo lo demás es manejado por otros protocolos.
fuente
Si puede acceder a una máquina Linux, puede ejecutar el comando cavar para realizar una búsqueda de DNS. Esta utilidad realiza una búsqueda y devuelve exactamente con qué responde el servidor de nombres. Por ejemplo:
Todo lo que comienza con la sección "HEADER" es lo que devuelve el servidor de nombres. Supongo que esto es a lo que se refiere como formato de texto porque este no es el formato del paquete real, sino que es el texto que se devuelve.
fuente