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


17

静的IPを使用するようにコンピューターを構成すると、Ubuntu 12.04サーバーエディションで名前解決の問題と思われる現象が発生します。

/ 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になります。だから、問題はresolve.confが正しく書き込まれていないということですか?resolv.confへの書き込みを担当するのはどのパッケージ/コードですか?未解決の問題を確認できる特定のパッケージはありますか?

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


2
を使用するときにすべてが正常に機能する場合DHCP、提案に「修正」したいのは「問題」です。LANはどのように見えますか?どのタイプのルーターを使用していますか?(192.168.1.1とは何ですか?)静的IPを使用するときに指定するDNSサーバーは何ですか?
不合理なジョン

1
症状をより正確に反映し、より多くの調査結果を追加するためにタイトルを更新しました
ケネスkoontz

すでに回答があったとしても、それらを改善するために質問とタイトルを編集するための+1!
不合理なジョン

1
ubuntu 12.04のDNSの変更へのistreamの参照を追加しました。
ケネスクーツ12年

回答:


16

あたりとしてはresolvconfのmanページ(manページで提供される例)、あなたの静的な設定の下に/ etc / network / interfacesに次の行を追加します。

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

パーフェクト。これは動作します!
ケネスクーツ12

11.10では、奇妙なことにdns-nameserversを指定する必要はありませんでした。
ケネスクーツ12

そのとおり。12.04で、Ubuntuはresolvconfを使用してresolv.confを処理し始めました。dns-nameservers/ e / n / iのオプションを読み取るのはresolvconfです。
jdthood

1

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必要があります。


解決策をありがとう。ただし、デスクトップは使用していません。
ケネスクーツ12

@kennethkoontzわかりません。Ubuntuサーバーを使用していますか?12.04の一般的なデスクトップインストールを使用していない場合は、質問を編集してこの情報を追加してください。
不合理なジョン

2
混乱させて申し訳ありません。「デスクトップ版を使用していません。サーバー版を使用しています。」と言うべきでした。質問の投稿を更新してあいまいさを解消します。
ケネスクーツ12

0

Network Managerアプレットを使用してネットワーク設定を行いたくない(またはできない)場合、DHCPサーバーを使用できない場合に「静的な」 IP構成をセットアップする適切な方法を見つけました。で静的なリースをすることdhclient.confです。そこでresolv.conf、dhclientが静的にフォールバックするときにファイルに書き込まれるネームサーバーを指定する必要があります。

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


0

OPはサーバーedを使用しています。NetworkManagerは適用されません。しかし、サーバーを複雑にするためだけに追加されるかもしれません。

そのことについて、なぜ世界でresolvconfがサーバーedに追加されたのか...なぜ!! ??!?

とにかくあなたの質問に答えるために追加します:

/ etc / network / interfaces

このようなもの:

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

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

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