Estou compilando meu próprio kernel 3.14. Receio ter deixado de lado algum recurso importante de rede para fazer o DNS funcionar.
Não consigo resolver nomes de domínio. Eu posso executar ping no meu servidor DNS. Posso resolver usando esse DNS em outras máquinas, então sei que não é o servidor.
~ # cat /etc/resolv.conf
nameserver 192.168.13.5
~ # nslookup google.com
Server: 192.168.13.5
Address 1: 192.168.13.5
nslookup: can't resolve 'google.com'
~ # ping -c 1 google.com
ping: bad address 'google.com'
~ # ping -c 1 192.168.13.5
PING 192.168.13.5 (192.168.13.5): 56 data bytes
64 bytes from 192.168.13.5: seq=0 ttl=128 time=0.382 ms
--- 192.168.13.5 ping ststistics ---
1 packets transmitted, 1 packets recieved, 0% packet loss
reound-trip min/avg/max = 0.382/0.382/0.382 ms
Alguma idéia do que eu deixei de fora? aqui está a minha configuração: http://pastebin.com/vt4vGTgJ
EDIT :
Se não for o kernel, o que eu poderia estar perdendo? Estou usando o busybox, vinculado estaticamente. não há bibliotecas compartilhadas neste sistema.
dig @192.168.13.5 www.google.com
você receber informações adicionais? Você pode executar consultas recursivas no servidor DNS 192.168.13.5 de outras máquinas?nameserver 8.8.8.8
.Respostas:
O problema está no busybox. Mudei para uma versão pré-compilada e não tive problemas. Eu preciso olhar para as opções de compilação com ele. Obrigado pela ajuda.
https://gist.github.com/vsergeev/2391575 :
fonte
Corri para o mesmo problema e verifica-se que o busybox é exigente quanto ao formato do resolv.conf. Deve haver exatamente um espaço em branco entre a tag do servidor de nomes e o endereço para o nslookup funcionar. Além disso, o /etc/nsswitch.conf deve incluir o DNS para o host.
[busybox master (git hash 349d72c19) sysroot-glibc-linaro-2.25-2018.05-arm-linux-gnueabihf]
Sim, a pergunta é antiga, mas o busybox atual ainda se comporta dessa maneira.
[Usei o xxd abaixo para mostrar o número de espaços em branco no resolv.conf]
Isso falha:
e isso funciona:
fonte
Não tenho certeza se esse é o mesmo problema que tive ou não, mas recentemente atualizei e antigo sistema de servidor DNS interno do OpenBSD 3.8 para 5.6 e perdi a capacidade de resolver hosts com ping, mas o comando host estava funcionando. Acontece que eu tive que adicionar 127.0.0.1/8 à diretiva match-clients em named, além dos 192.168.0.0/16 que eu já tinha lá e, em seguida, ele começou a funcionar corretamente depois de reiniciar o named.
fonte
Eu tive o mesmo problema. Eu usei o buildroot para construir o sistema de arquivos, compilar o kernel e adicionar pacotes extras com o busybox.
Eu só consegui executar ping em um endereço IP. Com url o comando ping retornado:
bad address error
. Então eu mudei oresolv.conf
arquivo.E tudo funcionou bem.
fonte
Resolvi os mesmos sintomas editando:
/etc/nsswitch.conf
e adicionando DNS à seguinte linha:fonte
sudo vim /etc/resolv.conf
para editar o resolv.conf, verifique se os endereços do servidor de nomes (assim como a palavra-chave 'servidor de nomes') estão separados por um único espaço, não por vírgula, como abaixo:fonte