
私は自分の3.14カーネルをコンパイルしています。 DNSが正しく機能するようにするいくつかの重要なネットワーキング機能が欠けていないか心配です。
ドメイン名を解決できません。私のDNSサーバーをpingできます。そのDNSを使用して他のコンピュータで確認できるため、サーバーではないことがわかります。
~ # 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
私が逃したアイデアはありますか?私の設定は次のとおりです。http://pastebin.com/vt4vGTgJ
編集する:
カーネルでない場合、何を見逃すことができますか?私はbusybox、静的接続を使用しています。このシステムには共有ライブラリはありません。
答え1
問題はビジボックスにあります。プリコンパイルされたバージョンに切り替えましたが、問題はありませんでした。コンパイルオプションを調べる必要があります。ご協力ありがとうございます。
https://gist.github.com/vsergeev/2391575:
libnssは動的にロードする必要があるため、静的にリンクされたglibcプログラム(この場合はbusybox)にはDNS機能に既知の問題があります。 uClibcツールチェーンを構築し、ここにbusyboxを接続すると、この問題は解決されます。
答え2
/etc/nsswitch.conf
次の行を編集し、DNSを追加して同じ症状を解決しました。
hosts: files dns
答え3
私は同じ問題があり、busyboxがresolv.confの形式に対して難しいことがわかりました。 nslookupが正常に機能するには、ネームサーバータグとアドレスの間に1つのスペースが必要です。また、/etc/nsswitch.confにはホストのDNSが含まれている必要があります。
[ ビジボックスマスター(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
はい、この質問は古いですが、現在busyboxの場合はまだそうです。
[resolv.confの空白数を表示するには、以下のxxdを使用します。]
失敗します。
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'
これは働きます:
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
答え4
私も同じ問題があります。私はbuildrootを使ってファイルシステムを構築し、カーネルをコンパイルし、busyboxを使って追加のパッケージを追加します。
1つのIPアドレスしかpingできません。 pingコマンドはurl:を返しますbad address error
。その後、resolv.conf
ファイルを変更しました。
sudo vim /etc/resolv.conf
nameserver gateway_ip_address
nameserver 8.8.8.8
nameserver 8.8.4.4
みんな大丈夫です。