¿Qué llamadas se realizan en Linux para convertir un nombre de host a una dirección IP durante el proceso de resolución de DNS?

En Linux, el proceso de resolución de DNS se lleva a cabo mediante el objeto compartido de la biblioteca de resolución de espacio de usuario llamado “libresolv” de libc, que es responsable de crear, enviar e interpretar paquetes a los servidores de nombres de dominio de Internet. Las llamadas típicas realizadas por programas ejecutados en Linux son res_query , res_search , res_querydomain , etc. Las definiciones completas se pueden encontrar en el archivo resolv.h .

El trabajo básico que realiza la biblioteca después de consultar las fuentes de resolución locales

  1. Obtener servidores de nombres de /etc/resolv.conf
  2. Envía un paquete de consulta DNS en el puerto 53 al servidor DNS con prioridad
  3. Interpreta la respuesta y lo hace en consecuencia (vuelve a consultar o establece respuestas o prueba el siguiente servidor)

Las funciones populares como gethostbyname utilizadas por la mayoría de los programas utilizan esta biblioteca para manejar su parte de consulta DNS.

Linux usa la llamada del sistema ‘getaddrinfo’ para convertir el nombre de host a la dirección IP.

Fuente: http://stackoverflow.com/a/2157627