web-dev-qa-db-ja.com

Ubuntu 19.04バインドがローカルで解決されない

最新のUbuntu 19.04を試してみてください。自分のバインドをローカルで実行すると、resolv.confといくつかの違いがあります。以前の18.04では、resolv.confは次のようになっています

nameserver 127.0.0.1
nameserver 127.0.0.53

19.04の間に、これは

nameserver 127.0.0.53
options edns0

Digまたはnslookupを使用してDNSルックアップを確認すると、ローカルバインド構成が使用されず、が見つかりません。

入れたら

Dig www.example.com @127.0.0.1

デフォルトのDig www.example.comとの比較

Dig www.example.com @127.0.0.53 

動作しており、検索に対して適切な応答を取得します。

Netplan yamlファイル/etc/netplan/00-private-nameservers.yamlを追加してみました

network:
    version: 2
    ethernets:
        enp0s3:
            nameservers:
                addresses:
                - 127.0.0.1
                - 1.1.1.1
                - 1.0.0.1
                - 8.8.8.8
                - 4.4.4.4
                #search: [ nyc3.example.com ]

しかし、ローカルルックアップを実行するようにresolv.confを変更する必要はありません。

このバージョンは私にとって新しいものであり、これがバグなのか、それとも何なのかわかりません。繰り返しますが、bindをローカルで実行しており、ローカルでドメインルックアップを解決することを期待しています。

[以下のコメントに関してこれを追加しました。]

root@server:/tmp# systemd-resolve --status
Global
       LLMNR setting: no
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

Link 2 (enp0s3)
      Current Scopes: DNS
DefaultRoute setting: yes
       LLMNR setting: yes
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 127.0.0.1
                      1.1.1.1
                      1.0.0.1
                      8.8.8.8
                      4.4.4.4
                      192.168.2.1
                      2001:569:7552:3900:4a5f:38ee:fe29:130

プライベートネームサーバーyamlがない場合は表示されます

Link 2 (enp0s3)
      Current Scopes: DNS
DefaultRoute setting: yes
       LLMNR setting: yes
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.2.1
                      2001:569:7552:3900:4a5f:38ee:fe29:130
2
Master James

/ etc/systemd/resolved.confを編集できます

dNSをローカルで実行しているバインド(別名DNSサーバー)に設定します

[Resolve]
DNS=127.0.0.1

で再開

systemctl restart systemd-resolved.service

あなたが掘る(または上記のように検索する)と、www.example.comレコードをローカルで提供されたDNSのゾーンファイルで適切なIP結果が得られますが、それはあなたが得るものほど多くの情報を表示しません@ 127.0.0.1を追加するか、resolv.confが127.0.0.53よりも前に127.0.0.1を持っている

これはコメントのヘルプから取得された部分的な回答であり、有効/有用な回答または部分的な回答としてこのように宣言されていない理由で削除された、私が追加した他のすべての返信のように保持および削除しないでください。おそらく特定の状況に役立つでしょう。私の場合、私はDNSSECなどを行っており、@ 127.0.0.1のようなより実質的な結果を確認する必要があります。少なくとも、そのため、場合によってはそれが正しいことを明確に示さなかったのです。もちろん、resolv.confが127.0.0.1のシステムで実行されているDNSを直接指し、127.0.0.53を介してDHCP提供のルーターゲートウェイ(通常)にチェーンされていない場合に、完全な応答が得られることを期待していました。

[また、わずかなコメントではコードブロックと結果の作業を表示するには不十分であるため、これらの問題の解決に関するコミュニティのディスカッションを削除しないことの重要性に注意してください。削除ステータスには複数のユーザーフラグを検討してください。]

2
Master James

ええ、それはまた私を狂わせます。率直に言って、私はそれを徹底的に分析するのに十分な忍耐力がなかったので、直接的な方法であなたの質問に答えません。

しかし、基本的には systemd-resolved と呼ばれるこのまだ別のクレイジーなsystemdユニットがあり、これは127.0.0.53:53にtcpとudpの両方でバインドします。そのため、nameserver 127.0.0.53/etc/resolv.confが表示されます。

それ以上の/etc/resolv.confは、systemd-resolvedによる互換性のために/run/systemd/resolve/stub-resolv.confへのシンボリックリンクとして残されています。

これは私が完全に理解していない部分ですが、DNSサーバーを/etc/systemd/resolved.confに設定しても、systemdで解決されたconfigfileであるように見えても、一部のプログラムはそれを使用しません。どうして?今のところ手掛かりはありません。

どのように私はそれと一緒に住んでいますか?また、DNSサーバーをNetworkManagerに設定しました。次に、DNSサーバーを/etc/systemd/resolved.conf内に設定し、NetworkManagerに実際に設定しました。

netplan.ioはどうですか?まだわかりません。しかし、DNSサーバーに関しては、現時点では何もしていません。

0
Comar

わかりました。ありがとう。それが含まれていないので、私は明白なことに抵抗していました。私はそれが現実的にバグであると確信していますが、OS開発者の期待と想定される使用法は異なるか、変化している必要があります。私が思うに、DNSを実行すると、それ自体は非現実的なものではないように見えます。彼らが以前に機能した方法を削除し、基地を適切にカバーしなかったのは、私には奇妙に思えました。 (おそらく、無駄を省こうとする見落としや意見の違いのように思われるので、バグ報告を試みます。誰かがより良い方法を見つけて(そしてここでコメントする)、その後復元することを望んでいました(そしてまだチャンスがあります)。以前の機能は手動で動作するため、実際に機能します。

apt install resolvconf

次に、ローカルIP 127.0.0.1を指すようにresolvconfサービスデーモンのconfファイルを編集または追加します

pico /etc/resolvconf/resolv.conf.d/head

そのように見えます

nameserver 127.0.0.1

その後、その部分を再起動します

service resolvconf restart

dig www.example.comが返され、/ etc/resolve.confが適切な状態に復元されます

nameserver 127.0.0.1
nameserver 127.0.0.53
options edns0

オプションedns0がUbuntu 19.04に新しく追加されました。18.04にはありませんでした。これは、bind9パッケージを追加しているためです。ローカルマシンにこのresolveconfパッケージを追加/復元する必要があると思います。提供しているDNSレコードを解決できる。私はそれらがグローバルシステムに適切にロープされていると思うので、あなたもそれを必要としないかもしれませんので、resolveconfをもっと信頼する必要があるかもしれませんが、ローカルで動作していることをテストする必要があると思います。最初にローカルサーバーを見つけるなど。

0
Master James