Ich kompiliere meinen eigenen 3.14-Kernel. Ich fürchte, ich habe einige wichtige Netzwerkfunktionen ausgelassen, damit DNS funktioniert.
Ich kann keine Domainnamen auflösen. Ich kann meinen DNS-Server anpingen. Ich kann die Verwendung dieses DNS auf anderen Computern beheben, damit ich weiß, dass es nicht der Server ist.
~ # 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
Irgendwelche Ideen, was ich ausgelassen habe? Hier ist meine Konfiguration: http://pastebin.com/vt4vGTgJ
EDIT :
Wenn es nicht der Kernel ist, was könnte ich vermissen? Ich benutze eine Busybox, die statisch verlinkt ist. In diesem System gibt es keine gemeinsam genutzten Bibliotheken.
dig @192.168.13.5 www.google.com
zusätzliche Informationen erhalten? Können Sie von anderen Computern aus rekursive Abfragen für Ihren DNS-Server 192.168.13.5 durchführen?nameserver 8.8.8.8
.Antworten:
Das Problem ist mit der Busybox. Ich habe zu einer vorkompilierten Version gewechselt und hatte keine Probleme. Ich muss damit in Kompilierungsoptionen suchen. Danke für Ihre Hilfe.
https://gist.github.com/vsergeev/2391575 :
quelle
Ich bin auf dasselbe Problem gestoßen, und es stellte sich heraus, dass busybox hinsichtlich des Formats für resolv.conf pingelig ist. Zwischen dem Nameserver-Tag und der Adresse muss genau ein Leerzeichen stehen, damit nslookup funktioniert. Außerdem muss /etc/nsswitch.conf DNS für den Host enthalten.
[busybox master (git hash 349d72c19) sysroot-glibc-linaro-2.25-2018.05-arm-linux-gnueabihf]
Ja, die Frage ist alt, aber die aktuelle Busybox verhält sich immer noch so.
[Ich habe xxd unten verwendet, um die Anzahl der Leerzeichen in der resolv.conf anzuzeigen]
Dies schlägt fehl:
und das funktioniert:
quelle
Ich bin mir nicht sicher, ob dies dasselbe Problem ist, das ich hatte oder nicht, aber ich habe kürzlich ein Upgrade und ein altes internes DNS-Serversystem von OpenBSD 3.8 auf 5.6 durchgeführt, und ich habe die Fähigkeit verloren, Hosts mit Ping aufzulösen, aber der Hostbefehl funktionierte. Es stellte sich heraus, dass ich zusätzlich zu der 192.168.0.0/16, die ich bereits dort hatte, 127.0.0.1/8 zur match-clients-Direktive in named hinzufügen musste, und nach dem Neustart von named fing es an, ordnungsgemäß zu funktionieren.
quelle
Ich hatte das gleiche problem Ich habe buildroot verwendet, um das Dateisystem zu erstellen, den Kernel zu kompilieren und zusätzliche Pakete mit busybox hinzuzufügen.
Ich konnte nur eine IP-Adresse anpingen. Mit URL des Ping - Befehl zurückgegeben:
bad address error
. Dann habe ich dieresolv.conf
Datei geändert .Und alles hat gut funktioniert.
quelle
Ich habe die gleichen Symptome behoben, indem ich
/etc/nsswitch.conf
Folgendes bearbeitet und DNS in die folgende Zeile eingefügt habe:quelle
sudo vim /etc/resolv.conf
Um die Datei resolv.conf zu bearbeiten, stellen Sie sicher, dass die Nameserver-Adressen (sowie das Schlüsselwort 'nameserver') durch ein einzelnes Leerzeichen und nicht durch ein Komma getrennt sind (siehe unten):quelle