/etc/resolv.confが変更され続けるのはなぜですか?

/etc/resolv.confが変更され続けるのはなぜですか?

私はvirt-managerを使用して2つのイーサネットインターフェイス(1つはNATに接続され、もう1つはbr0にブリッジ)を持つDebianベースのLinux仮想マシンを実行しています。/etc/network/interfaces構成は次のとおりです。

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

br0にはDHCPサーバーがあり、スイッチ以外には何も接続されていません。

コンピュータを再起動すると、/etc/resolv.conf次の項目があります。

nameserver 192.168.150.1

これはNAPによって割り当てられたネットワークアドレスです。つまり、試行するとping google.comエラーが発生し、temporary name resolution failure他の項目を追加します。

nameserver 8.8.8.8

仮想マシンが正常に動作し、すべてのWebサイトにアクセスできますが、しばらくすると、サービスを開始しないか/etc/resolv.confプログラムを実行せずにマシンを実行してもアイテムが再表示されます。

何が上書きされているかを調べる方法はありますか?見つからない場合(bashファイルを使用せずに/etc/resolv.conf )Watを追加できますか?nameserver 8.8.8.8/etc/resolv.conf

ベストアンサー1

なぜならそうしなければならないからです。はい、/etc/resolv.confしなければならない絶えず変える他のサービスで更新する必要があるたびに。

ここに質問があります。どんなサービスを提供しますか?より多くの情報が必要です。

問題の簡単な説明を見ると、インターフェイスは2つだけです。 1つはlo変更する必要のないDHCP /etc/resolv.conf、もう1つはdhcpサービスを使用するeth0です。 dhcpサービスは、アップストリームルーター、スイッチ、またはほとんどの場合、libvirtおよびブリッジ内の仮想dhcpサーバーでリースを更新する必要があります。

私は説明を仮定2つのインターフェース構成を見ると~へゲスト構成ではなくVMです。

まあ、1つのオプションはdhcpclientに通知することです。DHCPリースで指定されたサーバーの上書き/etc/dhcp/dhclient.conf仮想マシンの内部に次の行を追加します。

supersede domain-name-servers 1.1.1.1, 2.2.2.2, 3.3.3.3;

またはプレフィックスを使用して、つまり、最初のDNSリゾルバーとして追加、次の行を使用します。

prepend domain-name-servers 8.8.8.8, 8.8.4.4;

氷山

問題は、上記の「氷山の一角」よりはるかに複雑です。

仮想ネットワーク構成が複雑です。ブリッジ(192.168.150.zzアドレス(デフォルトはxx.yy.122.zzではない)を提供すると仮定します)が正しく設定されていることを確認する必要があります。読んでくださいhttps://wiki.libvirt.org/page/VirtualNetworking

このファイルを更新できる他の代替プログラムがたくさんあります/etc/resolv.conf。あなたの説明によると、この場合、どちらも問題にならないようです。しかし、ご存知のように、/etc/resolv.conf支配権のための競争は長年にわたって長い間行われてきました、そして今日もまだ存在しています。/etc/resolv.conf時々制御し変更することができるいくつかのプログラムは次のとおりです。

  1. resolvconf。絶対的な制御権を持ち、/etc/resolv.conf他のプログラムがそれを変更できないように設計されたプログラムです。それを削除します。
  2. Network Manager(あなたはそれを使用していると報告しません)。使用するDNSサーバーを定義するいくつかのエントリがあります。構成ファイルを移動して構成をリセットする無効問題が解決することを確認してください。
  3. 文書/etc/network/interfaces DNS設定行を含めることができます、ここではそうではありません。
  4. サービスsystemd resolvedはローカルサーバー127.0.0.53を設定している可能性がありますが、これを報告しません。関連
  5. dnsmasqまたは、同様のDNSサーバーを制御するように構成できます。実行中のプログラムがresolv.confあることを確認してください。dnsmasq
  6. 各新しいリースはdhclient更新できます(必要に応じて)。dhcp.conf上記のように。

おすすめ記事