¿Cómo es posible que los servidores de nombres raíz manejen todas las solicitudes de DNS?

18

Hace unos días leí sobre DNS y aprendí cómo se procesan las solicitudes. Si navega a www.example.com, una solicitud irá a los Servidores de nombres raíz para ver quién posee esa dirección .com, luego otra solicitud irá a otro servidor DNS más local para ver quién es el propietario de example.com dirección y así sucesivamente.

¿Cómo es técnicamente posible que los 13 servidores de nombres raíz puedan manejar todas las solicitudes realizadas por miles de millones de usuarios de Internet simultáneamente sin ser ddos: ed?

Rox
fuente
11
Por cierto, su resumen de la forma en que funciona el DNS es incorrecto. La pregunta que se hace al servidor de nombres raíz no es "¿quién es el propietario de .com?" pero "¿cuál es la dirección IP de www.example.com?" (el servidor de nombres raíz responde con una referencia al propietario de .com). El servidor de nombres raíz ve la consulta completa (que es útil para estadísticas, minería de datos, etc.).
bortzmeyer
@bortzmeyer La razón principal por la que se envía el nombre completo a los servidores raíz es que no todos los puntos en el nombre son necesariamente un límite de autoridad. En la práctica, creo que siempre hay un límite de autoridad justo debajo del TLD, pero en principio no está garantizado. Por lo tanto, en algún momento en el futuro, podría decidirse introducir un TLD especial en el que los servidores raíz manejen la segunda capa, de modo que cuando consulte a los servidores raíz, a.b.c.examplese le diga quién es responsable en c.examplelugar de quién es responsable example.
kasperd

Respuestas:

51

Son 13 grupos de servidores de alta disponibilidad , no solo 13 servidores.

Entre otras cosas, los operadores de servidores de nombres raíz deben tener suficiente capacidad para manejar tres veces su carga de tráfico normal ( RFC 2870 ). Esto lleva a grupos bastante grandes.

Sin embargo, los servidores de nombres raíz sólo sirven respuestas de los dominios de nivel superior a sí mismos, es decir com., net., uk., ae., etc., y los servidores de nombres, que consulta la raíz puede almacenar en caché esta información hasta 48 horas , lo que reduce drásticamente la carga en los servidores de nombres raíz. Esto lleva a grupos más pequeños.

Los servidores de nombres raíz se encuentran en más de 130 ubicaciones físicas en 53 países; con solo 13 nombres de servidor, esto se hace a través de la magia de IPv4 anycast.

Los servidores de nombres raíz también tienen su propio sitio web , que puede encontrar una lectura interesante.

Michael Hampton
fuente
48 h es el TTL de los registros NS en la raíz. Pero puede ser anulado por los servidores de nombres del propio TLD. Por ejemplo, para .jp, solo son 24 h.
bortzmeyer
Bueno, nosotros estamos hablando de los servidores de nombres raíz aquí. :)
Michael Hampton
RFC 2870 está bastante desactualizado hoy. Debido a los ataques dDoS, un servidor de nombres raíz debe estar listo para responder mucho más de tres veces su tráfico normal.
bortzmeyer
8
53 países? ¿Es una coincidencia o lo eligieron como el puerto de consulta DNS? : D
amyassin
10

Ellos no. Los servidores de nombres raíz solo tienen que decirle qué manejan los servidores de nombres com. A partir de entonces, no es necesario que vayas a ellos para manejar ningún dominio dentro com. Los servidores de nombres raíz no tienen idea de quién es el propietario example.com. Son servidores de nombres raíz , no servidores de nombres com .

Lo que dijo slimsuperhero también es cierto. Muchos servidores de nombres de alto volumen usan anycast para tener una única dirección IP servida por varios servidores en todo el mundo.

David Schwartz
fuente
Pero si mil millones de usuarios navegaran por diferentes direcciones .com al mismo segundo, ¿los servidores de nombres raíz manejarían todas las solicitudes?
Rox
3
No. Por un lado, los usuarios solo hablan con servidores de nombres recursivos (aquellos que se conectan a otros servidores de nombres para obtener respuestas) y los servidores de nombres raíz no son recursivos (solo sirven información local que ya conocen). Los usuarios hablan con sus propios servidores de nombres (generalmente proporcionados por su ISP) que solo necesitan preguntar a los servidores de nombres raíz una vez por los servidores que manejan com.
David Schwartz
1
@DavidSchwartz es correcto, por lo que en lugar de mil millones de solicitudes de mil millones de usuarios, solo recibirían aproximadamente un millón de solicitudes de un millón de ISP, cada uno de los cuales atiende a mil usuarios.
Shadur
@Shadur: Ahora, los servidores de nombres por comotro lado deben recibir una paliza mucho más masiva.
David Schwartz
1
Y estoy bastante seguro de que están escalados y agrupados adecuadamente.
Shadur
6

Cada servidor raíz no es realmente un servidor, son grandes grupos de servidores. Además de esto, las respuestas DNS se almacenan en caché para que no todas las solicitudes lleguen al servidor raíz.

Gevial
fuente
3

Tenga en cuenta que usted no utiliza los servidores raíz. Por lo general, utiliza el servidor DNS proporcionado por su proveedor de servicios de Internet, que generalmente puede responder de inmediato si la información que necesita está en su caché local. Solo si no se almacena en caché, se solicita su servidor DNS ascendente y solo eventualmente se le pregunta al servidor raíz (y esa respuesta se almacena en caché)

Thorbjørn Ravn Andersen
fuente
0

En realidad, son 13 direcciones IP Anycast que resuelven muchos servidores en todo el mundo. Puede mirar el enlace para encontrar esos servidores si es necesario. Todos estos servidores son administrados por la autoridad correspondiente.

El hecho de que sigamos usando solo 13 direcciones IP (y un grupo de servidores que tienen la misma dirección IP) es para garantizar que el tamaño del paquete no supere los 512 bytes. ¿Entonces por qué? tenemos TCP que puede ir más allá de este tamaño de paquete, ¿por qué no podemos usarlo? La cuestión es que TCP implica una sobrecarga muy alta, ya que incluye múltiples pasos y procedimientos para establecer una conexión TCP. Debido a esto, todo el proceso de una consulta DNS irá lento.

Cosas como DNS nunca pueden ser lentas y es por eso que todavía usamos el mismo sistema anterior.

Jaison
fuente
La respuesta a una consulta para .ya no cabe en 512 bytes. Debido a que IPv6 ahora es una necesidad, la respuesta ha crecido a 811 bytes. Con EDNS que se puede devolver en una sola respuesta. Sin embargo, las consultas para .no son necesarias con tanta frecuencia que un par de viajes de ida y vuelta es un espectáculo. Principalmente es necesario que los recurrentes aprendan los últimos cambios en las direcciones IP de las raíces, que rara vez cambian.
Kasperd
@kasperd No estoy seguro. Verifiqué dig + trace para el registro A normal o el registro AAAA y todas las respuestas (de servidores de nivel raíz, servidores de nivel superior o en servidores de nombres) tienen menos de 508 a 509 bytes. ¿Puedes explicar un poco más al respecto?
Jaison
Necesita usar EDNS o TCP para obtener la respuesta completa. Las solicitudes UDP sin EDNS nunca pueden obtener una respuesta de más de 512 bytes.
Kasperd