一部のホストでDNSルックアップを実行できるが、他のホストでは実行できないという奇妙な状況があります。これは、resolv.confが1つのネームサーバーエントリが私のネームサーバーを指し、別のネームサーバーエントリがおそらくdockerに関連していることに関連しているようですが、修正方法はわかりません。
StéphaneGraberによるLXDの優れた紹介 を読み、試してみたかった。したがって、私はやった:
$ Sudo usermod -a -G lxd <myusername>
$ newgrp lxd
$ Sudo lxd init
すべてのデフォルト設定で構成しました。次に入力しました:
$ lxc image list images:
error: Get https://images.linuxcontainers.org/streams/v1/index.json: lookup images.linuxcontainers.org: no such Host
別のPCのWebブラウザからそのアドレスにアクセスしてみましたが、うまくいきました。だから、DNSの設定には何か間違いがあるに違いないと思ったが、
$ Host images.linuxcontainers.org
images.linuxcontainers.org is an alias for canonical.images.linuxcontainers.org.
canonical.images.linuxcontainers.org has address 91.189.91.21
canonical.images.linuxcontainers.org has address 91.189.88.37
canonical.images.linuxcontainers.org has IPv6 address 2001:67c:1560:8001::21
canonical.images.linuxcontainers.org has IPv6 address 2001:67c:1562::41
だから私はwgetを試しました:
$ wget https://images.linuxcontainers.org/streams/v1/index.json
--2016-11-10 15:56:22-- https://images.linuxcontainers.org/streams/v1/index.json
Resolving images.linuxcontainers.org (images.linuxcontainers.org)... failed: Name or service not known.
wget: unable to resolve Host address "images.linuxcontainers.org"
インターネット接続に問題があると思わせましたが、us.images.linuxcontainers.orgを使用すると(Webのどこかで言及されていました):
$ wget https://us.images.linuxcontainers.org/streams/v1/index.json
--2016-11-10 15:57:26-- https://us.images.linuxcontainers.org/streams/v1/index.json
Resolving us.images.linuxcontainers.org (us.images.linuxcontainers.org)... 91.189.91.21, 2001:67c:1562::41
Connecting to us.images.linuxcontainers.org (us.images.linuxcontainers.org)|91.189.91.21|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3086 (3.0K) [application/json]
Saving to: "index.json"
index.json 100%[==================================================================================>] 3.01K --.-KB/s in 0s
2016-11-10 15:57:26 (8.36 MB/s) - "index.json" saved [3086/3086]
Canonical.images.linuxcontainers.orgも試してみました(上記のHost
による)。これはimages.linuxcontainers.orgのエイリアスであり、それも機能しているため、Host
は画像を検索できます.linuxcontainers.org、wget
およびlxc
は使用できませんが、butwget
cancanonical.images.linuxcontainers.orgおよび私が試した他のほとんどのサイトにアクセスします。
$ wget https://canonical.images.linuxcontainers.org/streams/v1/index.json
--2016-11-10 16:02:28-- https://canonical.images.linuxcontainers.org/streams/v1/index.json
Resolving canonical.images.linuxcontainers.org (canonical.images.linuxcontainers.org)... 91.189.91.21, 91.189.88.37
Connecting to canonical.images.linuxcontainers.org (canonical.images.linuxcontainers.org)|91.189.91.21|:443... connected.
ERROR: no certificate subject alternative name matches
requested Host name "canonical.images.linuxcontainers.org".
To connect to canonical.images.linuxcontainers.org insecurely, use `--no-check-certificate'.
$ wget --no-check-certificate https://canonical.images.linuxcontainers.org/streams/v1/index.json
--2016-11-10 16:02:37-- https://canonical.images.linuxcontainers.org/streams/v1/index.json
Resolving canonical.images.linuxcontainers.org (canonical.images.linuxcontainers.org)... 91.189.88.37, 91.189.91.21
Connecting to canonical.images.linuxcontainers.org (canonical.images.linuxcontainers.org)|91.189.88.37|:443... connected.
WARNING: no certificate subject alternative name matches
requested Host name "canonical.images.linuxcontainers.org".
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://uk.images.linuxcontainers.org/streams/v1/index.json [following]
--2016-11-10 16:02:37-- https://uk.images.linuxcontainers.org/streams/v1/index.json
Resolving uk.images.linuxcontainers.org (uk.images.linuxcontainers.org)... 91.189.88.37, 2001:67c:1560:8001::21
Connecting to uk.images.linuxcontainers.org (uk.images.linuxcontainers.org)|91.189.88.37|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3086 (3.0K) [application/json]
Saving to: "index.json.1"
index.json.1 100%[==================================================================================>] 3.01K --.-KB/s in 0s
2016-11-10 16:02:38 (96.5 MB/s) - "index.json.1" saved [3086/3086]
また、IPv6の問題を除外するためにwget -4
とwget -6
を試しましたが、結果はどちらの方法でも同じでした。最後に、w3m
のような他のプログラムを試しましたが、違いはありませんでした。
私は明らかに何かが欠けています。画像リストをダウンロードするためにlxc
を取得できない理由について、誰でもアドバイスを提供できますか?
PCは、Ubuntu Server 16.10を実行する比較的新しいインストールです。メインホストに ごく少数の追加パッケージ がインストールされています。 Dockerがインストールされ実行されていますが、コンテナーが起動していません。興味深いことに、私は最近カーネル4.8.6を再起動して別の問題をテストし、そのカーネルではimages.linuxcontainers.orgにアクセスできましたが、dockerは起動しませんでした。 。
/etc/resolv.conf
は次のようになります(ただし、何らかの理由で気づいていないのですが、実際は/run/resolvconf/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
nameserver 192.168.1.254
nameserver 127.0.0.53
search lan
最初にリストされたネームサーバーを照会すると、ネームサーバーアドレスを追加しない場合と同じ結果が得られます。
$ Host images.linuxcontainers.org 192.168.1.254
images.linuxcontainers.org is an alias for canonical.images.linuxcontainers.org.
canonical.images.linuxcontainers.org has address 91.189.91.21
canonical.images.linuxcontainers.org has address 91.189.88.37
canonical.images.linuxcontainers.org has IPv6 address 2001:67c:1560:8001::21
canonical.images.linuxcontainers.org has IPv6 address 2001:67c:1562::41
2番目のクエリを実行すると、サーバーに到達せずにタイムアウトします。
$ Host images.linuxcontainers.org 127.0.0.53
;; connection timed out; no servers could be reached
2番目のクエリを実行したが、正規名を使用すると動作し、タイムアウトになりますか?
$ Host canonical.images.linuxcontainers.org 127.0.0.53
Using domain server:
Name: 127.0.0.53
Address: 127.0.0.53#53
Aliases:
canonical.images.linuxcontainers.org has address 91.189.88.37
canonical.images.linuxcontainers.org has address 91.189.91.21
;; connection timed out; no servers could be reached
;; connection timed out; no servers could be reached
/etc/nsswitch.conf
は次のようになります。
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
gshadow: files
hosts: files resolve [!UNAVAIL=return] dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Edit 2
変更されたnsswitch.confは次のようになります。
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
gshadow: files
hosts: files resolve dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Edit 3
/etc/systemd/resolved.confの内容:
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See resolved.conf(5) for details
[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
#Domains=
#LLMNR=yes
#DNSSEC=no
#Cache=yes
resolve
hostsキーワードを見るのはこれが初めてですが、間違っているようです。次のようなものが必要です
hosts: files dns [NOTFOUND=return]
またはmDNSがインストールされている場合
hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4
[NOTFOUND=return]
または[!UNAVAIL=return]
を削除できます。クエリに何も残っていない場合は、とにかくデフォルトのアクションです。
さて、掘り下げてみると、私にとって新しいNSSモジュールがあることがわかりました
libnss-resolve
nss module to resolve names via systemd-resolved nss-resolve is a plugin for the GNU Name Service Switch (NSS) functionality of the GNU C Library (glibc) providing DNS and LLMNR resolution to programs via the systemd-resolved daemon (provided in the systemd package). Installing this package automatically adds resolve to /etc/nsswitch.conf.
あなたが言及したパッケージではなく、どういうわけかそれをインストールしてしまう可能性があります。それに依存するパッケージはありません。
~$ apt-cache rdepends libnss-resolve
libnss-resolve
Reverse Depends:
しかし、今は何も言えません。なぜsystemd-resolved
が信頼できないのか。 systemd
のバグとして報告することをお勧めします。