web-dev-qa-db-ja.com

DNSルックアップが失敗する

ゲートウェイ192.168.122.1はdnsを実行し、コマンドDig @192.168.122.1 www.google.comは有効なIPアドレスを返すため、dnsは機能していて到達可能です。

コマンドtracepath www.google.comgethostbyname2: Host name lookup failureを返します。

コマンドtracepath 74.125.129.103(www.google.com)は有効な結果を生成するため、デフォルトルートが正しく設定されています。

コマンドroute -nは以下を出力します:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.122.1   0.0.0.0         UG    100    0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

そして、/etc/network/interfacesの該当する部分は次のようになります。

auto eth0
iface eth0 inet static
    address 192.168.122.5
    netmask 255.255.255.0
    broadcast 192.168.122.255
    gateway 192.168.122.1
    dns-servers 192.168.122.1

現在、ファイアウォールは実行されていません。

これらの設定を考えると、tracepath www.google.comはDNS情報について192.168.122.1に連絡し、機能していて到達可能であることが確認されていると思います。

Tracepathコマンドがgethostbyname2: Host name lookup failureを返す理由を見つけるために次に何をすべきですか?


編集(詳細)

/etc/resolv.confは空です。 Ubuntu 12.04は、/etc/resolvconf/resolv.conf.d/*のresolv.confデータを自動生成する新しいサブシステムresolvconfを使用します。

/etc/resolvconf/resolv.conf.d/originalに含まれるもの:

nameserver 192.168.122.1

他のすべてのresolv.conf.dファイル(headおよびbase)は空です。

/etc/nsswitch.confに含まれるもの:

    passwd:         compat
    group:          compat
    shadow:         compat

    hosts:          files dns
    networks:       files

    protocols:      db files
    services:       db files
    ethers:         db files
    rpc:            db files

    netgroup:       nis

/etc/hostsに含まれるもの:

    127.0.0.1       localhost
    127.0.1.1       hostname

    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
1
David

私はresolv.conf.dバージョンにあまり詳しくありませんが、ルックアップ設定を/etc/resolv/resolv.conf.d/baseではなく/etc/resolv/resolv.conf.d/originalに配置する必要があると思います。

1
Jenny D

nameserverディレクティブが/etc/resolv/resolv.conf.d/baseファイルに入る受け入れられた答えはone ubuntuの新しいresolvconfサブシステムでネームサーバー設定を管理する方法ですが、そこにありますこれもまた別の方法で、設定で試していました。

ネームサーバーは、/etc/network/interfacesディレクティブを使用してdns-nameserversファイルに設定することもできます。

私の問題はタイプミスでした!私はdns-nameserversを「dns-servers」と書いていました。

受け入れられた回答とこの回答の両方が機能することを確認しました。

1
David