ローカルBIND9サーバーを使用して、いくつかのローカルDNSレコードをホストしています。ローカルドメイン名をDigしようとしたときに、ローカルBIND9サーバーを使用するようにDigに明示的に指示しないと、ドメイン名を見つけることができません。
user@heimdal:~$ Dig +short heimdal.lan.se
user@heimdal:~$ Dig +short @192.168.1.7 heimdal.lan.se
192.168.1.2
Ubuntu 17.04およびsystemd-resolvedが使用されます。これは私の/ etc/resolvedの内容です
# 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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.53
そして、systemd-resolve --statusからの出力
Global
DNS Servers: 192.168.1.7
192.168.1.1
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
[DNSサーバー]セクションには、メインのDNSサーバー(ローカルのBIND9インスタンス)として192.168.1.7が正しく構成されているようです。なぜ使わないのか分からない…?
したがって、有線eth0インターフェイスを管理対象に変更すると、この問題は解決しました。
/etc/NetworkManager/NetworkManager.confでifupdownをmanaged = trueに変更する
[ifupdown]
managed=true
次にNetworkManagerを再起動します
Sudo systemctl restart NetworkManager
この後、問題なく動作します。
これは100%ではありませんでした。私はまた、これらの変更を適用してリゾルバーを強制終了しました
Sudo service resolvconf disable-updates
Sudo update-rc.d resolvconf disable
Sudo service resolvconf stop
件名に関するこのブログ投稿に大きな感謝: https://ohthehugemanatee.org/blog/2018/01/25/my-war-on-systemd-resolved/
これがうまくいくように祈りましょう。このsystemd-resolveのビジネス全体はとても醜いです。
私の推測では、systemd-resolved
サービスは正しく設定されていますが、リクエストを確認することはできません。 .local
ドメインは mDNSを実行しているシステムによって特別に処理されます です。 avahi-daemon
は、mDNS/DNS-SDサービス(別名Apple製品)の "Bonjour")を提供し、名前解決中にDNSよりも優先されるように構成できます。Ubuntuがこれを行うようです。
選択できるオプションはいくつかあります。
.local
ドメインの名前を別の名前に変更します(おそらく.internal
または.lan
)。 DNSサーバーでいくつか変更する必要があるので、これは実際には最も簡単です。Avahiで最適に動作します。この方法をお勧めします。
/etc/nsswitch.conf
ファイルを変更するdns
エントリをmdns
エントリの前に置くことによって。
Avahiの構成を変更.local
を編集し、/etc/avahi/avahi-daemon.conf
を変更(または追加)して、mDNSドメインをdomain-name=.something
から別の何かに変更します([server]
セクションにあります)。 mDNSを使用するすべてのコンピューターでこれを行う必要があるため、それらのコンピューターは引き続き機能します。
私は最近インストールされた18.04を実行して、@ Civingによって引用された最初の変更を行いました。
[ifupdown]
managed=true
次に、/ etc/resolv.confが常にstub-resolv.confを指していること、および適切なLAN DNSサーバーを含む適切なresolv.confが生成されていることに気づき、シンボリックリンクを変更しました。
/etc/resolv.conf -> /run/systemd/resolve/resolv.conf
そして、ローカルのすべてのホスト名はpingを介して解決されます。
これがどれほど長く機能し続けるかはまだわからない。
私が最初にインストールしたとき、ワイヤレスネットワークのセットアップは失敗しました。インストールが/etc/resolv.confをこの初期状態のままにしたのか疑問に思わずにはいられません。
したがって、1つの提案は、解決されたものが何を生成しているかを調べることです。あなたはすでに実用的な基盤を持っているかもしれません。
これはコメントとしては優れているようですが、十分な評判はありません...
Civingの自己回答は、私が欲しかったもののほとんどに沿っていました。
また、dns=none
の[main]
セクションに/etc/NetworkManager/NetworkManager.conf
を追加する必要があったため、次のようになります。
[main]
plugins=ifupdown,keyfile
dns=none
14.04からxubuntu 18.04に更新しました。それよりも古いLANを使用しており、長年にわたって多くの小さな調整が行われています。だから私は自分のDNSに自分のやりたいことをさせたいと思います(そうです、私はクリケットリウスの本のコピーを何年にもわたって購入してきました。
余談ですが、以前は、表示したいDNS解決情報をファイル/etc/resolvconf/resolv.conf.d/head
に追加していました。
一言で言えば、ルートとして/etc/resolv.confを作成したら、次のようにします。
cat /etc/resolv.conf >> /etc/resolvconf/resolv.conf.d/head
しかし、今は/etc/resolv.confを直接編集するだけで、そのまま残ります。 systemd/resolvconfを使用している私のLANへの訪問者はSOOLです。それらは存在しません。
man 8 resolvconf
を読むと役に立ちました。たくさん。私はしましたnot ifupプログラムが見つけられる場所に物を置くための指示に従います。主な理由は、アップグレード中に何が行われても無視されていたGUI全体の上部構造があるためです。それはもっと大きな問題のようです(WTF、Ubuntu?)。
だからこれは曖昧であり、私が(ずっと前に)ネットワークコントロールパネルのGUIに入力したものが、新しくアップグレードされたシステムに従っていなかったという問題がまだありますが、私が方法を理解すると、それは完全に異なる質問です聞いてください。