Red de conocimiento de divisas - Consulta hotelera - Enseñarte a entender DNS en 5 minutos

Enseñarte a entender DNS en 5 minutos

DNS, también llamado Sistema de Nombres de Dominio, es un servicio de Internet. Es esencialmente una base de datos distribuida que asigna nombres de dominio e IP entre sí. Con ella, podemos acceder a Internet de manera más conveniente a través de nombres de dominio.

DNS está distribuido, el protocolo admite TCP y UDP, el puerto comúnmente utilizado es 53, el límite de longitud de cada nivel de nombre de dominio es 63 y el límite de longitud total del nombre de dominio es 253.

En los primeros días, el límite superior del tamaño del mensaje DNS UDP era de 512 bytes, por lo que cuando el tamaño de una respuesta excedía los 512 (demasiada información devuelta), el servicio DNS usaba el protocolo TCP para la transmisión. Más tarde, el protocolo DNS expandió su propio protocolo UDP. Cuando el cliente DNS emite una solicitud de consulta, puede especificar que puede recibir paquetes UDP que superen los 512 bytes. En este caso, DNS seguirá utilizando el protocolo UDP.

Estructura jerárquica de la base de datos:

La estructura de DNS es muy similar al sistema de archivos de Linux, como un árbol invertido. A continuación se utiliza el nombre de dominio de Webmaster Home como ejemplo: el superior es el nombre de dominio raíz, seguido del nombre de dominio de nivel superior, luego el nombre de dominio chinaz de Webmaster Home, y así sucesivamente. Cuando trabaje con nombres de dominio, trabaje de abajo hacia arriba. s.tool.chinaz es un nombre de dominio completo, al igual que www.chinaz.

La razón por la que se diseña una estructura de árbol tan compleja es para evitar conflictos de nombres. Por supuesto, una estructura de árbol de este tipo se puede almacenar en una máquina, pero en el mundo real hay muchos nombres de dominio completos y todos los días se agregan y eliminan una gran cantidad de nombres de dominio. Si existen en una máquina, el rendimiento del almacenamiento de. una sola máquina no es un desafío menor.

Además, otra desventaja de la gestión centralizada es que la gestión no es lo suficientemente flexible. Puede imaginar lo problemático que es aplicar a la base de datos central cada vez que agrega o elimina un nombre de dominio. Por lo tanto, DNS en realidad es almacenamiento distribuido.

El servidor de nombres de dominio raíz solo administra dominios de nivel superior y delega la administración de cada dominio de nivel superior a cada dominio de nivel superior. Entonces, cuando desee solicitar un nombre de dominio de segundo nivel, simplemente. busque el centro de registro de nombres de dominio. Los nombres de dominio de segundo nivel y los nombres de dominio a continuación son suyos para administrar.

Cuando gestionas .us. Cuando una empresa general solicita un nombre de dominio público, si se trata de un producto multinacional, debe elegir un nombre de dominio genérico de nivel superior.

Si no tienes negocios transfronterizos, depende de tus propias preferencias (puedes comparar los servicios, la estabilidad, etc. de varios dominios de primer nivel antes de elegir). A continuación se muestran algunos dominios de nivel superior populares. Para conocer los dominios de nivel superior completos, consulte Wikipedia.

El dominio de nivel superior meme es en realidad un nombre de dominio nacional, que es el nombre de dominio nacional de Montenegro. Sin embargo, se aplica para el desarrollo personal, por lo que muchos blogueros personales lo utilizan como nombre de dominio de su blog.

io Muchos proyectos de código abierto suelen utilizar io como nombre de dominio de nivel superior, que también es un nombre de dominio nacional. Debido a que io tiene la misma abreviatura que entrada/salida en la computadora y también es muy similar al segundo mecanismo de la computadora, le da a la gente una sensación de geek. En comparación con el nombre de dominio .io, .io tiene muchos recursos y más opciones.

Proceso de resolución de DNS:

