O ping IP do Busybox funciona, mas o hostname nslookup falha com “endereço incorreto”

11

Eu estou compilando meu próprio kernel 3.14. Eu temo que eu tenha deixado de fora algum importante recurso de rede para fazer o DNS funcionar.

Não consigo resolver nomes de domínio. Eu posso pingar meu servidor DNS. Eu posso resolver usando esse DNS em outras máquinas, então eu 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 deixei de fora? aqui está minha configuração: link

EDITAR :

Se não é o kernel, o que poderia estar faltando? Estou usando o busybox, vinculado estaticamente. não há bibliotecas compartilhadas neste sistema.

    
por AllenKll 11.04.2014 / 15:56

5 respostas

4

O problema é com o busybox. Eu 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 sua ajuda.

link :

There are known issues with DNS functionality in statically-linked glibc programs (like busybox in this case), because libnss must be dynamically loaded. Building a uClibc toolchain and linking busybox against that would resolve this.

    
por 29.05.2015 / 19:55
1

Eu encontrei o mesmo problema e acontece que o busybox é exigente quanto ao formato do resolv.conf. Deve haver exatamente um espaço em branco entre a tag nameserver e o endereço para o nslookup funcionar. Além disso, o /etc/nsswitch.conf precisa incluir o dns para o host.

[mestre do busybox (git hash 349d72c19)   sysroot-glibc-linaro-2.25-2018.05-arm-linux-gnueabihf ]

root@4000000a:~# cat /etc/nsswitch.conf 
passwd:    files compat
shadow:    files compat
hosts:    files dns compat 

Sim, a pergunta é antiga, mas o busybox atual ainda se comporta dessa maneira.

[Eu usei o xxd abaixo para mostrar o número de espaços em branco no resolv.conf]

Isso falha:

root@4000000a:~# xxd /etc/resolv.conf
00000000: 6e61 6d65 7365 7276 6572 2020 382e 382e  nameserver  8.8.
00000010: 382e 380a                                8.8.
root@4000000a:~# nslookup  www.cnn.com 
nslookup: bad address ' 8.8.8.8'

e isso funciona:

root@4000000a:~# xxd /etc/resolv.conf
00000000: 6e61 6d65 7365 7276 6572 2038 2e38 2e38  nameserver 8.8.8
00000010: 2e38 0a                                  .8.
root@4000000a:~# nslookup  www.cnn.com                
Server:     8.8.8.8
Address:    8.8.8.8:53

Non-authoritative answer:
www.cnn.com canonical name = turner-tls.map.fastly.net
Name:   turner-tls.map.fastly.net
Address: 151.101.1.67
Name:   turner-tls.map.fastly.net
Address: 151.101.65.67
Name:   turner-tls.map.fastly.net
Address: 151.101.129.67
Name:   turner-tls.map.fastly.net
Address: 151.101.193.67

Non-authoritative answer:
www.cnn.com canonical name = turner-tls.map.fastly.net
Name:   turner-tls.map.fastly.net
Address: 2a04:4e42::323
Name:   turner-tls.map.fastly.net
Address: 2a04:4e42:200::323
Name:   turner-tls.map.fastly.net
Address: 2a04:4e42:400::323
Name:   turner-tls.map.fastly.net
Address: 2a04:4e42:600::323
    
por 15.10.2018 / 19:16
0

Não tenho certeza se esse é o mesmo problema que tive ou não, mas atualizei recentemente o antigo sistema interno de servidores DNS do OpenBSD 3.8 para o 5.6, e perdi a capacidade de resolver hosts com ping, mas o comando host estava a trabalhar. Acabou que eu tinha que adicionar 127.0.0.1/8 à diretiva match-clients no named, além do 192.168.0.0/16 que eu já tinha lá, e então ele começou a funcionar corretamente depois de reiniciar o named.

    
por 02.12.2014 / 02:35
0

Eu tive o mesmo problema. Eu usei buildroot para construir o sistema de arquivos, para compilar o kernel e para adicionar pacotes extras com o busybox.

Eu só consegui fazer ping em um endereço IP. Com o url, o comando ping retornou: bad address error . Então eu mudei o arquivo resolv.conf .

sudo vim /etc/resolv.conf

nameserver gateway_ip_address
nameserver 8.8.8.8
nameserver 8.8.4.4

E tudo funcionou bem.

    
por 11.01.2015 / 20:05
0

Resolvi os mesmos sintomas editando: /etc/nsswitch.conf e adicionando DNS à seguinte linha:

hosts:      files dns
    
por 10.12.2015 / 15:14