web-dev-qa-db-ja.com

システムDNSサービスとしてdnsmasqを使用する

以下 systemd-resolvedを無効にしてdnsmasqでDNSを解決する方法

しかし、私はできる限りそれに従いましたが、それでもsystemd-resolvedをdnsmasqで適切に置き換えることができませんでした-

dns=dnsmasqの下の[main]の下に/etc/NetworkManager/NetworkManager.confを置くと、/etc/resolv.confnameserverdnsmasqではなくISPになります。それを削除すると、/etc/resolv.confnameserversystemd-resolved、つまり127.0.0.53のままになります。

つまり、システムDNSサービスとしてdnsmasqを適切に使用するにはどうすればよいのでしょうか。

  • resolvconfを削除しましたが、問題は
  • systemd-resolvedをdnsmasqで置き換える方法は?

PS。

$ lsb_release -a 
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic

UPDATE:

私は実際に2回試しましたが、最新のLubuntu 18.04.2 LTSインストールからの最新の試みで、どちらのケースも機能しませんでした。 「動作しませんでした」とは、dnsmasqnetstat経由で ':53'をリッスンしているのを確認できることを意味しますが、Dig cnn.comおよび/またはDNSクエリがタイムアウトします。

こちらが更新された情報です。変更を元に戻し、systemd-resolvedの使用に戻りました。したがって、grep -i stub /etc/systemd/resolved.confのような結果は、現在のステージを反映しています(systemd-resolvedに戻ります)。

$ dpkg -l '*dnsmasq*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                Version        Architecture   Description
+++-===================-==============-==============-===========================================
ii  dnsmasq             2.79-1         all            Small caching DNS proxy and DHCP/TFTP serve
ii  dnsmasq-base        2.79-1         AMD64          Small caching DNS proxy and DHCP/TFTP serve
un  dnsmasq-base-lua    <none>         <none>         (no description available)
ii  dnsmasq-utils       2.79-1         AMD64          Utilities for manipulating DHCP leases

$ ls -al /etc/resolv.conf
lrwxrwxrwx 1 root root 35 2019-07-14 22:07 /etc/resolv.conf -> /var/run/NetworkManager/resolv.conf

$ grep -i stub /etc/systemd/resolved.conf
#DNSStubListener=yes

$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

[device]
wifi.scan-Rand-mac-address=no

# I've removed `resolvconf`:
$ dpkg -l '*resolvconf*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                Version        Architecture   Description
+++-===================-==============-==============-===========================================
un  resolvconf          <none>         <none>         (no description available)

$ Sudo ls /run/resolvconf/resolv.conf
ls: cannot access '/run/resolvconf/resolv.conf': No such file or directory

UPDATE2:

何が問題だったかわかったと思います-変更後(回答のすべての手順に従って)、/etc/resolv.confの内容を確認したところ、内容は同じままでした。つまり、nameserver 127.0.0.53がまだ残っています。

nameserver 127.0.0.53systemd-resolved用であるのに対し、dnsmasqnameserver 127.0.0.1である必要があることを思い出しました。これが、すべてのDNSクエリがタイムアウトになる理由です。

つまり、答えに欠けている1つのステップがあります。それは、nameserver127.0.0.1/etc/resolv.confに変更することですが、方法はわかりません。

2
xpt

Systemd-resolvedを置き換えようとしている理由はわかりませんが、同時に実行する必要がある場合は...

dnsmasqおよびsystemd-resolved...について

ps auxc | grep -i dnsps auxc | grep -i resolvを実行してdnsmasqsystemd-resolvedを探します。両方が実行されている場合は、編集してsystemd-resolvedのDNS部分を無効にする必要があります/etc/systemd/resolved.confそして...

変化する:

#DNSStubListener=yes

に:

DNSStubListener=no

その後、systemd-resolveとdnsmasqを再起動するか、再起動します。

/ etc/resolv.confであるシンボリックリンクをリセットする必要があります

Sudo mv /etc/resolv.conf /etc/resolv.conf.OLD#古いシンボリックリンクを保存

Sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

1
heynnema

私は、Ubuntu(新しくインストールされた)18.04.03ルーターを自宅のコンピューターに使用しています。ルーターはインターネットプロバイダーからネームサーバーを取得します。ホームネットワークでは、dnsとdhcpにdnsmasqを使用しています。から始まる

systemctl stop systemd-resolved

変更/etc/systemd/resolved.conf

...
#DNSStubListener=yes
DNSStubListener=no

/etc/resolv.confがリンクされているかどうかを確認します。次に、リンク/etc/resolv.confを/run/systemd/resolve/stub-resolv.confではなく/run/systemd/resolve/resolv.confに変更します。

rm /etc/resolv.conf
ln -s /etc/resolv.conf /run/systemd/resolve/resolv.conf

その後

systemctl start dnsmasq

すべての再起動後、DNSサーバーは/etc/resolv.conf

0
user1855805

私は同じ問題を抱えていましたが、18.04に更新された16.04システムのみでした。 LAN DNSおよびDHCPサーバーとしてdnsmasqも使用しています。新しくインストールされた18.04では、/etc/systemd/resolved.conf(DNSStubListener)を変更する必要なく、そのまま使用できます。

これと他の違いは、特にansibleのような構成管理ツールを使用する場合に厄介です(たとえば、16.04の場合は/etc/network/interfacesで、18.04の場合は/etc/netplan/01-netcfg.yamlで定義されているネットワーク定義)。

そこで、私はようやく、すべてのサーバーをアップグレードではなく新しい18.04で再インストールすることにしました。

0
M-Jack