Después de hablar de los conceptos básicos de DNS, hablemos del proceso de resolución de DNS. Cuando accedemos a Internet a través de un navegador o aplicación, en primer lugar se realizará el proceso de resolución de DNS.

El glibc estándar proporciona la biblioteca dinámica libresolv.so.2, que nuestra aplicación utiliza para la resolución de nombres de dominio (también llamada resolución). También proporciona un archivo de configuración /etc/nsswitch.conf para controlar el comportamiento de resolución. , la línea más crítica en el archivo de configuración es esta línea:

hosts: files dns myhostname.

Determina el orden de resolución. De forma predeterminada, se busca primero el archivo de hosts. Si no se encuentra ninguna coincidencia, se realiza la resolución DNS.

El proceso de resolución predeterminado es el siguiente:

La figura anterior describe principalmente el proceso de resolución en el lado del cliente. Podemos ver que el paso más importante es solicitar al servidor DNS local que realice la resolución, lo cual será. Según la configuración del servidor DNS local, envíe una solicitud de resolución al servidor de resolución recursiva (más adelante presentaremos qué es un servidor de resolución recursiva) y el servidor DNS local se configura en /etc/resolv.conf. Echemos un vistazo al proceso de resolución en el lado del servidor:

Analicemos el proceso de resolución:

El cliente envía una solicitud al servidor DNS local (servidor de resolución recursiva) para resolver la solicitud del nombre de dominio //tool.chinaz, el servidor DNS local verifica el caché para ver si el nombre de dominio //tool.chinaz se ha almacenado en caché. Si es así, se devolverá directamente al cliente; siguiente paso.

El servidor DNS local envía una solicitud al servidor de nombres de dominio raíz para consultar la dirección del servidor de nombres del dominio de nivel superior. Después de obtener la IP del nombre de dominio, envía una solicitud al servidor de nombres para obtenerla. la dirección del servidor de nombres del nombre de dominio chinaz.

Continúe solicitando el servidor de nombres de chinaz para obtener la dirección del nombre de dominio de la herramienta y finalmente obtenga la IP de //tool.chinaz. El servidor DNS local almacena en caché este resultado para un retorno rápido para la siguiente consulta. .

El servidor DNS local devuelve el resultado al cliente, servidor de resolución recursivo versus servidor de nombres de dominio autorizado. Encontramos dos tipos de servidores DNS durante el proceso de resolución. El cliente accede directamente al servidor de resolución recursivo. utilizado durante todo el proceso. El proceso de análisis también es el más ocupado. Sus pasos de consulta son recursivos, comenzando desde el servidor de nombres de dominio raíz y continuando hasta el nombre de dominio de destino.

El servidor de resolución recursiva obtiene la dirección del siguiente objetivo solicitando un nivel de servidores de nombres de dominio autorizados hasta que encuentra el servidor de nombres de dominio autorizado para el nombre de dominio de destino. En pocas palabras: el servidor de resolución recursivo es responsable. para resolver nombres de dominio. Los servidores de nombres de dominio autorizados son responsables de almacenar los registros de nombres de dominio.

Los servidores de análisis recursivo generalmente los proporcionan los ISP. Además, también existen algunos servidores de análisis recursivo públicos conocidos, como el 8.8.8.8 de Google, el 114 de China Unicom y el **Servidor de resolución recursivo. , pero su ISP debe proporcionar el que tenga el mejor rendimiento, pero puede haber problemas de secuestro de DNS.

Almacenamiento en caché, debido a que todo el proceso de resolución es muy complejo, DNS utiliza tecnología de almacenamiento en caché para lograr la solidez del servicio. Cuando el servidor de nombres recursivo analiza el nombre de dominio //tool.chianaz y recibe la consulta //tool.chinaz nuevamente, no volverá a realizar el proceso de análisis recursivo, sino que devolverá directamente el caché del último resultado analizado.

