Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit les étapes utilisées pour configurer les serveurs DNS dans Bash afin de permettre la résolution des noms d'hôte DNS en adresses IP.
Les périphériques des gammes Cisco Nexus 3000 et 9000 permettent d'accéder au système Linux sous-jacent de NX-OS via Bash (Bourne-again SHell). Bash permet la gestion et la surveillance du système via un environnement Linux. Pour plus d'informations sur Bash on NX-OS, reportez-vous au chapitre Bash du Guide de programmabilité NX-OS de la gamme Cisco Nexus 9000.
Il peut être nécessaire de traduire des noms de domaine humains en adresses IP numériques tout en effectuant des tâches normales dans l'interpréteur de commandes Bash. Ces tâches incluent l'utilisation des utilitaires curl
ou wget
pour accéder aux ressources à partir d'un serveur Web ou pour télécharger des images Docker à l'aide de la commande docker pull
.
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
Note: Le shell Bash doit être activé sur votre périphérique Cisco Nexus. Reportez-vous à la section « Accéder à Bash » du chapitre Bash du Guide de programmabilité NX-OS de la gamme Cisco Nexus 9000 pour obtenir des instructions sur l'activation du shell Bash.
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
Les informations contenues dans ce document ont été créées à partir des périphériques dans un environnement de laboratoire spécifique. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
L'environnement Linux accessible via le shell Bash utilise le fichier /etc/resolv.conf pour stocker la configuration DNS, tout comme la plupart des autres systèmes d'exploitation de type Unix.
1. Connectez-vous au shell Bash en tant qu'utilisateur racine via la commande run bash sudo su -
.
Nexus# run bash sudo su - root@Nexus#whoami root
2. Affichez le contenu actuel du fichier /etc/resolv.conf. Dans cet exemple, le fichier est vide.
root@Nexus#cat /etc/resolv.conf root@Nexus#
3. Ouvrez le fichier /etc/resolv.conf pour le modifier à l'aide de l'éditeur de texte vi
.
root@Nexus#vi /etc/resolv.conf
4. Appuyez sur la touche i
pour passer en mode INSERT, puis saisissez la configuration souhaitée. Reportez-vous à la section /etc/resolv.conf Format de fichier de ce document pour plus d'informations sur le format de configuration dans le fichier /etc/resolv.conf.
5. Une fois le fichier modifié, appuyez sur la touche ESC
pour quitter le mode INSERT, puis entrez :x
pour enregistrer toutes les modifications apportées au fichier et le fermer.
Une fois les modifications apportées à la configuration DNS du shell Bash, vérifiez que les modifications aboutissent à une résolution de nom de domaine réussie. La méthode la plus simple pour tester la résolution de noms de domaine consiste à utiliser l'utilitaire ping
en utilisant un nom d'hôte de domaine comme cible. Ce document explique comment vérifier une configuration DNS valide à l'aide d'un hôte de test de test.cisco.com et de serveurs DNS de 192.168.2.1 et 192.168.2.2.
Par défaut, l'interpréteur de commandes Bash utilise l'espace de noms réseau par défaut, sauf instruction contraire. Les espaces de noms réseau sont logiquement équivalents aux VRF NX-OS, et la commande ip netns
affiche une liste des espaces de noms disponibles pour le shell Bash, comme illustré ci-dessous :
root@Nexus#ip netns EXAMPLE-VRF (id: 2) management (id: 1) default (id: 0)
Un espace de noms de réseau valide à tester est un espace de noms qui possède une connectivité IP aux serveurs de noms DNS configurés dans le fichier /etc/resolv.conf, ainsi qu'une connectivité IP à l'adresse IP à laquelle votre hôte de test résout.
On peut utiliser la commande ip netns exec {namespace} {desirable-command}
pour exécuter une commande {desirable-command}
dans l'espace de noms {namespace}
. Vous pouvez également exécuter le shell Bash dans le contexte d'un espace de noms spécifique à l'aide de la commande ip netns exec {namespace} bash
. L'ancienne méthodologie est utilisée dans l'exemple ci-dessus, il est vérifié que l'espace de noms de gestion a une connectivité IP avec l'adresse IP appartenant à l'hôte test.cisco.com (192.168.2.100) et aux deux serveurs DNS (192.168.2.1) ..
root@Nexus#ip netns exec management ping 192.168.2.100 -c 5 PING 192.168.2.100 (192.168.2.100) 56(84) bytes of data. 64 bytes from 192.168.2.100: icmp_seq=1 ttl=59 time=0.277 ms 64 bytes from 192.168.2.100: icmp_seq=2 ttl=59 time=0.284 ms 64 bytes from 192.168.2.100: icmp_seq=3 ttl=59 time=0.280 ms 64 bytes from 192.168.2.100: icmp_seq=4 ttl=59 time=0.274 ms 64 bytes from 192.168.2.100: icmp_seq=5 ttl=59 time=0.297 ms --- 192.168.2.100 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4001ms rtt min/avg/max/mdev = 0.274/0.282/0.297/0.017 ms root@Nexus#ip netns exec management ping 192.168.2.1 -c 5 PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data. 64 bytes from 192.168.2.1: icmp_seq=1 ttl=59 time=0.277 ms 64 bytes from 192.168.2.1: icmp_seq=2 ttl=59 time=0.284 ms 64 bytes from 192.168.2.1: icmp_seq=3 ttl=59 time=0.280 ms 64 bytes from 192.168.2.1: icmp_seq=4 ttl=59 time=0.274 ms 64 bytes from 192.168.2.1: icmp_seq=5 ttl=59 time=0.297 ms --- 192.168.2.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4001ms rtt min/avg/max/mdev = 0.274/0.282/0.297/0.017 ms root@Nexus#ip netns exec management ping 192.168.2.2 -c 5 PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data. 64 bytes from 192.168.2.2: icmp_seq=1 ttl=59 time=0.277 ms 64 bytes from 192.168.2.2: icmp_seq=2 ttl=59 time=0.284 ms 64 bytes from 192.168.2.2: icmp_seq=3 ttl=59 time=0.280 ms 64 bytes from 192.168.2.2: icmp_seq=4 ttl=59 time=0.274 ms 64 bytes from 192.168.2.2: icmp_seq=5 ttl=59 time=0.297 ms --- 192.168.2.2 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4001ms rtt min/avg/max/mdev = 0.274/0.282/0.297/0.017 ms
Utilisez l'utilitaire ping
avec une cible du nom d'hôte de l'hôte de test. Si des réponses ICMP sont reçues de l'hôte de test et que l'adresse IP contenue dans les réponses ICMP correspond à l'adresse IP à laquelle le nom d'hôte doit être résolu, la résolution DNS fonctionne dans le shell Bash.
Cet exemple montre comment l'utilitaire ping
est utilisé dans l'espace de noms de gestion pour vérifier la résolution DNS correcte. Notez comment le nom d'hôte de domaine de test.cisco.com se résout à 192.168.2.100, qui est l'adresse IP à laquelle nous nous attendons à ce que ce nom d'hôte se résolve.
root@Nexus#ip netns exec management ping test.cisco.com -c 5 PING test.cisco.com (192.168.2.100) 56(84) bytes of data. 64 bytes from test.cisco.com (192.168.2.100): icmp_seq=1 ttl=59 time=0.617 ms 64 bytes from test.cisco.com (192.168.2.100): icmp_seq=2 ttl=59 time=0.341 ms 64 bytes from test.cisco.com (192.168.2.100): icmp_seq=3 ttl=59 time=0.310 ms 64 bytes from test.cisco.com (192.168.2.100): icmp_seq=4 ttl=59 time=0.379 ms 64 bytes from test.cisco.com (192.168.2.100): icmp_seq=5 ttl=59 time=0.296 ms --- test.cisco.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4004ms rtt min/avg/max/mdev = 0.296/0.388/0.617/0.119 ms
Si l'espace de noms utilisé pour tester la résolution DNS a une connectivité IP à Internet, on peut envoyer une requête ping à cisco.com pour vérifier que les noms de domaine externes peuvent être résolus en plus des noms de domaine internes. Ceci est particulièrement important si l'on a besoin d'utiliser des utilitaires comme curl
et wget
contre les serveurs Web publics. Cet exemple montre comment l'utilitaire ping
peut être utilisé dans l'espace de noms de gestion (qui dispose d'une connectivité IP à Internet) pour vérifier la résolution DNS externe correcte.
root@Nexus#ip netns exec management ping cisco.com -c 5 PING cisco.com (72.163.4.161) 56(84) bytes of data. 64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=1 ttl=239 time=29.2 ms 64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=2 ttl=239 time=29.2 ms 64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=3 ttl=239 time=29.3 ms 64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=4 ttl=239 time=29.2 ms 64 bytes from www1.cisco.com (72.163.4.161): icmp_seq=5 ttl=239 time=29.2 ms --- cisco.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 29.261/29.283/29.335/0.111 ms
Certains paramètres de configuration courants sont expliqués ici. Veillez à modifier tous les paramètres de configuration pour qu'ils correspondent à votre environnement.
{domain-name.tld}
à ajouter aux noms d'hôtes qui ne se terminent pas par un point. Il ne peut y avoir qu'une seule entrée de domaine
dans le fichier /etc/resolv.conf.{domain-name-1.tld}
et, éventuellement, [domain-name-2.tld]
) à ajouter aux noms d'hôte. Note: Les entrées de domaine
et de recherche
s'excluent mutuellement - une seule peut être utilisée à la fois. Si les deux entrées sont incluses dans le fichier /etc/resolv.conf, l'entrée qui apparaît en dernier dans le fichier est utilisée.
{address-1}
pour un serveur DNS vers lequel les requêtes de résolution DNS sont transmises. Plusieurs entrées nameserver
sont autorisées dans un seul fichier, jusqu'à un maximum de trois.Cet exemple montre le contenu du fichier /etc/resolv.conf où le domaine par défaut de l'environnement est cisco.com et les serveurs DNS de l'environnement ont des adresses IP 192.168.2.1 et 192.168.2.2. Dans ce scénario, si le shell Bash doit résoudre l'adresse IP d'un périphérique avec un nom d'hôte foo, il ajoute cisco.com à la fin du nom d'hôte de sorte que le nom de domaine complet (FDQN) de l'hôte soit foo.cisco.com.
domain cisco.com nameserver 192.168.2.1 nameserver 192.168.2.2
L'exemple suivant montre le contenu du fichier /etc/resolv.conf dans lequel les noms de domaine cisco.com ou bar.com peuvent être utilisés pour résoudre les noms d'hôte DNS. Les serveurs DNS de l'environnement ont les adresses IP 192.168.2.1 et 192.168.2.2. Dans ce scénario, si le shell Bash doit résoudre l'adresse IP d'un périphérique avec un nom d'hôte foo, il tente de résoudre foo.cisco.com d'abord, puis tente de résoudre foo.bar.com ensuite si la résolution pour foo.cisco.com échoue.
search cisco.com bar.com nameserver 192.168.2.1 nameserver 192.168.2.2