TL; DR
Ho una strana situazione in cui posso fare ricerche DNS su alcuni host ma non su altri. Questo sembra essere correlato a resolv.conf con una voce nameserver che punta al mio nameserver e un'altra che presumibilmente ha a che fare con la finestra mobile, ma non sono sicuro di come risolverlo.
Il problema
Ho letto l'eccellente introduzione di Stéphane Graber a LXD e volevo provarlo. Pertanto, ho fatto:
$ sudo usermod -a -G lxd <myusername>
$ newgrp lxd
$ sudo lxd init
L'ho configurato con tutte le impostazioni predefinite. Ho quindi digitato:
$ lxc image list images:
error: Get https://images.linuxcontainers.org/streams/v1/index.json: lookup images.linuxcontainers.org: no such host
Alcuni test
Ho provato ad accedere a quell'indirizzo da un browser Web su un altro PC e ha funzionato bene. Quindi ho pensato che qualcosa dovesse essere sbagliato nell'impostazione del DNS, ma:
$ 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
Quindi ho provato 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"
che mi ha fatto pensare che ci fosse un problema con la mia connessione Internet, ma se uso us.images.linuxcontainers.org (di cui ho visto la menzione da qualche parte sul 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]
Ho anche provato canonical.images.linuxcontainers.org, che (secondo quanto host
sopra) è ciò che images.linuxcontainers.org è un alias di e che ha funzionato anche, quindi sembra che host
possa cercare images.linuxcontainers.org, mentre wget
e lxc
non può, ma wget
posso accedere a canonical.images.linuxcontainers.org e alla maggior parte degli altri siti che ho provato.
$ 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]
Ho anche provato wget -4
e wget -6
per escludere problemi di IPv6, ma i risultati erano gli stessi in entrambi i casi. Alla fine ho provato alcuni altri programmi come w3m
ma nessuna differenza neanche lì.
Mi manca ovviamente qualcosa; qualcuno può offrire qualche consiglio sul perché non riesco lxc
a scaricare l'elenco delle immagini?
Il PC
Il PC è un'installazione relativamente nuova che esegue Ubuntu Server 16.10 con pochissimi pacchetti aggiuntivi installati nell'host principale. Docker è installato e in esecuzione ma nessun contenitore è attivo. È interessante notare che di recente ho riavviato il kernel 4.8.6 per testare un altro problema che stavo riscontrando e con quel kernel avrei potuto accedere a images.linuxcontainers.org, ma la finestra mobile non si avviava, quindi mi chiedo se questo potrebbe avere a che fare con la finestra mobile .
Configurazione
/etc/resolv.conf
assomiglia a questo (ma per qualche motivo di cui non sono a conoscenza, è in realtà un link simbolico a /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
Se interrogo il primo nameserver elencato ottengo lo stesso risultato come se non aggiungessi l'indirizzo del nameserver:
$ 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
Se eseguo una query sul secondo, scade senza raggiungere un server:
$ host images.linuxcontainers.org 127.0.0.53
;; connection timed out; no servers could be reached
Se interrogo il secondo ma uso il nome canonico, funziona e quindi scade ???
$ 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
Modifica 1:
/etc/nsswitch.conf
Somiglia a questo:
# /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
Modifica 2
Il nsswitch.conf modificato ora assomiglia a questo:
# /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
Modifica 3
Contenuto di /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
lxc image list
e lxc launch
usare questo al posto dell'indirizzo incorporato.
resolve
parola chiave hosts, sembra sbagliato. Dovresti avere qualcosa di simile hosts: files dns [!UNAVAIL=return]
o se hai installato mDNS files dns mdns4_minimal [NOTFOUND=return] mdns4
. puoi rimuovere [NOTFOUND=return]
o [!UNAVAIL=return]
, comunque, è l'azione predefinita se non è rimasto nulla da interrogare.
/etc/resolv.conf
di solito è un collegamento simbolico su Ubuntu, è normale. Cosa/etc/nsswitch.conf
contiene?