Y se almacena en caché jerárquicamente, es decir, la próxima vez que se reciba la consulta de //www.chinaz, dado que este servidor de resolución recursiva ya conoce el servidor de nombres autorizado de //chinaz, simplemente envía Otra solicitud para consultar www.//chinaz nameserver.

La dirección del servidor de nombres de dominio raíz es fija. Actualmente hay 13 servidores de resolución de nombres de dominio raíz en el mundo. Estos 13 registros se conservan en el servidor de resolución recursivo:

Por qué. ¿Hay sólo 13 raíces? En cuanto a los servidores de nombres de dominio, ¿no debería haber tantos como sea posible para el equilibrio de carga? Como se mencionó anteriormente, el protocolo DNS utiliza consultas UDP. Dado que la longitud máxima de las consultas UDP que pueden garantizar el rendimiento es de 512 bytes, para que todos los datos del servidor de nombres de dominio raíz se incluyan en un paquete UDP de 512 bytes, el servidor raíz puede. solo estará limitado a 13 y cada servidor debe usar un nombre de una sola letra del alfabeto.

La resolución inteligente significa que cuando un nombre de dominio corresponde a varias IP, cuando consulte la IP de este nombre de dominio, se devolverá la IP más cercana a usted. Dado que el ancho de banda entre diferentes operadores nacionales es muy bajo, es un desastre para los usuarios de telecomunicaciones acceder a la IP de China Unicom, y la resolución inteligente de DNS puede resolver este problema.

La resolución inteligente se basa en el protocolo EDNS, que es un protocolo de extensión DNS redactado por Google. La modificación es relativamente simple: simplemente agregue la IP del cliente de origen al paquete DNS, para que el servidor de nombres pueda devolver el servidor. más cerca del cliente según la IP del cliente.

El último soporte nacional para EDNS es DNSPod, un fabricante de resolución de nombres de dominio popular en China. Muchas empresas utilizan DNSPod para acelerar los nombres de dominio.

Generalmente, si queremos registrar un nombre de dominio, necesitamos encontrar un registrador de nombres de dominio. Por ejemplo, si quiero registrar //hola, entonces necesito encontrar un registrador de nombres de dominio para registrar. el nombre de dominio hola. Hay más de un registrador de nombres de dominio. Estos registradores de nombres de dominio también obtuvieron derechos de registro de ICANN. Vea cómo solicitar convertirse en registrador de nombres de dominio.

Los registradores de nombres de dominio crearán sus propios servidores autorizados de resolución de nombres de dominio. Por ejemplo, si solicita un nombre de dominio de segundo nivel en Godaddy, no necesita configurar un servidor de nombres ni administrar su. nombre de dominio directamente en el centro de control de godaddy. Simplemente indíquelo. La razón es que el servidor de nombres autorizado de su nuevo nombre de dominio lo proporciona el registrador de nombres de dominio.

Por supuesto, también puede cambiarlo. Por ejemplo, si solicita un nombre de dominio extranjero de godaddy, cambie el servidor de nombres de dominio autorizado a DNSPod. Por un lado, puede acelerar la resolución nacional. , y por otro lado, podrás disfrutar de la función de resolución inteligente proporcionada por DNSPod.

Utilice bind para construir un servidor de resolución de nombres de dominio. Dado que hay demasiados artículos en Internet sobre la construcción de bind, no entraré en detalles. Los amigos a quienes les guste hacerlo pueden buscar tutoriales de construcción en línea. y construya un servidor local paso a paso. Pruebe con el servidor de nombres. Aquí presentamos principalmente el archivo de configuración de enlace.

El archivo de configuración de enlace se divide en dos partes, el archivo de configuración de enlace y el archivo de configuración de zona. El archivo de configuración de enlace se encuentra en /etc/named.conf. Es el principal responsable de la configuración de la función de enlace. como ruta de zona, registro, seguridad, maestro Entre otras configuraciones, las más importantes son agregar la configuración de zona y especificar el archivo de configuración de zona.

