お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2015-03-02 22:12:49

taku_s
メンバ
登録日: 2008-12-14

名前解決が出来ません

Ubuntu14.04をサーバとして使っています。
LAN内から、sshは通っているんですが、外部への接続が出来ません。
/etc/network/interfacesを次のように設定しています。
auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
address 192.168.12.102
netmask 255.255.255.0
gateway 192.168.12.1
dns-nameservers 192.168.12.1

しかし、
ping google.com
を打っても
ping: unknown host google.com となってしまいます。

何をチェックすればよいでしょうか?

オフライン

 

#2 2015-03-03 07:44:53

ry
メンバ
登録日: 2008-07-30

Re: 名前解決が出来ません

とりあえず、cat /etc/resolv.confdig +noall +ans +stats google.comip routeping 8.8.8.8 を実行した結果を教えてください。
もしインストールされているなら traceroute -n 8.8.8.8 を実行した結果もお願いします。

オフライン

 

#3 2015-03-03 18:49:22

taku_s
メンバ
登録日: 2008-12-14

Re: 名前解決が出来ません

ryさま
早々にありがとうございます。
ご指導いただいた結果ですが

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
domain localdomain
search localdomain
nameserver 192.168.1.1

でした、ちなみに
resolv.conf -> ../run/resolvconf/resolv.conf
です。

$ dig +noall +ans +stats google.com
-bash: dig: command not found

$ ip route
default via 192.168.12.1 dev wlan0
192.168.12.0/24 dev wlan0  proto kernel  scope link  src 192.168.12.102

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=53 time=19.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=53 time=18.3 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=53 time=18.3 ms
^Z
[1]+  Stopped                 ping 8.8.8.8

$ traceroute -n 8.8.8.8
-bash: traceroute: command not found
でした。

オフライン

 

#4 2015-03-04 08:06:31

ry
メンバ
登録日: 2008-07-30

Re: 名前解決が出来ません

とりあえず /etc/resolv.conf ファイルの nameserver 192.168.1.1 を nameserver 192.168.12.1 に書き換えればいいと思います。
ただし、/etc/network/interfaces ファイルに書いた dns-nameservers 192.168.12.1 がここに反映するはずなのが、されていないのが気になります。
dpkg -l | grep '^ii\s\+resolvconf\b' を実行して以下のように出力されるか確認してください。

コード:

ii  resolvconf                          1.69ubuntu1.1                    all          name server information handler

もし、何も出力されないようなら sudo apt-get install resolvconf を実行して resolvconf パッケージをインストールしてください。
これで /etc/network/interfaces ファイルの dns-nameservers の行が /etc/resolv.conf ファイルに反映されるはずです。

余談ですが、dig や traceroute コマンドも動作確認等でよく使うので sudo apt-get install dnsutils traceroute コマンドでインストールしておくことを勧めます。

オフライン

 

#5 2015-03-04 18:22:54

taku_s
メンバ
登録日: 2008-12-14

Re: 名前解決が出来ません

ryさま
resolvconfは、問題なくインストールされていました。
/etc/resolv.confを書き換えれば、名前解決できるのですが、やはりreboot後に元に戻ってしまいますね。

もう少し、調べて見ます。
いろいろご指導いただき、ありがとうございました。

オフライン

 

#6 2015-03-04 18:48:34

ry
メンバ
登録日: 2008-07-30

Re: 名前解決が出来ません

network-manager パッケージが入っていて、それが悪さしている可能性を考えてみた。
小生の環境ですぐには確認できないので、感にすぎませんが。

オフライン

 

#7 2015-03-05 18:14:57

taku_s
メンバ
登録日: 2008-12-14

Re: 名前解決が出来ません

ryさま

ネットでぐぐると、いくらか情報がありました。。

http://d.hatena.ne.jp/zzkater/20140713/1405250096

http://geektrainee.hatenablog.jp/entry/2014/09/23/002443

すぐに、テストできない状態なので、後でじっくりやってみます。
モニタなしの、サーバ環境では、昔からのinterfacesでの設置が楽だったんですが、
このあたりの設定が、ここのところ頻繁に変更されますね。

オフライン

 

#8 2015-03-06 08:08:01

ry
メンバ
登録日: 2008-07-30

