commande nsupdate
Objectif
Met à jour un serveur DNS de manière dynamique.
Syntaxe
nsupdate [-d] [-D] [-i] [-L niveau] [ [-g] | [-o] | [-l] | [-y [hmac:]nom de code:secret] | [-k fichier clé] ] [-t délai d'attente] [-u udptimeout] [-r udpretries] [-v] [-T] [-P] [-V] [ [-4] | [-6] ] [nom de fichier]
Descriptif
La commande nsupdate soumet des demandes de mise à jour DNS dynamique, comme défini dans RFC 2136, à un serveur de noms. Cette commande permet d'ajouter ou de supprimer des enregistrements de ressources dans une zone sans modifier manuellement le fichier de zone. Une seule demande de mise à jour peut contenir des demandes d'ajout ou de suppression de plusieurs enregistrements de ressource.
Les zones contrôlées de manière dynamique à l'aide de la commande nsupdate ou d'un serveur DHCP ne doivent pas être éditées manuellement. Les modifications manuelles peuvent entrer en conflit avec les mises à jour dynamiques et entraîner une perte de données.
Les enregistrements de ressource qui sont ajoutés ou supprimés de manière dynamique à l'aide de la commande nsupdate doivent se trouver dans la même zone. Les demandes sont envoyées au serveur primaire de la zone, qui est identifié par le champ " MNAME dans l'enregistrement de début d'autorité (SOA) de la zone.
Les signatures de transaction (TSIG) peuvent être utilisées pour authentifier les mises à jour DNS dynamiques. Les signatures de transaction utilisent le type d'enregistrement de ressource TSIG comme décrit dans RFC 2845, l'enregistrement SIG (0) comme décrit dans RFC 2535 et RFC 2931ou GSS-TSIG comme décrit dans RFC 3645.
TSIG s'appuie sur un secret partagé qui doit être connu uniquement de la commande nsupdate et du serveur de noms. Par exemple, des instructions de clé et de serveur appropriées sont ajoutées au fichier /etc/named.conf afin que le serveur de noms puisse associer la clé secrète et l'algorithme appropriés à l'adresse IP de l'application client qui utilise l'authentification TSIG. La commande ddns-confgen peut générer des fragments de configuration appropriés. La commande nsupdate utilise les options -y ou -k pour spécifier le secret partagé TSIG. Ces options s'excluent mutuellement.
La clé SIG (0) utilise la cryptographie à clé publique. Pour utiliser une clé SIG (0), la clé publique doit être stockée dans un enregistrement KEY dans une zone prise en charge par le serveur de noms. Le Generic Security Service Algorithm - Transaction Signature (GSS-TSIG) utilise des informations d'identification Kerberos. Le mode GSS-TSIG standard est activé en utilisant l'indicateur '-g
Indicateurs
- -4
- Indique que seul IPv4 doit être utilisé.
- -6
- Indique que seul IPv6 doit être utilisé.
- -d
- Définit un mode de débogage qui fournit des informations sur les demandes de mise à jour et les réponses reçues du serveur de noms.
- -D
- Définit le mode débogage supplémentaire.
- -g
- Active le mode GSS-TSIG standard.
- -i
- Force le mode interactif, même lorsque l'entrée standard n'est pas un terminal.
- fichier clé-k
- Indique le fichier contenant la clé d'authentification TSIG. Les fichiers clés peuvent être présentés dans les formats suivants :
- Un fichier unique contenant une déclaration clé "
named.conf-format, qui peut être générée automatiquement par la commande " ddns-confgen. - Une paire de fichiers dont les noms sont au format " K{name}.+157.+{random}.key et " K{name}.+157.+{random}.private, qui peuvent être générés à l'aide de la commande " dnssec-keygen.
Vous pouvez également utiliser l'indicateur '-k pour spécifier une clé SIG(0) utilisée pour authentifier les demandes de mise à jour dynamique du DNS. Dans ce cas, la clé spécifiée n'est pas une clé HMAC-MD5.
- Un fichier unique contenant une déclaration clé "
- -l
- Définit un mode "hôte local uniquement", qui définit l'adresse du serveur à "
localhost(désactivation du serveur de sorte que l'adresse du serveur ne puisse pas être remplacée). Les connexions au serveur local utilisent une clé TSIG qui se trouve dans le fichier /var/run/named/session.key , qui est automatiquement généré par le démon named si une zone principale locale a défini l'option update-policy surlocal. L'emplacement de ce fichier de clés peut être remplacé à l'aide de l'option -k . - niveau-L
- Définit le niveau de journalisation de débogage. Si la valeur est zéro, l'opération de consignation est désactivée.
- -o
- Active une variante non conforme aux normes de GSS-TSIG utilisée par Windows 2000.
- port-p
- Définit le port qui doit être utilisé pour la connexion à un serveur de noms. La valeur par défaut est 53.
- -P
- Imprime la liste des types d'enregistrement de ressource privés spécifiques à BIND dont le format est identifié par la commande nsupdate . Voir aussi l'option -T .
- -r udpretries
- Définit le nombre de tentatives de User Datagram Protocol (UDP). La valeur par défaut est 3. Si la valeur est zéro, une seule demande de mise à jour est traitée.
- délai d'attente-t
- Définit la durée maximale qu'une demande de mise à jour peut prendre avant d'être abandonnée. La valeur par défaut est de 300 secondes. Si la valeur est nulle, le délai d'attente est désactivé pour le mode Transmission Control Protocol (TCP). Pour le mode UDP, l'option " -u est prioritaire sur l'option " -t, à moins que l'option " -u ne soit mise à zéro. Si l'option " -u est fixée à zéro, l'intervalle est calculé à partir de la valeur du délai d'attente fournie avec l'option " -t et du nombre de tentatives UDP. Pour le mode UDP, le délai d'attente ne peut pas être désactivé et est arrondi à 1 seconde si les options '-t et '-u sont toutes deux à zéro.
- -T
- Imprime la liste des types d'enregistrement de ressource standard IANA (Internet Assigned Numbers Authority) dont le format est identifié par la commande nsupdate . La commande nsupdate se ferme une fois les listes imprimées. Vous pouvez combiner l'option -T avec l'option -P .
D'autres types peuvent être introduits en utilisant "
TYPEXXXXXoù XXXXX est la valeur décimale du type sans zéros de tête. La valeur "rdata, si elle est présente, est analysée en utilisant le format "rdataINCONNU. Le format UNKNOWN 'rdataest '<backslash> <hash> <space> <length> <space> <hexstring>. - -u udptimeout
- Définit l'intervalle entre les nouvelles tentatives UDP. La valeur par défaut est 3 secondes. Si la valeur est zéro, l'intervalle est calculé à partir de l'intervalle de délai d'attente et du nombre de nouvelles tentatives UDP.
- -v
- Indique que TCP doit être utilisé même pour les demandes de mise à jour de petite taille. Par défaut, la commande " nsupdate utilise UDP pour envoyer des demandes de mise à jour au serveur de noms, sauf si une demande UDP ne peut pas être utilisée, auquel cas TCP est utilisé. TCP est préférable lorsqu'un lot de demandes de mise à jour est reçu.
- -V
- Imprime le numéro de version et quitte.
- --y [hmac :]keyname:secret
- Définit la clé d'authentification TSIG littérale. Le nom de la clé est le nom de la clé, et le secret est le secret partagé codé en Base64. L'argument hmac est le nom de l'algorithme de clé. Les algorithmes suivants sont des algorithmes de clés valides :
hmac-md5hmac-sha1hmac-sha224hmac-sha256hmac-sha384hmac-sha512
Si l'option hmac n'est pas spécifiée, la valeur par défaut est "hmac-md5, ou si MD5 est désactivé, la valeur par défaut est "hmac-sha256.Remarque: utilisez l'indicateur -y avec parcimonie car le secret partagé est spécifié en tant qu'argument de ligne de commande en texte clair. Le secret partagé peut être visible dans la sortie de l'invite "ps1ou dans un fichier d'historique conservé par l'interpréteur de commandes de l'utilisateur.
Format d'entrée
La commande nsupdate lit l'entrée à partir du nom de fichier spécifié ou de l'entrée standard. Chaque commande est spécifiée sur une seule ligne d'entrée. Certaines commandes sont utilisées à des fins administratives. Les autres commandes sont des instructions de mise à jour ou sont utilisées pour effectuer des contrôles préalables sur le contenu de la zone. Ces vérifications définissent les conditions selon lesquelles un nom spécifique ou un ensemble d'enregistrements de ressource (RRset) existe ou est absent dans la zone. Ces conditions doivent être remplies pour que la demande de mise à jour soit complète. Les mises à jour sont rejetées si les tests des conditions prérequises échouent.
Chaque demande de mise à jour comprend zéro ou plusieurs prérequis et zéro ou plusieurs mises à jour. Cette fonctionnalité permet à une demande de mise à jour dûment authentifiée d'être traitée si certains enregistrements de ressources spécifiés sont présents ou manquants dans la zone. Une ligne d'entrée vide (ou la commande send ) entraîne l'envoi des commandes cumulées sous la forme d'une demande de mise à jour DNS dynamique au serveur de noms.
Les commandes suivantes sont incluses dans le fichier d'entrée :
- server nom du serveur port
- Cette commande envoie toutes les demandes de mise à jour dynamique au serveur de noms nom_serveur. Si aucune instruction de serveur n'est spécifiée, la commande nsupdate envoie des mises à jour au serveur principal de la zone appropriée. Le champ "
MNAMEde l'enregistrement SOA de cette zone identifie le serveur primaire de cette zone. Le port est le numéro de port du nom du serveur où les demandes de mise à jour dynamique sont envoyées. Si aucun numéro de port n'est spécifié, le numéro de port DNS par défaut 53 est utilisé. - local adresse port
- Cette commande envoie toutes les demandes de mise à jour dynamique à l'aide de l'adresse locale. Lorsqu'une déclaration locale n'est pas spécifiée, la commande " nsupdate envoie des mises à jour en utilisant une adresse et un port choisis par le système. Le port peut également être utilisé pour forcer les demandes provenant d'un port spécifique. Si aucun numéro de port n'est spécifié, le système affecte un port.
- zone nom de zone
- Cette commande indique que toutes les mises à jour doivent être effectuées sur la zone zonename. Si aucune instruction de zone n'est spécifiée, la commande nsupdate tente de déterminer la zone correcte à mettre à jour en fonction de l'entrée.
- class nom de classe
- Cette commande indique la classe par défaut. Si aucune classe n'est spécifiée, la classe par défaut est "
IN(Internet). - secondesttl
- Cette commande spécifie le délai de vie (TTL) par défaut, en secondes, pour les enregistrements ajoutés. La valeur
noneefface la durée de vie par défaut. - key hmac:keyname secret
- Cette commande indique que toutes les mises à jour doivent être signées par TSIG à l'aide de la paire keyname-secret . Si hmac est spécifié, il définit l'algorithme de signature. La valeur par défaut est
hmac-md5. Si MD5 est désactivé, la valeur par défaut est "hmac-sha256. La commande key remplace toute clé spécifiée sur la ligne de commande à l'aide de l'indicateur -y ou -k . - gsstsig
- Cette commande utilise GSS-TSIG pour signer les mises à jour. Cette commande équivaut à spécifier l'indicateur -g sur la ligne de commande.
- oldgsstsig
- Cette commande utilise la version Windows 2000 de GSS-TSIG pour signer les mises à jour. Cette commande équivaut à spécifier l'indicateur -o sur la ligne de commande.
- realm [realm_name ]
- Lorsque vous utilisez GSS-TSIG, cette commande spécifie le paramètre realm_name à la place du domaine par défaut dans le fichier krb5.conf . Si le domaine n'est pas spécifié, le domaine sauvegardé est effacé.
- check-names [oui|non]
- Cette commande active ou désactive le traitement des noms de contrôle sur les enregistrements ajoutés. Les noms de vérification n'affectent pas les prérequis ou les enregistrements que vous souhaitez supprimer. Par défaut, le traitement des noms de vérification est activé. Si l'exécution de la commande check-names échoue, l'enregistrement n'est pas ajouté au message UPDATE.
- prereq nxdomain Nom de domaine
- Cette commande pose comme condition préalable qu'aucun enregistrement de ressource de quelque type que ce soit n'existe avec le nom domain-name.
- prereq yxdomain Nom de domaine
- Cette commande vérifie que le nom de domaine doit exister (au moins un enregistrement de ressource, de n'importe quel type).
- prereq nxrrset nom-de-domaine classe type
- Cette commande requiert qu'il n'existe aucun enregistrement de ressource du type, de la classe et du nom de domaine spécifiés. Si class est omis,
IN(Internet) est utilisé. - prereq yxrrset type de classe de nom de domaine
- Cette commande requiert l'existence d'un enregistrement de ressource du type, de la classe et du nom de domaine spécifiés. Si la classe est omise, "
INest pris en compte. - prereq yxrrset nom-de-domaine classe type données
- En utilisant cette commande, les données de chaque ensemble de conditions préalables de ce formulaire qui partagent un type, une classe et un nom de domaine communs sont combinées pour former un ensemble de RR. Cet ensemble de RRs doit correspondre exactement à l'ensemble de RRs existant dans la zone pour le type, la classe et le nom de domaine spécifiés. Les données sont écrites dans la représentation texte standard des données RDATA de l'enregistrement de ressource.
- update delete nom-domaine ttl classe type données
- Cette commande supprime tous les enregistrements de ressource nommés domain-name. Si le type et les données sont spécifiés, les enregistrements de ressources correspondants sont supprimés. La classe
INest supposée si class n'est pas spécifié. ttl est ignoré et n'est autorisé qu'à des fins de compatibilité. - update add nom-domaine ttl classe type données
- Cette commande ajoute un enregistrement de ressource avec le TTL, la classe et les données spécifiés.
- afficher
- Cette commande affiche le message actuel qui contient toutes les conditions préalables et les mises à jour spécifiées depuis la dernière opération d'envoi.
- envoyer
- Cette commande envoie le message en cours. Cette opération est équivalente à la saisie d'une ligne vide.
- réponse
- Cette commande affiche la réponse.
- debug
- Cette commande active le débogage.
- version
- Cette commande imprime le numéro de version.
- aide
- Cette commande imprime une liste de commandes.
Les lignes commençant par un point-virgule (;) sont des commentaires et sont ignorées.
Exemples
Les exemples suivants illustrent l'utilisation de la commande nsupdate pour insérer et supprimer des enregistrements de ressource de la zone example.com . L'entrée de chaque exemple contient une ligne vide de fin afin qu'un groupe de commandes puisse être spécifié en tant que demande de mise à jour dynamique au serveur de noms principal, example.com.
- Pour supprimer les enregistrements de ressources d'une zone existante et pour ajouter un enregistrement de ressources à une nouvelle zone, entrez la commande suivante :
# nsupdate > update delete oldhost.example.com A > update add newhost.example.com 86400 A 172.16.1.1 > sendTous les enregistrements A pour "
oldhost.example.comsont supprimés et un enregistrement A pour "newhost.example.comavec l'adresse IP 172.16.1.1 est ajouté. Le nouvel enregistrement a une durée de vie d'un jour (86400 secondes). - Pour spécifier une condition prérequise avant de mettre à jour le serveur DNS, entrez la commande suivante:
# nsupdate > prereq nxdomain nickname.example.com > update add nickname.example.com 86400 CNAME somehost.example.com > sendLa condition préalable spécifie que le serveur de noms doit vérifier qu'il n'existe aucun enregistrement de ressource de quelque type que ce soit pour "nickname.example.com. Si la zone comporte des enregistrements de ressource, la demande de mise à jour échoue. Si ce nom n'existe pas, un CNAME est ajouté, ce qui garantit que la condition préalable ne peut pas entrer en conflit avec la règle de longue date spécifiée dans la RFC 1034. La règle spécifiée dans la RFC 1034 stipule qu'un nom ne doit pas exister dans un autre type d'enregistrement s'il existe en tant que CNAME.Note : La règle est mise à jour pour les DNSSEC dans la RFC 2535 afin de permettre aux CNAME d'avoir des enregistrements de ressources RRSIG, DNSKEY et NSEC.
Fichiers
- /etc/resolv.conf
- Utilisé pour identifier le serveur de noms par défaut.
- /var/run/named/session.key
- Définit la clé TSIG par défaut qui doit être utilisée en mode local uniquement.
- K{name}.+157.+{random}.key
- Codage Base-64 de la clé HMAC-MD5 créée par la commande dnssec-keygen .
- K{name}.+157.+{random}.private
- Codage Base-64 de la clé HMAC-MD5 créée par la commande dnssec-keygen .