質問:
Ubuntu 17.10実行
私は今約1週間この問題を解決しようとしています(ヘヘ)、多くのGoogle検索と約20回の他の試みにもかかわらず、dnsmasqが定期的に次の攻撃でCPUを約1分間急増させるのを防ぐことはできません。 :
systemd-resolved
systemd-journald
dnsmasq
監視がjournalctl -f
発生するたびに、次の内容が表示されます。
最大同時DNSクエリ数に達しました(150)。
次のように、特定のドメインに対する明白な要求ループ(通常はUbuntu接続の確認)が伴うか先行します。
query[A] connectivity-check.ubuntu.com from 127.0.0.1
forwarded connectivity-check.ubuntu.com to 127.0.1.1
forwarded connectivity-check.ubuntu.com to 127.0.0.53
query[A] connectivity-check.ubuntu.com from 127.0.0.1
forwarded connectivity-check.ubuntu.com to 127.0.0.53
query[AAAA] connectivity-check.ubuntu.com from 127.0.0.1
forwarded connectivity-check.ubuntu.com to 127.0.0.53
query[AAAA] connectivity-check.ubuntu.com from 127.0.0.1
forwarded connectivity-check.ubuntu.com to 127.0.0.53
query[A] connectivity-check.ubuntu.com from 127.0.0.1
forwarded connectivity-check.ubuntu.com to 127.0.0.53
query[AAAA] connectivity-check.ubuntu.com from 127.0.0.1
forwarded connectivity-check.ubuntu.com to 127.0.0.53
それが私を変えたことを知っていました。/etc/resolv.conf使用すると、nameserver 127.0.0.53
スパイクはほぼすぐに消滅します。
ところが、ネットワーク管理者がこのファイルを定期的に更新するので、1時間に1回ずつやってください。
構成:
/etc/resolv.conf
# 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.1
search fios-router.home
/etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=false
[device]
wifi.scan-rand-mac-address=no
/etc/dnsmasq.conf
// All default except this at the very end for my wildcard DNS
address=/asmar.d/127.0.0.1
/run/dnsmasq/resolv.conf
nameserver 127.0.0.53
/run/resolvconf/インターフェース:
lo.dnsmasq
:
nameserver 127.0.0.1
systemd-resolved
:
nameserver 127.0.0.53
/etc/resolvconf/インターフェイスの順序:
# interface-order(5)
lo.inet6
lo.inet
lo.@(dnsmasq|pdnsd)
lo.!(pdns|pdns-recursor)
lo
tun*
tap*
hso*
em+([0-9])?(_+([0-9]))*
p+([0-9])p+([0-9])?(_+([0-9]))*
@(br|eth)*([^.]).inet6
@(br|eth)*([^.]).ip6.@(dhclient|dhcpcd|pump|udhcpc)
@(br|eth)*([^.]).inet
@(br|eth)*([^.]).@(dhclient|dhcpcd|pump|udhcpc)
@(br|eth)*
@(ath|wifi|wlan)*([^.]).inet6
@(ath|wifi|wlan)*([^.]).ip6.@(dhclient|dhcpcd|pump|udhcpc)
@(ath|wifi|wlan)*([^.]).inet
@(ath|wifi|wlan)*([^.]).@(dhclient|dhcpcd|pump|udhcpc)
@(ath|wifi|wlan)*
ppp*
*
systemd-resolve --status
:
Global
DNS Servers: 127.0.0.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
Link 5 (br-b1f5461ac410)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 4 (docker0)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 3 (wlp62s0)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 2 (enp61s0)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 8.8.8.8
8.8.4.4
::1
質問:
ワイルドカードドメイン名を引き続き使用しながらこの問題を解決するにはどうすればよいですか?
任意に選択できる:Google DNSを使用してこれを達成するには?
同時 DNS クエリを増やすことを提案しないでください。それは解決策ではありません。
解決しました!
解決策を見つけたTelcoMのDNSクラッシュコース(承認された回答)を参照してください。
この回答から得た知識を試して、フォローアップと最終的な解決策を確認してください。
ベストアンサー1
dnsmasq
127.0.0.1にプロセスがあり、systemd-resolved
127.0.0.53にプロセスが互いにクエリを送受信するときにループが発生しているようです。デフォルトでは、情報のない名前に対して実際のDNSサーバーを見つけるため、スタンドアロンもループ可能になるdnsmasq
可能性があります。/etc/resolv.conf
DNS構成には複数の階層があります。
- 第1に、DHCP又は同様の手段によってISPからDNSサーバ情報を得ることができる。
- その後、
NetworkManager
情報を無視して使用するように構成できますが、dnsmasq
現在はこのように構成されていません。 - 代わりに、ツールを
NetworkManager
使用してresolvconf
実際の更新を/etc/resolv.conf
構成し、DHCPから受信したすべてのDNSサービスをオーバーライドし、実行時に127.0.0.1を使用する組み込みdnsmasq
構成を含めることができます。resolvconf
dnsmasq
- systemd-resolvedには組み込み構成も含めることができますが、
resolvconf
明らかに上書きされますdnsmasq
。
私はまだ127.0.1.1と127.0.0.53がどこから来たのか理解していません。dnsmasq
Ubuntuの基本構成に記載されていますか?
説明で説明されているように/etc/resolv.conf
このコマンドを実行すると、systemd-resolved
構成に関する詳細情報を表示できます。
systemd-resolve --status
/run/resolvconf/interface/
また、ツールがさまざまなソースから取得したすべてのDNSサーバー情報を収集するディレクトリの内容を確認してください。各ソースを確認する順序は、ループバックアドレスが見つかるか、実際に3つのDNSサーバーが一覧表示されるまで決定されますresolvconf
。/etc/resolvconf/interface-order
/etc/resolv.conf
ワイルドカードドメインを設定する予定なので、dnsmasq
これを維持したいと思います127.0.0.1
。ただし、そのファイルを使用せずに他の場所で使用する必要があるDNSサーバーをインポートするように構成する必要があります/etc/resolv.conf
。dnsmasq
/run/NetworkManager/resolv.conf
DHCP を介して ISP から取得した DNS サーバーが含まれている場合は、そのdnsmasq
構成に次の行を追加して簡単に使用できます。
resolv-file=/run/NetworkManager/resolv.conf
これはdnsmasq
、未知のDNS情報をどこで取得できるかを示します。したがって、Google DNS を使用するようにdnsmasq
設定できます。
resolv-file=/etc/google-dns-resolv.conf
そして、Google DNSのDNS設定ラインを一般的な形式で入力します/etc/google-dns-resolv.conf
。