Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Configuração de DNS Bash Shell

Verificação de DNS Bash Shell

Etapa 1. Verifique o uso de um namespace de rede válido para teste.

Etapa 2. Verifique o funcionamento da resolução DNS usando o nome de host do host de teste.

Formato de arquivo /etc/resolv.conf

Examples

Informações Relacionadas

Introduction

Este documento descreve as etapas usadas para configurar servidores DNS em Bash para permitir a resolução de nomes de host DNS para endereços IP.

Os dispositivos Cisco Nexus 3000 e 9000 Series permitem acesso ao sistema Linux subjacente do NX-OS através de Bash (Bourne-Again SHell). Bash permite o gerenciamento e o monitoramento do sistema por meio de um ambiente Linux. Para obter mais informações sobre Bash no NX-OS, consulte o capítulo Bash do Guia de Programabilidade do NX-OS do Cisco Nexus 9000 Series.

Pode ser necessário traduzir nomes de domínio amigáveis para humanos em endereços IP numéricos enquanto executa tarefas normais no shell Bash. Tais tarefas incluem o uso dos utilitários curl ou wget para acessar recursos de um servidor Web ou para fazer download de imagens Docker usando o comando docker pull.

Prerequisites

Requirements

Este documento não se restringe a versões de software e hardware específicas.

Note: O shell Bash deve ser ativado em seu dispositivo Cisco Nexus. Consulte a seção "Access Bash" do capítulo Bash no Cisco Nexus 9000 Series NX-OS Programmability Guide para obter instruções sobre como habilitar o shell Bash.

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Plataforma do Nexus 9000 a partir do NX-OS versão 6.1(2)I2(1)

- Plataforma do Nexus 3000 a partir do NX-OS versão 6.0(2)U4(1)

As informações apresentadas neste documento foram criadas a partir de dispositivos em um ambiente de laboratório 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.

Configuração de DNS Bash Shell

O ambiente Linux acessado através do shell Bash utiliza o arquivo /etc/resolv.conf para armazenar a configuração DNS, da mesma forma que a maioria dos outros sistemas operacionais Unix.

1. Faça login no shell Bash como o usuário raiz através do comando run bash sudo su -.

Nexus# run bash sudo su -

root@Nexus#whoami

root

2. Exibir o conteúdo atual do arquivo /etc/resolv.conf. Neste exemplo, o arquivo está vazio.

root@Nexus#cat /etc/resolv.conf

root@Nexus#

3. Abra o arquivo /etc/resolv.conf para edição usando o editor de texto vi.

root@Nexus#vi /etc/resolv.conf

4. Pressione a tecla i para entrar no modo INSERT e, em seguida, digite a configuração desejada. Consulte a seção /etc/resolv.conf File Format deste documento para obter mais informações sobre como o formato da configuração no arquivo /etc/resolv.conf.

5. Depois que o arquivo for modificado, pressione a tecla ESC para sair do modo INSERT e, em seguida, digite :x para salvar todas as alterações no arquivo e fechá-lo.

Verificação de DNS Bash Shell

Quando as alterações forem feitas na configuração DNS do shell Bash, verifique se as alterações resultam em uma resolução de nome de domínio bem-sucedida. O método mais simples de testar a resolução do nome de domínio é usar o utilitário ping usando um nome de host de domínio como destino. Este documento demonstra como verificar a configuração DNS válida usando um host de teste de servidores test.cisco.com e DNS de 192.168.2.1 e 192.168.2.2.

Etapa 1. Verifique o uso de um namespace de rede válido para teste.

Por padrão, o shell Bash usa o namespace de rede padrão, a menos que haja outra instrução. Os namespaces de rede são logicamente equivalentes aos VRFs do NX-OS, e o ip netns o comando exibe uma lista de namespaces disponíveis para o shell Bash, como demonstrado abaixo:

root@Nexus#ip netns

EXAMPLE-VRF (id: 2)

management (id: 1)

default (id: 0)

Um namespace de rede válido para testar é um que tem conectividade IP com os servidores de nomes DNS configurados no arquivo /etc/resolv.conf, bem como conectividade IP com o endereço IP que o host de teste resolve.

