Busyboxのping IPは機能しますが、ホスト名nslookupが「bad address」で失敗します


14

独自の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を使用しています。このシステムには共有ライブラリはありません。


ファイアウォールが設定されていますか?その場合、ポート53 UDP / TCPをブロックしますか?
ジェニーD 14

ファイアウォールもポート53のブロックもありません。同じサブネット上の別のマシンからDNSにアクセスできます。
AllenKll

私の知る限り、カーネルの.config-optionsによってDNS機能を無効にすることはできません。
ボンシスコット

1
DNSサーバー@ 192.168.13.5で再帰クエリが許可されていますか?たとえば、dig @192.168.13.5 www.google.com追加情報を入手した場合はどうしますか?他のマシンからDNSサーバー192.168.13.5に対して再帰クエリを実行できますか?
チップスター14

1
カーネルは問題ないようですが、DNS解決は機能しません。DHCPからネームサーバーIPを取得しましたか?ルートは設定されていますか?別のネームサーバーを試してくださいnameserver 8.8.8.8

回答:


6

問題はbusyboxにあります。プリコンパイルバージョンに切り替えましたが、問題はありませんでした。コンパイルオプションを調べる必要があります。ご協力いただきありがとうございます。

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

libnssを動的にロードする必要があるため、静的にリンクされたglibcプログラム(この場合はbusyboxなど)のDNS機能には既知の問題があります。これを解決するには、uClibcツールチェーンを構築し、busyboxをリンクします。


実際にbusyboxをuClibcに対してコンパイルしてこの答えを検証しましたか、それとももっともらしいと思われましたか?
ティム

私はこれをテストしませんでした。事前に作成されたバージョンは私の問題を解決しました。
アレンクル

2

私は同じ問題に出くわしましたが、busyboxがresolv.confの形式についてうるさいことがわかりました。nslookupが機能するためには、ネームサーバータグとアドレスの間にちょうど1つの空白が必要です。さらに、/ etc / nsswitch.confにはホストのDNSを含める必要があります。

[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 

はい、質問は古いですが、現在のbusyboxはまだこのように動作します。

[以下のxxdを使用して、resolv.confの空白の数を表示しました]

これは失敗します:

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

0

これが私と同じ問題かどうかはわかりませんが、最近、古い内部DNSサーバーシステムをOpenBSD 3.8から5.6にアップグレードし、pingでホストを解決する機能を失いましたが、hostコマンドは機能していました。既にあった192.168.0.0/16に加えて、namedのmatch-clientsディレクティブに127.0.0.1/8を追加する必要があり、namedを再起動した後、正常に動作するようになりました。


0

同じ問題がありました。buildrootを使用して、ファイルシステムを構築し、カーネルをコンパイルし、busyboxで追加のパッケージを追加しました。

IPアドレスに対してのみpingを実行できました。urlを使用すると、pingコマンドが返されましたbad address error。その後、私はresolv.confファイル。

sudo vim /etc/resolv.conf

nameserver gateway_ip_address
nameserver 8.8.8.8
nameserver 8.8.4.4

そして、すべてがうまくいきました。


1
それは私にとって問題を解決していないようです。OPが述べたように、静的にリンクされている場合、libnssが機能していないようです。busyboxをuclibc(およびudhcpc)でコンパイルすると、問題が解決するようです。
アッティラO.

0

編集して同じ症状を解決/etc/nsswitch.confし、次の行にDNSを追加しました。

hosts:      files dns

-1

sudo vim /etc/resolv.conf resolv.confを編集するには、ネームサーバーアドレス(およびキーワード 'nameserver')が以下のようにコンマではなく単一のスペースで区切られていることを確認してください。

nameserver 8.8.8.8 8.8.4.4
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.