私は組み込みLinuxシステムで壊れたシンボリックリンクを見つけました/etc/resov.conf
。特にそれは壊れたシンボリックリンクでした。私が説明できないのは、なぜそれらのいくつか(多く)が機能した理由です。
コードは Alpine Linux chroot 内で実行されます。 Debianの「ホスト」には最新の正しいresolv.confがありますが、chroot環境内のリンクが壊れています。私も見つけました。Alpineはデフォルトでnsswitch.confには付属していません。。すべてのホストは同じAlpine Linux chroot環境を持ち、ホストバージョンのDebianとネットワーク(物理的な場所)のみが異なります。
ホスト環境とchroot環境は/run
/sys
/proc
/dev
共有のみです。
ただし、一部のデバイスでは永続 FQDN を確認できます。もともとこれは共有DNSキャッシュに関連している可能性があると思いましたが、除外されました。 chrootの内部から:
$ ping unix.stackexchange.com
PING unix.stackexchange.com (151.101.193.69): 56 data bytes
64 bytes from 151.101.193.69: seq=0 ttl=58 time=3.962 ms
これらの組み込みデバイスは、以前にunix.stackexchange.comを確認するように求められたことがないため、DNSキャッシュにはありません。
現在、「動作する」デバイスと「壊れた」デバイスの違いが、そのデバイスがあるネットワークまたはリリースバージョンの微妙な違いかどうかを調査中です。詳細がわかったら、質問を更新します。
誰でも理由を説明できますか?一部次のうち、有効なresolv.confなしでFQDNを確認できるデバイスは何ですか?
chrootに関する追加情報
- それらはすべて同じchrootイメージを実行します。
- chroot 環境は「インベントリ」です。アルパインミニルートファイルシステムpython3を追加するだけです
apk add
。 nsswitch.conf
(前述)chrootファイルシステムは1つもなく、1つしかありません。非常に壊れたリンク/etc/resolv.conf
ホストに関する追加の詳細:
- さまざまなホスティング環境があります。
- これらすべてが複数のバージョンに分散しています。Debian は BeagleBoard.org から配布されます。。
- ホストの使用一般的なネットワークを設定します。
- 私には未知の理由で、彼らも実行されますDHCPクライアント、流通が進む方式のようです。
ベストアンサー1
/etc/resolve.conf
ホストを検証するために必要なコンポーネントではありません。信頼できるインターフェイスは、アプリケーションがホスト名を解決するために呼び出すgetaddrinfo
(または廃止されたgethostbyname
)ライブラリ関数です。システム構成によっては、resolv.conf
カウンセリングが行われる場合もありません。
たとえば、DNSクエリがルーティングされている場合systemd-resolved
(そのように設定されている)、これは必要ありません。順番にどのように構成するかによって/etc/nsswitch.conf
/etc/resolv.conf
systemd-resolved
できるを使用することresolv.conf
ができます。維持する /run/systemd/resolve/resolv.conf
からシンボリックリンクを作成できます/etc/resolv.conf
。より体系的分析マンページ。