É possível utilizar o comando ip netns exec {namespace} {desejado-comando} para executar um comando {desejado-comando} no namespace {namespace}. Como alternativa, é possível executar o shell Bash no contexto de um namespace específico com o comando ip netns exec {namespace} bash. A antiga metodologia é usada no exemplo aqui, verifica-se que o namespace de gerenciamento tem conectividade IP com o endereço IP de propriedade do host test.cisco.com (que é 192.168.2.100) e ambos os servidores DNS (192.168.2.1 e 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

Etapa 2. Verifique o funcionamento da resolução DNS usando o nome de host do host de teste.

Use o utilitário ping com um destino do nome de host do host de teste. Se as Respostas ICMP forem recebidas do host de teste e o endereço IP contido nas Respostas ICMP for o endereço IP que esperamos que o nome do host resolva, a resolução DNS estará funcionando no shell Bash.

Este exemplo aqui demonstra como o utilitário ping é usado no namespace de gerenciamento para verificar a resolução de DNS correta. Observe como o nome de host do domínio test.cisco.com resolve para 192.168.2.100, que é o endereço IP que esperamos que esse nome de host resolva.

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

Se o namespace usado para testar a resolução de DNS tiver conectividade IP com a Internet, é possível fazer ping no cisco.com para verificar se os nomes de domínio externo podem ser resolvidos além dos nomes de domínio internos. Isso é particularmente importante se for necessário usar utilitários como curl e wget contra servidores web públicos. O exemplo aqui demonstra como o utilitário ping pode ser usado no namespace de gerenciamento (que tem conectividade IP com a Internet) para verificar a resolução de DNS externo correta.

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

Formato de arquivo /etc/resolv.conf

Alguns parâmetros de configuração comuns são explicados aqui. Certifique-se de modificar todos os parâmetros de configuração para corresponder ao seu ambiente.

- domain {domain-name.tld} - Define um nome de domínio padrão {domain-name.tld} para acrescentar nomes de host que não terminam com um período. Só pode haver uma entrada de domínio no arquivo /etc/resolv.conf.

- pesquisar {domain-name-1.tld} [domain-name-2.tld...] - Define uma lista de nomes de domínio delimitados por espaço ({domain-name-1.tld} e, opcionalmente, [domain-name-2.tld]) para anexar aos nomes de host.

Note: As entradas de domínio e pesquisa são mutuamente exclusivas - apenas uma pode ser usada de cada vez. Se ambas as entradas estiverem incluídas no arquivo /etc/resolv.conf, a entrada que aparece por último no arquivo será usada.

- nameserver {address-1} - Define um endereço IP {address-1} para um servidor DNS para o qual as solicitações de resolução DNS são encaminhadas. Várias entradas de servidor de nomes são permitidas em um único arquivo, até um máximo de três.

Examples

Este exemplo mostra o conteúdo do arquivo /etc/resolv.conf onde o domínio padrão do ambiente é cisco.com e os servidores DNS no ambiente têm endereços IP de 192.168.2.1 e 192.168.2.2. Neste cenário, se o shell Bash precisar resolver o endereço IP de um dispositivo com um nome de host foo, ele acrescenta cisco.com ao final do nome do host de modo que o FDQN (Fully Qualified Domain Name, nome de domínio totalmente qualificado) do host seja foo.cisco.com.

domain cisco.com

nameserver 192.168.2.1

nameserver 192.168.2.2

O exemplo a seguir mostra o conteúdo do arquivo /etc/resolv.conf onde os nomes de domínio cisco.com ou bar.com podem ser usados para resolver nomes de host DNS. Os servidores DNS no ambiente têm endereços IP de 192.168.2.1 e 192.168.2.2. Neste cenário, se o shell Bash precisar resolver o endereço IP de um dispositivo com um nome de host foo, ele tentará resolver foo.cisco.com primeiro e, em seguida, tentará resolver foo.bar.com em seguida se a resolução para foo.cisco.com falhar.

search cisco.com bar.com

nameserver 192.168.2.1

nameserver 192.168.2.2

Informações Relacionadas

- Guia de programabilidade do Cisco Nexus 9000 Series NX-OS, versão 9.x

- Guia de programabilidade do Cisco Nexus 9000 Series NX-OS, versão 7.x

- Guia de programabilidade do Cisco Nexus 9000 Series NX-OS, versão 6.x

- Guia de programabilidade do Cisco Nexus 3000 Series NX-OS, versão 9.x

- Guia de programabilidade do Cisco Nexus 3000 Series NX-OS, versão 7.x

- Guia de programabilidade do Cisco Nexus 3000 Series NX-OS, versão 6.x

- Guia de programabilidade do Cisco Nexus 3500 Series NX-OS, versão 9.x

- Guia de programabilidade do Cisco Nexus 3500 Series NX-OS, versão 7.x

- Guia de programabilidade do Cisco Nexus 3500 Series NX-OS, versão 6.x

- Guia de programabilidade do Cisco Nexus 3600 Series NX-OS, versão 9.x

- Guia de programabilidade do Cisco Nexus 3600 Series NX-OS, versão 7.x

- Programabilidade e automação com o Cisco Open NX-OS