Manual CoreDNS (4)_ _Configuración
Primero, determine qué complementos están compilados en CoreDNS. Los paquetes ejecutables binarios compilados (binarios) que proporcionamos ya contienen todos los complementos. Los complementos se enumeran en plugin.cfg. Son fáciles de agregar y eliminar, pero es necesario volver a compilar CoreDNS.
La mayoría de usuarios utilizan el archivo Corefile para configurar CoreDNS. Cuando se inicia CoreDNS, si el indicador -conf no está configurado, buscará el archivo Corefile en el directorio actual.
Este archivo contiene uno o más bloques de servidor. Cada bloque de servidor enumera uno o más complementos. Estos complementos también se pueden configurar más adelante mediante directivas.
En el archivo Corefile, el orden de los complementos no determina el orden de la cadena de complementos. El orden de ejecución del complemento se configura en el archivo plugin.cfg.
Los comentarios en los archivos Corefile comienzan con #. El resto de la línea se reconoce como un comentario.
CoreDNS admite variables de entorno en la configuración.
Las variables de entorno se pueden utilizar en cualquier lugar. La sintaxis es {$ENV_VAR} (también se admite la sintaxis de tipo de Windows {%ENV_VAR%}). CoreDNS reemplazará el contenido de estas variables al analizar el Corefile.
Cita el complemento de importación.
Este complemento es un poco especial y se puede utilizar en cualquier parte del Corefile.
Un archivo importable muy especial es el fragmento. Los fragmentos se definen mediante una sintaxis especial para bloques con nombre. El nombre debe colocarse entre paréntesis: (nombre). Luego se puede colocar en cualquier lugar del archivo de configuración junto con los complementos importados.
Cada bloque de servidor comienza con la región que el servidor debe servir. El bloque del servidor comienza y termina con llaves después del nombre de la zona o del nombre de la lista de zonas (separados por espacios).
El siguiente bloque de servidor define un servidor responsable de todas las zonas bajo la zona raíz:. Básicamente, este servidor debería manejar todas las consultas:
El bloque del servidor también puede especificar un puerto de escucha. El puerto predeterminado es 53 (puerto estándar del servicio DNS). Especifique el puerto y enumere el número de puerto con dos puntos como separador después de la zona.
El siguiente Corefile le indica a CoreDNS que cree un servidor con el puerto de monitoreo 1053:
Define una zona para el bloque del servidor, pero la zona ya está configurada y ejecutándose en el servidor, ejecutándose en Lo mismo en el puerto. Corefile informará un error al iniciar:
Cambiar el segundo puerto a 1055 hará que los dos servidores bloqueen dos servidores diferentes.
CoreDNS actualmente acepta cuatro protocolos: DNS, DNS sobre TLS (DOT) y DNS sobre HTTP/2 (DOH).
Y DNS sobre gRPC. Puede especificar los protocolos que recibe el servidor anteponiendo la zona en el archivo de configuración del servidor.
Cada bloque de servidor define un conjunto de complementos. La forma más sencilla es agregar el nombre del complemento en el bloque del servidor:
Plugin Chaos le dice a CoreDNS que responda consultas con la clase CH, lo que es útil para identificar servidores. Con la configuración anterior, CoreDNS responderá con su versión cuando se solicite:
La mayoría de los complementos permiten más instrucciones de configuración. Por ejemplo, para el complemento Chaos, podemos definir la versión y el autor en la sintaxis:
Esto agrega un comando al complemento Chaos para permitir que CoreDNS responda a la versión en CoreDNS-001. formato:
Otros complementos tienen más configuración, usan bloques de complementos, como bloques de servidor, comienzan y terminan con llaves:
Combinémoslo todo y generemos el siguiente Corefile. y configure las 4 regiones para ejecutar y 2 puertos diferentes:
Cuando CoreDNS analiza el archivo de configuración, habrá las siguientes configuraciones:
Los complementos de extensión son complementos que CoreDNS no incluye por defecto. Puede abrir la extensión, pero debe compilar CoreDNS usted mismo.
La documentación sobre el estado del complemento dice "Este complemento solo debe habilitarse una vez", lo que podría llevarte a pensar que lo siguiente es un Corefile compatible:
Sin embargo, esto no funciona y provocará algunos errores transitorios:
¿Por qué? La salud se considera una zona (y el inicio de un bloque de servidor). El analizador espera ver el nombre del complemento (caché, etcd, etc.), pero el siguiente logotipo es. Esto no es un complemento.
El archivo principal correcto es el siguiente:
La frase en la documentación de estado del complemento significa que una vez que se define el estado, es global para todo el proceso CoreDNS, incluso si usted lo define. en el servidor.