6.5. Utilisation de la redirection DNS
Vous pouvez utiliser la redirection DNS pour remplacer la configuration de la redirection par défaut dans le fichier /etc/resolv.conf
de la manière suivante :
- Spécifiez les serveurs de noms pour chaque zone. Si la zone transférée est le domaine Ingress géré par OpenShift Container Platform, le serveur de noms en amont doit être autorisé pour le domaine.
- Fournir une liste de serveurs DNS en amont.
- Modifier la politique de transfert par défaut.
Une configuration de transfert DNS pour le domaine par défaut peut comporter à la fois les serveurs par défaut spécifiés dans le fichier /etc/resolv.conf
et les serveurs DNS en amont.
Procédure
Modifier l'objet Opérateur DNS nommé
default
:$ oc edit dns.operator/default
Cela permet à l'opérateur de créer et de mettre à jour la carte de configuration nommée
dns-default
avec des blocs de configuration de serveur supplémentaires basés surServer
. Si aucun des serveurs ne dispose d'une zone correspondant à la requête, la résolution de noms revient aux serveurs DNS en amont.Configuration de la redirection DNS
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: servers: - name: example-server 1 zones: 2 - example.com forwardPlugin: policy: Random 3 upstreams: 4 - 1.1.1.1 - 2.2.2.2:5353 upstreamResolvers: 5 policy: Random 6 upstreams: 7 - type: SystemResolvConf 8 - type: Network address: 1.2.3.4 9 port: 53 10
- 1
- Doit être conforme à la syntaxe du nom de service
rfc6335
. - 2
- Doit être conforme à la définition d'un sous-domaine dans la syntaxe du nom de service
rfc1123
. Le domaine de cluster,cluster.local
, n'est pas un sous-domaine valide pour le champzones
. - 3
- Définit la politique de sélection des résolveurs en amont. La valeur par défaut est
Random
. Vous pouvez également utiliser les valeursRoundRobin
, etSequential
. - 4
- Un maximum de 15
upstreams
est autorisé parforwardPlugin
. - 5
- Facultatif. Vous pouvez l'utiliser pour remplacer la stratégie par défaut et transmettre la résolution DNS aux résolveurs DNS spécifiés (résolveurs en amont) pour le domaine par défaut. Si vous ne fournissez pas de résolveurs en amont, les requêtes de nom DNS sont envoyées aux serveurs situés à l'adresse
/etc/resolv.conf
. - 6
- Détermine l'ordre dans lequel les serveurs en amont sont sélectionnés pour l'interrogation. Vous pouvez spécifier l'une de ces valeurs :
Random
RoundRobin
, ouSequential
. La valeur par défaut estSequential
. - 7
- Facultatif. Vous pouvez l'utiliser pour fournir des résolveurs en amont.
- 8
- Vous pouvez spécifier deux types de
upstreams
-SystemResolvConf
etNetwork
.SystemResolvConf
configure l'amont pour utiliser/etc/resolv.conf
etNetwork
définit unNetworkresolver
. Vous pouvez spécifier l'un ou l'autre ou les deux. - 9
- Si le type spécifié est
Network
, vous devez fournir une adresse IP. Le champaddress
doit être une adresse IPv4 ou IPv6 valide. - 10
- Si le type spécifié est
Network
, vous pouvez éventuellement indiquer un port. Le champport
doit avoir une valeur comprise entre1
et65535
. Si vous ne spécifiez pas de port pour l'amont, le port 853 est utilisé par défaut.
Lorsque vous travaillez dans un environnement très réglementé, vous pouvez avoir besoin de sécuriser le trafic DNS lorsque vous transmettez des requêtes à des résolveurs en amont, afin de garantir un trafic DNS supplémentaire et la confidentialité des données. Les administrateurs de clusters peuvent configurer la sécurité de la couche transport (TLS) pour les requêtes DNS transmises.
Configuration du transfert DNS avec TLS
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: servers: - name: example-server 1 zones: 2 - example.com forwardPlugin: transportConfig: transport: TLS 3 tls: caBundle: name: mycacert serverName: dnstls.example.com 4 policy: Random 5 upstreams: 6 - 1.1.1.1 - 2.2.2.2:5353 upstreamResolvers: 7 transportConfig: transport: TLS tls: caBundle: name: mycacert serverName: dnstls.example.com upstreams: - type: Network 8 address: 1.2.3.4 9 port: 53 10
- 1
- Doit être conforme à la syntaxe du nom de service
rfc6335
. - 2
- Doit être conforme à la définition d'un sous-domaine dans la syntaxe du nom de service
rfc1123
. Le domaine de cluster,cluster.local
, n'est pas un sous-domaine valide pour le champzones
. Le domaine de cluster,cluster.local
, est unsubdomain
non valide pourzones
. - 3
- Lors de la configuration de TLS pour les requêtes DNS transférées, le champ
transport
doit avoir la valeurTLS
. Par défaut, CoreDNS met en cache les connexions transférées pendant 10 secondes. CoreDNS maintiendra une connexion TCP ouverte pendant ces 10 secondes si aucune requête n'est émise. Dans le cas de clusters importants, assurez-vous que votre serveur DNS est conscient du fait qu'il pourrait recevoir de nombreuses nouvelles connexions à maintenir ouvertes, car vous pouvez initier une connexion par nœud. Configurez votre hiérarchie DNS en conséquence pour éviter les problèmes de performance. - 4
- Lors de la configuration de TLS pour les requêtes DNS transmises, il s'agit d'un nom de serveur obligatoire utilisé dans le cadre de l'indication du nom du serveur (SNI) pour valider le certificat du serveur TLS en amont.
- 5
- Définit la politique de sélection des résolveurs en amont. La valeur par défaut est
Random
. Vous pouvez également utiliser les valeursRoundRobin
, etSequential
. - 6
- Il est obligatoire. Vous pouvez l'utiliser pour fournir des résolveurs en amont. Un maximum de 15 entrées
upstreams
est autorisé par entréeforwardPlugin
. - 7
- Facultatif. Vous pouvez l'utiliser pour remplacer la stratégie par défaut et transmettre la résolution DNS aux résolveurs DNS spécifiés (résolveurs en amont) pour le domaine par défaut. Si vous ne fournissez pas de résolveurs en amont, les requêtes de nom DNS sont envoyées aux serveurs situés à l'adresse
/etc/resolv.conf
. - 8
Network
indique que ce résolveur en amont doit traiter les demandes transférées séparément des résolveurs en amont répertoriés dans/etc/resolv.conf
. Seul le typeNetwork
est autorisé en cas d'utilisation de TLS et vous devez fournir une adresse IP.- 9
- Le champ
address
doit être une adresse IPv4 ou IPv6 valide. - 10
- Vous pouvez optionnellement fournir un port. La valeur de
port
doit être comprise entre1
et65535
. Si vous ne spécifiez pas de port pour l'amont, le port 853 est utilisé par défaut.
NoteSi
servers
est indéfini ou invalide, la carte de configuration ne contient que le serveur par défaut.Afficher la carte de configuration :
$ oc get configmap/dns-default -n openshift-dns -o yaml
Exemple de ConfigMap DNS basé sur l'exemple précédent de DNS
apiVersion: v1 data: Corefile: | example.com:5353 { forward . 1.1.1.1 2.2.2.2:5353 } bar.com:5353 example.com:5353 { forward . 3.3.3.3 4.4.4.4:5454 1 } .:5353 { errors health kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure upstream fallthrough in-addr.arpa ip6.arpa } prometheus :9153 forward . /etc/resolv.conf 1.2.3.4:53 { policy Random } cache 30 reload } kind: ConfigMap metadata: labels: dns.operator.openshift.io/owning-dns: default name: dns-default namespace: openshift-dns
- 1
- Les modifications apportées au site
forwardPlugin
déclenchent une mise à jour continue de l'ensemble des démons CoreDNS.
Ressources supplémentaires
- Pour plus d'informations sur la redirection DNS, voir la documentation CoreDNS forward.