El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe los pasos utilizados para configurar servidores DNS dentro de Bash para permitir la resolución de nombres de host DNS a direcciones IP.
Los dispositivos Cisco Nexus serie 3000 y 9000 permiten acceder al sistema Linux subyacente de NX-OS a través de Bash (Bourne-again SHell). Bash permite la administración y supervisión del sistema a través de un entorno Linux. Para obtener más información sobre Bash en NX-OS, refiérase al capítulo Bash de la Guía de Programabilidad de Cisco Nexus serie 9000 NX-OS.
Es posible que sea necesario traducir nombres de dominio fáciles de usar en direcciones IP numéricas mientras se realizan tareas normales en el shell Bash. Estas tareas incluyen el uso de las utilidades curl
o wget
para acceder a los recursos desde un servidor web o para descargar las imágenes Docker usando el comando docker pull
.
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.
Nota: El shell Bash se activará en su dispositivo Cisco Nexus. Refiérase a la sección "Acceso a Bash" del capítulo Bash de la Guía de Programación de Cisco Nexus serie 9000 NX-OS para obtener instrucciones para habilitar el shell Bash.
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
La información de este documento se originó a partir de dispositivos dentro de un ambiente de laboratorio específico. 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.
El entorno Linux al que se accede a través del shell Bash utiliza el archivo /etc/resolv.conf para almacenar la configuración DNS, de manera similar a la mayoría de los otros sistemas operativos similares a Unix.
1. Inicie sesión en el shell Bash como usuario root a través del comando run bash sudo su -
.
Nexus# run bash sudo su - root@Nexus#whoami root
2. Vea el contenido actual del archivo /etc/resolv.conf. En este ejemplo, el archivo está vacío.
root@Nexus#cat /etc/resolv.conf root@Nexus#
3. Abra el archivo /etc/resolv.conf para editarlo usando el vi
editor de texto.
root@Nexus#vi /etc/resolv.conf
4. Presione la tecla i
para ingresar al modo INSERT y luego ingrese la configuración deseada. Refiérase a la sección Formato de Archivo /etc/resolv.conf de este documento para obtener más información sobre cómo el formato de configuración dentro del archivo /etc/resolv.conf.
5. Después de modificar el archivo, presione la tecla ESC
para salir del modo INSERT, luego ingrese :x
para guardar todos los cambios en el archivo y cerrarlo.
Una vez realizados los cambios en la configuración DNS del shell Bash, verifique que los cambios resulten en una resolución exitosa del nombre de dominio. El método más simple para probar la resolución del nombre de dominio es usar la utilidad ping
usando un nombre de host de dominio como destino. Este documento muestra cómo verificar una configuración DNS válida usando un host de prueba de los servidores test.cisco.com y DNS de 192.168.2.1 y 192.168.2.2.
De forma predeterminada, el shell Bash utiliza el espacio de nombres de red predeterminado a menos que se indique lo contrario. Los espacios de nombres de red son lógicamente equivalentes a los VRF de NX-OS, y el comando ip netns
muestra una lista de espacios de nombres disponibles para el shell Bash, como se muestra a continuación:
root@Nexus#ip netns EXAMPLE-VRF (id: 2) management (id: 1) default (id: 0)
Un espacio de nombres de red válido para probar es aquel que tiene conectividad IP a los servidores de nombres DNS configurados en el archivo /etc/resolv.conf, así como conectividad IP a la dirección IP a la que el host de prueba resuelve.
Se puede utilizar el comando ip netns exec {espacio de nombres} {desirable-command}
para ejecutar un comando {desirable-command}
en el espacio de nombres {espacio de nombres}
. Alternativamente, se puede ejecutar el shell Bash dentro del contexto de un espacio de nombres específico con el comando ip netns exec {espacio de nombres} bash
. La metodología anterior se utiliza en el ejemplo aquí, se verifica que el espacio de nombres management tenga conectividad IP con la dirección IP propiedad del host test.cisco.com (que es 192.168.2.100) y ambos servidores DNS (192.168.2.1 y 192.168.2.2) ...
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
Utilice la utilidad ping
con un destino del nombre de host del host de prueba. Si se reciben respuestas ICMP del host de prueba y la dirección IP contenida en las respuestas ICMP es la dirección IP a la que esperamos que el nombre de host resuelva, se confirma que la resolución DNS funciona dentro del shell Bash.
Este ejemplo muestra cómo la utilidad ping
se utiliza dentro del espacio de nombres management para verificar la resolución correcta de DNS. Observe cómo el nombre de host de dominio de test.cisco.com se resuelve en 192.168.2.100, que es la dirección IP a la que esperamos que ese nombre de host resuelva.
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 el espacio de nombres utilizado para probar la resolución de DNS tiene conectividad IP a Internet, se puede hacer ping en cisco.com para verificar que los nombres de dominio externos se pueden resolver además de los nombres de dominio internos. Esto es particularmente importante si se necesita utilizar utilidades como curl
y wget
contra servidores web públicos. El ejemplo aquí muestra cómo la utilidad ping
se puede utilizar dentro del espacio de nombres management (que tiene conectividad IP a Internet) para verificar la correcta resolución de DNS externo.
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
Aquí se explican algunos parámetros de configuración comunes. Asegúrese de modificar todos los parámetros de configuración para que coincidan con su entorno.
{domain-name.tld}
para anexar a nombres de host que no terminen con un punto. Sólo puede haber una entrada de dominio
dentro del archivo /etc/resolv.conf.{domain-name-1.tld}
y, opcionalmente, [domain-name-2.tld]
) para anexar a nombres de host. Nota: Las entradas de dominio
y búsqueda
se excluyen mutuamente: sólo una puede utilizarse cada vez. Si ambas entradas se incluyen en el archivo /etc/resolv.conf, se utiliza la entrada que aparece en último lugar en el archivo.
{address-1}
para un servidor DNS donde se reenvían las solicitudes de resolución de DNS. Se permiten varias entradas de servidor de nombres
dentro de un único archivo, hasta un máximo de tres.Este ejemplo muestra el contenido del archivo /etc/resolv.conf donde el dominio predeterminado del entorno es cisco.com y los servidores DNS del entorno tienen direcciones IP de 192.168.2.1 y 192.168.2.2. En esta situación, si el shell Bash necesita resolver la dirección IP de un dispositivo con un nombre de host de foo, agrega cisco.com al final del nombre de host de modo que el Nombre de dominio completamente calificado (FDQN) del host sea foo.cisco.com.
domain cisco.com nameserver 192.168.2.1 nameserver 192.168.2.2
El siguiente ejemplo muestra el contenido del archivo /etc/resolv.conf donde se pueden utilizar los nombres de dominio cisco.com o bar.com para resolver nombres de host DNS. Los servidores DNS dentro del entorno tienen direcciones IP de 192.168.2.1 y 192.168.2.2. En este escenario, si el shell Bash necesita resolver la dirección IP de un dispositivo con un nombre de host de foo, intenta resolver foo.cisco.com primero, luego intente resolver foo.bar.com siguiente si falla la resolución para foo.cisco.com.
search cisco.com bar.com nameserver 192.168.2.1 nameserver 192.168.2.2