¿Por qué debería usar un FQDN en lugar de la dirección IP del servidor?

29

En mi trabajo con servidores, he encontrado archivos de configuración en los que debe ingresar la dirección a un servidor externo. He visto a algunos usar la dirección IP del servidor directamente, pero he escuchado muchas recomendaciones para usar un nombre de dominio completo (FQDN). ¿Por qué debería usar un nombre de host en lugar de la dirección IP directa?

Porque si usa un nombre de host, necesitaría un servidor DNS local que vincule cada nombre de host a una dirección IP. ¿Cuál es la desventaja entre usar un nombre de host o una dirección IP?

Emil Rowland
fuente
55
Si tiene IP dinámicas, probablemente sea más fácil simplemente cambiar el registro DNS. ¿Y por qué un servidor DNS local? ¿Por qué no hacer que todas las máquinas tengan IPs públicamente resolubles? Otra desventaja de las IP es que, incluso si no son dinámicas, probablemente aún dependan de la ubicación física, lo que dificulta la migración a una ubicación diferente. Básicamente, parece que te estás preguntando por qué se inventó el DNS. Esta pregunta ha sido respondida muchas veces en otros lugares.
Janus Troelsen
1
Siempre ha sido una recomendación (en RFC, por ejemplo) que en el nivel de aplicación uno solo trate con nombres de host. Sin embargo, algunas aplicaciones ni siquiera funcionarán a menos que con IP. Sin embargo, yo mismo soy culpable de contactar a menudo mis dispositivos por IP en lugar del nombre de host, pero ese mal hábito ciertamente terminará tan pronto como hayamos migrado por completo a IPv6 :)
Hagen von Eitzen
Porque, por supuesto, el servidor externo asegurará todas las comunicaciones con SSL, y los certificados SSL se firmarán para el FQDN, y su aplicación no puede verificar el servidor correcto si utiliza la dirección IP. ¿Correcto? : |
TessellatingHeckler
1
@HagenvonEitzen ¿Seguro que nunca escribirás ::1? :-)
un CVn

Respuestas:

54

El uso de una dirección IP garantiza que no dependa de un servidor DNS. También tiene el beneficio de prevenir ataques a través de la falsificación de DNS.

El uso de un FQDN en lugar de una dirección IP significa que, si tuviera que migrar su servicio a un servidor con una dirección IP diferente, simplemente podría cambiar el registro en DNS en lugar de intentar encontrar en todas partes donde se utiliza la dirección IP .

Esto es especialmente útil cuando tiene muchos servidores y servicios configurados por varias personas.

Joshua Griffiths
fuente
1
Especialmente si el conocimiento de esa dirección IP también es externo, como si lo usan clientes, socios o proveedores. Imagínese si en lugar de stackoverflow.com, todos fuéramos a una IP que conocíamos como stackoverflow.com, y luego ¿necesitaban cambiar la IP? ¿Cómo le dirían a cada posible usuario del sitio que la IP ha cambiado? De ahí los nombres.
Brandon
@Brandon, sería lo mismo que si ahora decidieran cambiar de stackoverflow.com a heapunderflow.com. El beneficio original de los nombres de dominio es que los humanos lo recuerden en stackoverflow.comlugar de hacerlo 151.101.1.69. Por supuesto, hoy en día eso también permite alojamiento virtual, subdominios relacionados con sus padres y otros beneficios que han surgido de ellos.
Ángel
2
Creo que el núcleo de esta respuesta es que una organización posee su FQDN; pero puede no ser dueño de su dirección IP.
Pieter Geerkens
1
Intente ejecutar HTTPS / Kerberos sobre IP frente a FQDN.
Aron
Este es literalmente el propósito del DNS.
Lightness compite con Monica el
40

DNS no es solo FQDN = IP

Lo importante sobre DNS es que proporciona más que solo registros A (nombre de host = IP). DNS proporciona diferentes tipos de registros, como MX, CNAME, TXT, etc., que algunos programas pueden requerir, a veces. Permite múltiples registros de direcciones, registros IPv4 + IPv6, direcciones dinámicas, equilibrio de carga, resolución basada en la ubicación geográfica, conmutación por error / redundancia, etc. DNS te dice qué son (www.google.com es el servicio web de Google, 172.217 .4.110? ¿Qué es eso?) Le permite cambiar estas configuraciones / registros y que los clientes los recojan sin hacer cambios en todos los clientes. DNS puede hacer cosas complejas.

