読者です 読者をやめる 読者になる 読者になる

試される大地から

furaiboが送る技術ブログ。プログラミングのTipsなど書いていきます。

Ubuntu14.04でうまく名前解決できない罠


こんにちは、お久しぶりです。furaiboです。
7月下旬〜8月中旬までインターンに参加していたため、ブログの更新が滞っていました。
そのうちにインターンについての記事も書こうと思います。



さて、自分は普段の開発をWindowsLinux(Ubuntu)の2つで行っています。
主にVMware上でUbuntu12.04を使っていたのですが、動作が重かったため、
つい最近自分のノートPCにUbuntu14.04を導入することとなりました。



apt-getやら.debパッケージやらでバッチリ環境を整え、
Githubからcloneしようと思ったら、なぜかうまく行かない。
そんなホストは見つからないという警告が出る。試しに、

$ ping google.com
$ ping yahoo.co.jp


などとやるも、全く通じない。やはりunknown hostと言われてしまう。
pingは通じないが、nslookupを使ってみたところ、
こちらの方はちゃんと名前解決できており、意図した通りの挙動。


とにかく、このままではGithubを使うことができないので、
色々と調べてみたところ、これはUbuntu14.04のバグ(?)らしく、
Ubuntu13.04から名前解決のためにdnsmasqなるものが導入されたため、
起きているらしいことが判明。



以下のリンクが参考になりました。

http://stuartfeeser.com/2013/02/11/ubuntu/
Ubuntu日本語フォーラム / 12.04 LTS 以降採用のdnsmasq 環境での名前解決について



まずは、DNSサーバを自身の設定に追加します。

# vim /etc/network/interfaces

(末尾に追加)
dns-nameservers 8.8.8.8 8.8.4.4


さらに、1番目のリンクにしたがって、
/etc/nsswitch.confの13行目を書き換えます。
[NOTFOUND=return]が余計なので削除します。

# vim /etc/nsswitch.conf

# hosts:          files [NOTFOUND=return] dns
hosts: files dns


これで、pingコマンドでも名前解決がされるようになりました。



他にも、参考に閲覧したサイトのURLを載せておきます。

12.10 - ping: unknown host google.com in UBUNTU SERVER - Ask Ubuntu
networking - "ping: unknown host google.com" but IP's works fine - Ask Ubuntu




この他にもUbuntu13.04以降ではRubyでTcl/Tk8.5がうまくインストールできないなどの不具合がありました。
安定的な動作を期待するなら12.04を使うほうがいいのかもしれないとも感じました。