O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
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
.
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.
As informações neste documento são baseadas nestas versões de software e hardware:
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.
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.
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.
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
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
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-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.{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.
{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.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