Re: 名前解決が出来ません

手元の 14.04 server で確認したら、/etc/resolvconf/resolv.conf.d/base ファイルはありますが中身は空でした。
/etc/nsswitch.conf ファイルの当該行は hosts: files dns になっています。

DNS サーバーの指定は /etc/network/interfaces ファイルに dns-nameservers 127.0.0.1 のように記述しています。(自分自身が DNS サーバーなので 127.0.0.1 を指定)

役には立たたなさそうな参考情報ですが。

オフライン

 

#9 2015-03-06 12:01:24

katsu07
ゲスト

Re: 名前解決が出来ません

taku_s による投稿:

モニタなしの、サーバ環境では、昔からのinterfacesでの設置が楽だったんですが、

この言い回しからデスクトップ版では無く、純粋にサーバー版をインストールして使用していると推測します。
アップグレードかクリーンインストールかは解りませんが、以下の項目の確認をしてみてください。

* モニター無しとの事なので、デスクトップ環境を追加インストール等もしていないと思われるので大丈夫だとは思いますが。
/etc/NetworkManager/NetworkManager.conf が存在するならば、中身を参照して managed=false になっているのを確認する。
ubuntu 12.04の頃の記憶なので変更されているかもしれませんが、確か true になっていると /etc/network/interfaces 側の設定が無視されてしまう。
trueになっていたらfalseに書き換えて再起動してください。

* /etc/network/interfacesのdns-nameservers 192.168.12.1が反映されないばかりか、何処で設定しているのかresolv.confにnameserver 192.168.1.1が書き込まれているのが気になります。
/etc/resolvconf/resolv.conf.d/head を参照し、nameserver 192.168.1.1 が記述されていない事を確認してください。
このファイルは通常resolv.confのヘッダー部分しか書かれていないはずです。

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

だけです。

/etc/resolvconf/resolv.conf.d/tail が存在していたら同じ様に確認してください。
通常は存在しないと思います。
man resolvconfでは必要ならばresolver optionを記述する事になっています。(options inet6 等)

/etc/resolvconf/resolv.conf.d/base を参照し、nameserver 192.168.1.1 が記述されていないのを確認してください。
記述されていたら削除して $ sudo resolvconf -u して再起動してみてください。
再起動しても /etc/network/interfaces のdns-nameserverが反映されない場合は、/etc/resolvconf/resolv.conf.d/base にnameservers 192.168.12.1を記述して $ sudo resolvconf -u して再起動。

これらの事を確認及び変更してもダメな場合は、解りません。

 

#10 2015-03-06 17:35:45

katsu07
ゲスト

Re: 名前解決が出来ません

#9の投稿に誤記があったので修正

再起動しても /etc/network/interfaces のdns-nameserverが反映されない場合は、/etc/resolvconf/resolv.conf.d/base にnameservers 192.168.12.1を記述して

の dns-namerserver と nameservers ですが、正しくは以下です。

コード:

誤) dns-nameserver --> 正) dns-nameservers
誤) nameservers    --> 正) nameserver
 

#11 2015-03-07 19:54:51

taku_s
メンバ
登録日: 2008-12-14

Re: 名前解決が出来ません

ryさま
/etc/nsswitch.confは、同じくhosts: files dns でした。

katsu07さま
ご指導ありがとうございます。
/etc/NetworkManager/は存在しませんでした。
headには、ご指摘のとおりコメントのみ、baseは空でした。

ところが、tailがありました。
lrwxrwxrwx 1 root root   8 Feb 19 20:52 tail -> original
でoriginalの内容が

# cat original
domain localdomain
search localdomain
nameserver 192.168.1.1
でした。
これを削除して、resolvconf -u をしてみたんですが、うまくいきませんでしたので
originalの方で、nameserver 192.168.12.1 を書いて resolvconf -u をすると。
resolv.conf に結果が反映されました。
ありがとうございました。

今回のマシンは、ARMのボードコンピュータですし、Ubuntu14.04もソースに
ボードコンピュータ用の、パッチを当てたもののはずですが、x86用などと全く同じかは
不明ですので、これ以上は詳しく判りません。
とりあえず、動きました。ありがとうございました。

オフライン

 

Board footer

Powered by FluxBB