DNS ana bilgisayarla çalışır, ancak wget ile çalışmaz


10

TL; DR

Bazı ana bilgisayarlarda DNS aramaları yapabileceğim, diğerlerinde değil garip bir durum var. Bu, benim nameserver ve muhtemelen docker ile yapmak için başka bir gösteren bir nameserver girdisi olan resolv.conf ile ilgili gibi görünüyor, ama nasıl düzeltemiyorum.

Sorun

Stéphane Graber'in LXD'ye mükemmel girişini okudum ve denemek istedim. Bu nedenle yaptım:

$ sudo usermod -a -G lxd <myusername>
$ newgrp lxd
$ sudo lxd init

Tüm varsayılan ayarlarla yapılandırdım. Sonra yazdım:

$ lxc image list images:
error: Get https://images.linuxcontainers.org/streams/v1/index.json: lookup images.linuxcontainers.org: no such host

Bazı testler

Bu adrese başka bir PC'deki bir web tarayıcısından erişmeyi denedim ve iyi çalıştı. Bu yüzden DNS kurulumunda bir şeylerin yanlış olması gerektiğini düşündüm, ancak:

$ 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

Bu yüzden wget denedim:

$ 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"

Bu da bana internet bağlantımla ilgili bir sorun olduğunu düşündürdü, ama eğer us.images.linuxcontainers.org (web'de bir yerde bahsettiğimi gördüm) kullanırsam:

$ 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]

(E göre ben de denedim canonical.images.linuxcontainers.org, hostyukarıda) images.linuxcontainers.org takma adıdır ve bu gibi görünüyor böylece, çok çalıştı budur hostiken, can arama images.linuxcontainers.org wgetve lxcolamaz, ancak wget olabilir ben denedim canonical.images.linuxcontainers.org ve diğer sitelerin çoğu erişin.

$ 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]

Ben de denedim wget -4ve wget -6IPv6 sorunları dışlamak için, ama sonuçları her iki şekilde de aynıydı. Sonunda başka programlar da denedim w3mama orada da bir fark yok.

Açıkçası bir şey eksik; Herkes neden lxcgörüntü listesini indiremiyorum hakkında herhangi bir tavsiye sunabilir ?

PC

PC, ana sunucuda çok az ek paket kurulu olan Ubuntu Server 16.10 ile çalışan nispeten yeni bir kurulum . Docker kurulu ve çalışıyor ancak kap yok. İlginç bir şekilde, son zamanlarda yaşadığım başka bir sorunu test etmek için çekirdek 4.8.6'ya yeniden başladım ve bu çekirdekle images.linuxcontainers.org'a erişebildim, ancak docker başlamadı, bu yüzden bunun docker ile ilgisi olup olmadığını merak ediyorum .

Yapılandırma

/etc/resolv.confgibi görünüyor (ama bazı nedenlerden dolayı farkında değilim, aslında bir symlink /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

Listelenen ilk ad sunucusunu sorgulamak, ad sunucusu adresini eklemiyor gibi aynı sonucu alırsınız:

$ 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

İkinci sorgu yaparsanız, bir sunucuya ulaşmadan zaman aşımına uğrar:

$ host images.linuxcontainers.org 127.0.0.53
;; connection timed out; no servers could be reached

Ben ikinci sorgu ancak kanonik adını kullanır ve o zaman zaman aşımına ???

$ 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

Düzenleme 1:

/etc/nsswitch.conf buna benzer:

# /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

Düzenle 2

Değiştirilmiş nsswitch.conf şimdi şöyle görünüyor:

# /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

Düzenle 3

/Etc/systemd/resolved.conf içeriği:

#  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

1
/etc/resolv.confgenellikle Ubuntu'da bir semboliktir, bu normaldir. Ne /etc/nsswitch.confiçerir?
muru

@muru Yukarıda ekledim (bu bir symlink değil)
DrAl

2
@ThatGuy Bunun için teşekkürler. Bu, her sunucuyla çalışmaz (sunucunun etki alanı adına bakıp bakmadığına bağlıdır) - bu durumda canonical.images.linuxcontainers.org 'u zaten çalışıyormuş gibi kullanabilirim. Bununla birlikte, yerleşik adres yerine bunu ikna etmem lxc image listve lxc launchkullanmam gerekir .
DrAl

1
@DrAl, resolvehosts anahtar kelimesini ilk kez görüyorsunuz , yanlış görünüyor. Sen böyle bir şey olmalı hosts: files dns [!UNAVAIL=return]veya mDNS yüklediyseniz files dns mdns4_minimal [NOTFOUND=return] mdns4. kaldırabilir [NOTFOUND=return]veya [!UNAVAIL=return]sorgulanacak bir şey kalmazsa, varsayılan işlemdir.
user.dz

1
@ user.dz, bunu kaldırmayı denedim (bu dosyaya daha önce hiç dokunmadığım için kurulumum tarafından varsayılan olarak ayarlanmış olsa da). Bu, wget'in çalışmasına izin veriyor gibi görünüyor (images.linuxcontainers.org'un çözümlenmesinden birkaç saniye sonra da). sunucuya yüklenen yukarıdaki "PC" bölümündeki bir bağlantıda listelenir.
DrAl

Yanıtlar:


2
  • Bu, resolvehosts anahtar kelimesini ilk kez görüyor , yanlış görünüyor. Gibi bir şeye sahip olmalısın

    hosts: files dns [NOTFOUND=return]
    

    veya mDNS yüklüyse

    hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4
    

    Sorguya hiçbir şey kalmadıysa, bu işlemi kaldırabilir [NOTFOUND=return]veya [!UNAVAIL=return]yine de varsayılan eylemdir.

  • Bazı kazmalardan sonra benim için yeni bir NSS modülü olduğunu bulabilirim

    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.
    

    Bahsettiğiniz paketlerle değil, bir şekilde kurabilirsiniz. Buna bağlı bir paket yok.

    ~$ apt-cache rdepends libnss-resolve
    libnss-resolve
    Reverse Depends:
    

    Ama şu anda hiçbir şey söyleyemem, neden systemd-resolvedgüvenilmezdi. Hata olarak bildirmek daha iyidir systemd.


1
İlginç, teşekkürler. Ben "çözmek" kaldırmayı denedim ve wgetçok daha hızlı var, bu yüzden soruna neden oldu gibi görünüyor. Nsswitch.conf dosyasındaki ana bilgisayarlarım satırında artık sadece "files dns" var.
DrAl

1
Kullandığım dpkg-query -l '*resolve*'kontrol etmek ve tespit libnss-resolveben yüklü böylece, yüklü aptitudeve ran aptitude why libnss-resolveve diyor i ubuntu-standard Recommends libnss-resolve.
DrAl

1
@DrAl, bu hangi sürüm? Ben U16.04 ubuntu-standard& böyle bir bağımlılık var libnss-resolve.
user.dz

1
Bu bize mevcut kurulum hakkında biraz ışık verir, ancak son düzeltmeye sahip olursunuz, bu da başka bir hata anlamına gelir (systemd-resolved / nss-resolve güvenilmez). Hizmetiniz çalışıyor musystemctl status systemd-resolved.service
user.dz

1
@DrAl, yani varsayılanları kullanır, from man resolved.conf, geri döndüğümüz anlamına gelir /etc/resolv.conf: /. resolveaynı etkiye sahip olmalıdır dnsiçinde nsswitch.conf.
user.dz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.