Habilite la función de análisis recursivo. Si no es así, este servicio de enlace solo puede ser un servicio de análisis autorizado. Cuando su servicio de enlace esté expuesto al mundo exterior, abrirlo provocará riesgos de seguridad inadecuados. te hará Los piratas informáticos utilizan el servidor de nombres para crear una zona de parrilla. El archivo de configuración se especifica en el archivo de configuración de enlace. La siguiente figura es una configuración de zona simple:

La configuración de zona es la configuración principal de. el servidor de nombres, que especifica registros DNS, como SOA, A, CNAME, AAAA y otros registros. Hay demasiada información en línea sobre los conceptos de varios registros, por lo que no los repetiré aquí. Entre ellas, hablamos principalmente de las funciones de SOA y CNAME.

El registro SOA indica la dirección del servidor de resolución autorizado de este nombre de dominio. Lo anterior describe la diferencia entre servidores de resolución autoritativos y servidores de resolución recursivos. Cuando todos los servidores de resolución recursivos tienen cachés para la resolución de su nombre de dominio, volverán a la fuente para solicitar el registro SOA de este nombre de dominio, también llamado registro de resolución autoritativo.

El concepto de CNAME es muy similar a un alias, al igual que su lógica de procesamiento. Cuando un servidor realiza una nueva asignación y descubre que el nombre es un CNAME, consultará el registro A de este CNAME. En términos generales, los registros A se pueden usar siempre que se pueda usar CNAME, lo cual es una forma rápida de apuntar múltiples nombres de dominio a la misma IP.

De esta manera, cuando se cambia la IP correspondiente al CNAME de nivel más bajo, el CNAME de nivel superior no necesita realizar ningún cambio. Al igual que la codificación rígida en nuestro código, siempre eliminaremos esta codificación rígida y usaremos una variable para representarla, de modo que cuando la variable cambie, solo necesitemos modificar un lugar.

Después de la configuración, puede usar nombrado-checkconf y nombrado-checkzone.

Se utilizan dos comandos para verificar si hay algún problema con nuestros archivos de configuración y luego podemos iniciar el servicio de enlace: $gt; servicio llamado inicio, Redirigiendo a/bin/systemctl reiniciar llamado.servicio.

Usamos netstat-ntlp para verificar si el servicio está iniciado. Luego probamos el efecto, usamos dig para resolver el nombre de dominio y usamos 127.0.0.1 como servidor de resolución recursivo.

Vemos que el resultado de la excavación es 1.2.3.4 tal como está configurado en nuestro archivo de configuración. DNS completó su misión y obtuvo la IP basada en el nombre de dominio. Utilice DNS para lograr el equilibrio de carga. Agregue varios registros A a un nombre de dominio y utilice el sondeo para devolver uno aleatorio durante la resolución. El tráfico se clasificará uniformemente en varios registros A. www EN A1.2.3.4, www EN A1.2.3.5.

De hecho, cada vez que se realiza una solicitud de resolución de DNS, el servidor de nombres devolverá todas las IP. Como se configuró anteriormente, devolverá 1.2.3.4 y 1.2.3.5 al cliente. Entonces, ¿cómo se logra la RR? El servidor de nombres solo devuelve un tipo diferente de IP cada vez. El cliente utilizará la primera IP en la respuesta para realizar la solicitud. Equilibrio de carga DNS versus equilibrio de carga profesional LVS.

En comparación con herramientas profesionales de equilibrio de carga como LVS, el equilibrio de carga en la capa DNS tiene las siguientes características: es muy sencillo de implementar, solo se puede programar a través de RR de forma predeterminada y DNS no tiene comprobaciones de estado. para servicios de back-end.

El tiempo de recuperación de fallas de DNS es relativamente largo (hay un caché entre los servicios DNS) y la cantidad de rs que se pueden cargar es limitada (limitada por el tamaño del paquete de respuesta de DNS en escenarios reales). , es necesario elegir el equilibrio de carga correspondiente según las necesidades de autorización del subdominio de política.