A menudo hay una clara ventaja de usar DNS sobre una dirección IP directa.

Los FQDN pueden ser un requisito

Algunas cosas, como los servidores web que utilizan alojamiento virtual basado en nombres o equilibradores de carga, etc., requieren absolutamente que los aborde a través de un FQDN o nombre de host. Determinan cómo responder a su solicitud en función del FQDN al que se está conectando. La conexión a través de una IP puede no funcionar en absoluto.

Los certificados SSL se emiten en función de los nombres de dominio, por lo que es posible que no pueda utilizar algunos servicios habilitados para SSL (correctamente) sin DNS.

Esta es una consulta de excavación para el dominio google.com para darle una idea de la complejidad del DNS

google.com. 299 EN UN 172.217.0.174
google.com. 299 EN AAAA 2607: f8b0: 400b: 807 :: 200e
google.com. 599 IN MX 10 aspmx.l.google.com.
google.com. 599 IN MX 40 alt3.aspmx.l.google.com.
google.com. 59 EN SOA ns2.google.com. dns-admin.google.com. 126990955 900900 1800 60
google.com. 599 IN MX 30 alt2.aspmx.l.google.com.
google.com. 21599 IN NS ns2.google.com.
google.com. 599 IN MX 20 alt1.aspmx.l.google.com.
google.com. 599 IN MX 50 alt4.aspmx.l.google.com.
google.com. 21599 IN NS ns1.google.com.
google.com. 3599 IN TXT "v = spf1 incluye: _spf.google.com ~ all"
google.com. 21599 EN CAA 0 número "symantec.com"
google.com. 21599 IN NS ns3.google.com.
google.com. 21599 IN NS ns4.google.com.

Yahoo responde con 3 direcciones IP

$ host -ta yahoo.ca
yahoo.ca tiene dirección 77.238.184.24
yahoo.ca tiene dirección 74.6.50.24
yahoo.ca tiene dirección 98.137.236.24

Ventaja de usar una dirección IP

Para mí, generalmente es cuando DNS podría interferir de alguna manera o no está disponible. En general, usaría DNS para la mayoría de las cosas.

Un ejemplo de dónde podría ser mejor una dirección IP sería cuando tiene dos máquinas con un enlace directo entre ellas (sin conmutador) con direcciones de red privadas (digamos 192.168.1.1 y 192.168.1.2) y la están utilizando para comunicaciones de alta disponibilidad o DRBD u otro servicio muy específico. En este caso, configurar cosas en DNS probablemente no tenga ningún sentido. No es necesario, agregaría complejidad, problemas de rendimiento y podría introducir un punto de falla.

Otro ejemplo es el enrutamiento. Las tablas de enrutamiento registran las direcciones IP por varias razones.

Otro es hacer referencia a los servidores de nombres (como en /etc/resolv.conf). Como sin un servidor de nombres, no puede resolver nada.

Ryan Babchishin
fuente
Esta es una gran respuesta, pero probablemente también debería decir algo sobre los servicios vhosted; IP⟷FQDN es una asignación de muchos a muchos, no de muchos a uno.
esponjoso
Gracias y acepto. DNS es muy útil para el alojamiento virtual basado en nombres si a eso se refiere.
Ryan Babchishin
Sí, a eso me refería.
esponjoso
Gran respuesta que realmente hace que DNS sea correcto: marcadores para referencia futura. Una pequeña queja que tengo es su comentario "Las tablas de enrutamiento registran las direcciones IP por varias razones". ¿Cuáles son las diversas razones a las que se refiere? Las tablas de enrutamiento no tienen más remedio que usar IP porque el enrutamiento ocurre en la capa de Internet, mientras que DNS usa la capa de aplicación y, por lo tanto, depende necesariamente del enrutamiento.
cabeza de jardín
@gardenhead Gracias. Eso es correcto sobre el enrutamiento, simplemente no quería entrar en él. Perdona mi elección de palabras.
Ryan Babchishin el