最新の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
/ 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提供のルーターゲートウェイ(通常)にチェーンされていない場合に、完全な応答が得られることを期待していました。
[また、わずかなコメントではコードブロックと結果の作業を表示するには不十分であるため、これらの問題の解決に関するコミュニティのディスカッションを削除しないことの重要性に注意してください。削除ステータスには複数のユーザーフラグを検討してください。]
ええ、それはまた私を狂わせます。率直に言って、私はそれを徹底的に分析するのに十分な忍耐力がなかったので、直接的な方法であなたの質問に答えません。
しかし、基本的には 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サーバーに関しては、現時点では何もしていません。
わかりました。ありがとう。それが含まれていないので、私は明白なことに抵抗していました。私はそれが現実的にバグであると確信していますが、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をもっと信頼する必要があるかもしれませんが、ローカルで動作していることをテストする必要があると思います。最初にローカルサーバーを見つけるなど。