ネットワークが静的 IP 用に構成されている場合、resolv.conf は再起動時に設定されません。

ネットワークが静的 IP 用に構成されている場合、resolv.conf は再起動時に設定されません。

コンピューターを静的 IP を使用するように構成すると、Ubuntu 12.04 Server エディションで名前解決の問題が発生しているようです。

/etc/network/interfaces 内:

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1

を実行すると$ sudo apt-get upgrade、「取得に失敗しました...」という結果になります。

. . . W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise-backports/universe/i18n/Translation-en_US Something wicked happened resolving 'us.archive.ubuntu.com:http' (-5 - No address associated with hostname)
[...]

/etc/network/interfaces を次のように変更します。

auto eth0
iface eth0 inet dhcp

すべて正常に動作しています。

/etc/resolv.conf を調べると、さらにヒントがいくつか得られます。

解決の問題が発生していた場合、resolv.conf は空で、ネームサーバーが指定されていませんでした。その後、静的から DHCP に変更し、ネットワークを再起動しました。/etc/resolv.conf は「nameserver 192.168.1.1」に変更されました。

DHCP から静的に切り替えて再起動しても、ネームサーバー エントリは削除されません。しかし、静的に設定してシステムを再起動すると、resolv.conf は空になりました。DHCP を設定してシステムを再起動すると、resolv.conf にネームサーバー 192.168.1.1 が設定されます。つまり、問題は、resolv.conf が正しく書き込まれていないことにあるようです。どのパッケージ/コードが resolv.conf への書き込みを担当していますか? 未解決の問題を確認できる特定のパッケージはありますか?

更新: istream は、12.04 でのresolv.conf の変更について説明した優れた記事を投稿しました。 http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

答え1

に従ってresolvconf マニュアルページ(マニュアル ページに例が記載されています)、静的設定の下の /etc/network/interfaces に以下を追加します。

dns-nameservers [IP address(es) of your DNS]     
dns-search      [your dns-search strings (optional)]

答え2

192.168.1.1静的 IP を設定するときに、DNS の値として指定したことは確かですか?

コマンドラインからこれを行う方法はわかりませんが、System Settings -> NetworkGUI を使用する方法も機能するはずですよね? 私が考えているのは、以下のスクリーン キャプチャのようなものが必要なのではないかということです。それとも、私が何をしようとしているのか理解していないのでしょうか?

静的 IP、デフォルト ルート、DNS サーバーを使用したネットワーク構成

注: 左側のウィンドウの値は無視してください。これらは DHCP から取得した値です。自分の考えを説明しようとしただけなので、静的構成を保存しませんでした。

ちなみに、 を192.168.1.1使用したのは、それが使用されていたからです。ただし、有効な DNS サーバーの IP を使用することもできます。たとえば、8.8.8.8および/または208.67.222.222も機能するはずです。

答え3

ネットワークマネージャアプレットを使用してネットワーク設定をセットアップしたくない(またはできない)場合は、"静的"利用可能な DHCP サーバーがない場合の IP 構成は、 に静的リースを設定することです。そこで、 dhclient が静的にフォールバックするときにファイルdhclient.confに書き込まれるネームサーバーを指定する必要があります。resolv.conf

しかし、手を汚したくない場合は、接続のIP設定でDNSサーバーのアドレスを指定するためにGUIを使用することをお勧めします。https://askubuntu.com/a/127537/33305

答え4

OP はサーバー版を使用しています。NetworkManager は適用されません。ただし、サーバーの複雑さを増すためだけに追加される可能性もあります。

ところで、いったいなぜ resolvconf がサーバー ed に追加されたのでしょうか... なぜですか!!??!?

とにかくあなたの質問に答えるために以下を追加してください:

/etc/ネットワーク/インターフェース

このようなもの:

auto eth0 inet static
     dns-nameservers ns1.mydnsservers.com ns2.mydnsservers.com

重要なオプションは「dns-nameservers」です。

関連情報