Después de solicitar un nombre de dominio de segundo nivel http://hola del dominio . Se han asignado los nombres de dominio de tercer nivel a.hello. y b.hello. La estructura del nombre de dominio es la siguiente:

Después de un período de desarrollo, los departamentos A y B tendrán demasiados internos. Las empresas y necesitan solicitar nuevos productos con frecuencia. Nombre de dominio En este momento, quieren construir su propio servidor de nombres y necesitan el nivel superior para entregarse los derechos de administración de nombres de dominio correspondientes. :

Preste atención a la diferencia entre la primera etapa y la segunda etapa: en la primera etapa, si el departamento A quiere solicitar un nombre de subdominio en //a.hello, debe solicitarlo a. sus superiores. La administración de todo el dominio //a.hello está en la oficina central; en la segunda etapa, el departamento A primero construye su propio servidor de nombres y luego la oficina central transfiere los derechos de administración de http://a. hola dominio al servidor de nombres de construcción propia.

El Departamento A creó su propio servidor de nombres y especificó el servidor de resolución autorizado de //a.hello como su propia dirección de servidor de nombres en el archivo de configuración de la zona. La oficina central agregó un registro NS al servidor de nombres y agregó //. a. El dominio de saludo está autorizado para el servidor de nombres del departamento A.

Como mencionamos al usar bind para construir un servidor de resolución de nombres de dominio, simplemente especifique el registro SOA en el archivo de configuración de zona: @IN SOA ns.a.hello admin.a.hello.. (… ).

Agregue un registro NS en el servidor de nombres del dominio http://hello.: a.hello.IN NS ns.a.hello.ns.a.hello. xx (IP de servidor de nombres de construcción propia).

De esta manera, cuando se analiza el nombre de dominio http://xx.a.hello., //hello.nameserver encuentra que hay registros NS en la configuración y continuará analizando de forma recursiva hacia abajo. Las herramientas de depuración de DNS, comúnmente utilizadas en OPS, incluyen: host, nslookup, dig.

Estos tres comandos pertenecen al paquete bind-utils, que es el conjunto de herramientas de enlace. Su complejidad de uso y funciones aumentan en orden. En cuanto a su uso, hay demasiados tutoriales en el manual de usuario y en Internet. El ataque de amplificación de DNS es un tipo de ataque DoS que utiliza una gran cantidad de tráfico para llenar el ancho de banda de la máquina de destino, lo que hace que la máquina de destino rechace las conexiones a las solicitudes normales del usuario y cuelgue.

En un ataque de tráfico normal, la máquina pirateada crea una gran cantidad de solicitudes-respuestas a la máquina objetivo, pero el problema es que requiere una gran cantidad de máquinas pirateadas. Debido a que el ancho de banda de un servidor es generalmente mucho mayor que el de una red doméstica, si nuestra propia computadora personal se utiliza como máquina de piratería, nuestro ancho de banda se sobrecargará antes de que el ancho de banda de la computadora de destino esté lleno.

Principio El proceso de resolución recursiva de DNS es bastante especial. Podemos usar unos pocos bytes de solicitudes de consulta a cambio de cientos o incluso miles de bytes de respuestas de resolución (amplificación de tráfico), y la mayoría de los servidores no defenderán. Servidores DNS.

Siempre que los piratas informáticos puedan disfrazar la IP de origen del paquete de consulta DNS, permitiendo que el servidor DNS envíe una gran cantidad de respuestas a la máquina de destino, pueden implementar un ataque DoS.

Sin embargo, los servidores DNS de uso común filtran las solicitudes de ataque, por lo que encontrar vulnerabilidades en el servidor DNS también es un problema. Para conocer métodos detallados de ataque de amplificación, busque en Google.

上篇: Para todos los dramas televisivos de Taiwán en 2009, cuanto más completos, mejor 下篇: ¿Qué moneda es mmk?
Artículos populares