プロキシの楽しみ

プロキシの楽しみ

プロキシの楽しみ

Vagrant と VMware Workstation 15 を使用して、Windows 10 ホスト上に Ubuntu 18.10 仮想マシンを作成しました。
仮想マシンは、ほとんどのネットワーク アクセスを含めて正常に動作しているようです。
しかし、重要なホストの 1 つではうまくいきません。

$ ping -c 4 production.cloudflare.docker.com
ping: production.cloudflare.docker.com: Temporary failure in name resolution

(Windows ホスト上の Cygwin でまったく同じことを実行すると、問題なく動作します。)

すべき理由は何でしょうか?DNS ネームサーバー!

しかし、かなりの量のRXとTXを持つ唯一のインターフェースでsystemd-resolve --statusある()を使用していると教えてくれるものは"Current DNS Server: 8.8.4.4"eth0問題なく動作する明示的に試してみると:

$ dig @8.8.4.4 production.cloudflare.docker.com

; <<>> DiG 9.11.4-3ubuntu5.1-Ubuntu <<>> @8.8.4.4 production.cloudflare.docker.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45235
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
[...]
production.cloudflare.docker.com. 117 IN A      104.18.122.25
production.cloudflare.docker.com. 117 IN A      104.18.121.25
production.cloudflare.docker.com. 117 IN A      104.18.125.25
production.cloudflare.docker.com. 117 IN A      104.18.124.25
production.cloudflare.docker.com. 117 IN A      104.18.123.25

しかし、Ubuntuのローカルプロキシ、クエリ失敗する:

$ dig production.cloudflare.docker.com

; <<>> DiG 9.11.4-3ubuntu5.1-Ubuntu <<>> production.cloudflare.docker.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 60815
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
[...]
;; SERVER: 127.0.0.53#53(127.0.0.53)

どうやら、127.0.0.53期待通りに動作していないようです。(注: 私はネットワーク初心者です。)
何が足りないのでしょうか?

これは Ubuntu に関する質問なのか、VMware に関する質問なのかさえわかりません。あるいは Vagrant に関する質問でしょうか?
ゾッとします。

答え1

3バイトの変更です!

ウェブ上には Ubuntu DNS 障害に関する報告が多数あります。HackSlash の回答と同様に、ほとんどの回答では、意図したネームサーバーを にハードワイヤードすることを提案しています/etc/resolv.conf。しかし、私の理解が正しければ、これによりローカル キャッシュが無効になります。これはばかげているし、少し反社会的に思えるので、私はこれをしたくありませんでした。

何が問題ですか?

ついに説明を見つけたhttps://superuser.com/a/1200745/372846: Ubuntu はsystemd-resolvedどうやら DNSSEC を使用するネームサーバーを適切に処理できないようです。DNSSEC サポートをオフにすればすべて正常になります。

解決

ファイル で/etc/systemd/resolved.conf、 行を ;DNSSEC=yesに置き換えDNSSEC=no、 でリゾルバ サービスを再起動しますsudo systemctl restart systemd-resolved

残った混乱

上記の投稿はUbuntu 17.04について触れたもので、当時はsystemd-resolvedUbuntuにとってかなり新しいものだったようです。この答え同じ質問に対して、Ubuntu の今後のバージョンではデフォルトが変更される予定であると書かれていますDNSSEC=no。私は 18.10 を使用していますが、まだ変更されていません。完全な DNSSEC 機能も登場していません。何だって?

答え2

この質問はaskubuntuで回答されています。別のリゾルバをインストールすることを推奨する解決策は多数あります。

この回答では、そうする必要はないと書かれています:

手っ取り早い解決策を探している場合は、DNS サーバーをグローバルに使用するように systemd-resolved を構成するだけです。

$ cat /etc/systemd/resolved.conf
<...>
[Resolve]
DNS=8.8.8.8 8.8.4.4
<...>

その後、再起動systemd-resolved.serviceまたはリブートします。

完全な質疑応答: https://askubuntu.com/questions/1012641/dns-set-to-systemds-127-0-0-53-how-to-change-permanently

関連情報