Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Configuración de DNS de shell de Bash

Verificación de DNS de shell de Bash

Paso 1. Verifique el uso de un espacio de nombres de red válido para probar.

Paso 2. Verifique el Funcionamiento de la Resolución DNS con el Nombre de Host de Prueba.

/etc/resolv.conf Formato de archivo

Examples

Información Relacionada

Introducción

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.

Prerequisites

Requirements

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.

Componentes Utilizados

La información que contiene este documento se basa en las siguientes versiones de software y hardware.

- Plataforma Nexus 9000 a partir de NX-OS versión 6.1(2)I2(1)

- Plataforma Nexus 3000 a partir de NX-OS versión 6.0(2)U4(1)

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.

Configuración de DNS de shell de Bash

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.

Verificación de DNS de shell de Bash

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.

Paso 1. Verifique el uso de un espacio de nombres de red válido para probar.

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

Paso 2. Verifique el Funcionamiento de la Resolución DNS con el Nombre de Host de Prueba.

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

/etc/resolv.conf Formato de archivo

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 {domain-name.tld} - Define un nombre de dominio predeterminado {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.

- search {domain-name-1.tld} [domain-name-2.tld...] - Define una lista delimitada por espacios de nombres de dominio ({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.

- nameserver {address-1} - Define una dirección IP {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.

Examples

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

Información Relacionada

- Guía de programabilidad de Cisco Nexus serie 9000 NX-OS, versión 9.x

- Guía de programabilidad de Cisco Nexus serie 9000 NX-OS, versión 7.x

- Guía de programabilidad de Cisco Nexus serie 9000 NX-OS, versión 6.x

- Guía de programabilidad de Cisco Nexus serie 3000 NX-OS, versión 9.x

- Guía de programabilidad de Cisco Nexus serie 3000 NX-OS, versión 7.x

- Guía de programabilidad de Cisco Nexus serie 3000 NX-OS, versión 6.x

- Guía de programabilidad de Cisco Nexus serie 3500 NX-OS, versión 9.x

- Guía de programabilidad de Cisco Nexus serie 3500 NX-OS, versión 7.x

- Guía de programabilidad de Cisco Nexus serie 3500 NX-OS, versión 6.x

- Guía de programabilidad de Cisco Nexus serie 3600 NX-OS, versión 9.x

- Guía de programabilidad de Cisco Nexus serie 3600 NX-OS, versión 7.x

- Capacidad de programación y automatización con Cisco Open NX-OS