web-dev-qa-db-fra.com

Bupérabox ping IP fonctionne, mais HostName Nslookup échoue avec "mauvaise adresse"

Je compile mon propre 3.14 noyau. Je crains que je puisse avoir laissé de côté une fonctionnalité de réseau importante pour que DNS fonctionne.

Je ne peux pas résoudre les noms de domaine. Je peux ping mon serveur DNS. Je peux résoudre en utilisant ce DNS sur d'autres machines, donc je sais que ce n'est pas le serveur.

~ # 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

Des idées ce que j'ai laissé de côté? Voici mon configuration: http://pastebin.com/vt4vgtgj

[~ # ~] Edit [~ # ~ ~]:

Si ce n'est pas le noyau, que pourrais-je manquer? J'utilise Busybox, lié statiquement. Il n'y a pas de bibliothèques partagées dans ce système.

14
AllenKll

Le problème est avec Bushbox. Je suis passé à une version précompilée et je n'ai pas eu de problèmes. Je dois examiner les options de compilation avec elle. Merci de votre aide.

https://gist.github.com/vsergev/2391575 :

Il existe des problèmes connus avec la fonctionnalité DNS dans des programmes GLIBC liés statiquement (comme dans ce cas dans ce cas), car les libns doivent être chargés de manière dynamique. Construire une boîte à outils UCLIBC et relier Busybox contre cela résoudrait cela.

6
AllenKll

J'ai couru dans le même problème et il s'avère que Busybox est difficile sur le format de resolv.conf. Il doit y avoir exactement un blanc entre l'étiquette du serveur de noms et l'adresse de NSLOOKUP pour fonctionner. De plus /etc/nsswitch.conf doit inclure DNS pour l'hôte.

[Busybox Master (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 

Oui, la question est ancienne, mais la boîte d'occupation actuelle se comporte toujours de cette façon.

[J'ai utilisé XXD ci-dessous pour afficher le nombre de blancs dans resolv.conf]

Cela échoue:

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'

et cela fonctionne:

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
2
sgrefen

J'ai eu le même problème. J'ai utilisé Buildroot de construire le système de fichiers, de compiler le noyau et d'ajouter des packages supplémentaires avec Busybox.

Je ne pouvais que ping une adresse IP. Avec URL, la commande ping est revenue: bad address error. Puis j'ai changé le resolv.conf déposer.

Sudo vim /etc/resolv.conf

nameserver gateway_ip_address
nameserver 8.8.8.8
nameserver 8.8.4.4

Et tout a bien fonctionné.

0
UserK

Je ne sais pas si c'est le même problème que j'avais ou non, mais j'ai récemment mis à niveau et ancien système de serveur DNS interne de OpenBSD 3.8 à 5.6, et j'ai perdu la possibilité de résoudre les hôtes avec Ping, mais le commandement hôte fonctionnait. Il s'est avéré que je devais ajouter 127.0.0.1/8 à la directive des match-clients à Nommé en plus du 192.168.0.0/16 que j'ai déjà eu là, puis il a commencé à fonctionner correctement après le redémarrage du nom.

0
RedScourge

J'ai résolu les mêmes symptômes en édité: /etc/nsswitch.conf et ajouter DNS à la ligne suivante:

hosts:      files dns
0
Burmanese