Arch Linux решение проблем

Arch Linux решение проблем

У меня есть Rasberry Pi с Arch, и я сталкиваюсь со странным поведением разрешения. Короче говоря, digи nslookupможет разрешать имена хостов, curl, wget, pacmanне может. Если я добавляю хост, /etc/hostsвсе работает нормально для этого хоста.

Вот результаты некоторых поисков и устранения неполадок:

  1. resolv.confсуществует и доступен для чтения:

    $ ls -l /etc/resolv.conf
    -rw-r--r-- 1 root root 19 Apr 28 10:45 /etc/resolv.conf
    
  2. У меня есть сервер имен:

    $ cat /etc/resolv.conf
    nameserver 8.8.8.8
    
  3. nslookupработает:

    $ nslookup google.com
    Server:         8.8.8.8
    Address:        8.8.8.8#53
    
    Non-authoritative answer:
    Name:   google.com
    Address: 92.87.11.30
    Name:   google.com
    Address: 92.87.11.54
    Name:   google.com
    Address: 92.87.11.49
    Name:   google.com
    Address: 92.87.11.45
    ...
    
  4. digработает:

    $ dig google.com
    
    ; <<>> DiG 9.11.0-P3 <<>> google.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20686
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;google.com.                    IN      A
    
    ;; ANSWER SECTION:
    google.com.             299     IN      A       92.87.175.49
    google.com.             299     IN      A       92.87.175.50
    google.com.             299     IN      A       92.87.175.48
    google.com.             299     IN      A       92.87.175.44
    google.com.             299     IN      A       92.87.175.42
    google.com.             299     IN      A       92.87.175.41
    google.com.             299     IN      A       92.87.175.51
    google.com.             299     IN      A       92.87.175.36
    google.com.             299     IN      A       92.87.175.39
    google.com.             299     IN      A       92.87.175.45
    google.com.             299     IN      A       92.87.175.37
    google.com.             299     IN      A       92.87.175.40
    google.com.             299     IN      A       92.87.175.38
    google.com.             299     IN      A       92.87.175.47
    google.com.             299     IN      A       92.87.175.43
    google.com.             299     IN      A       92.87.175.46
    
    ;; Query time: 40 msec
    ;; SERVER: 8.8.8.8#53(8.8.8.8)
    ;; WHEN: Fri Apr 28 11:37:32 EEST 2017
    ;; MSG SIZE  rcvd: 295
    
  5. Я могу указать pingодин из IP-адресов:

    $ ping 92.87.175.49
    PING 92.87.175.49 (92.87.175.49) 56(84) bytes of data.
    64 bytes from 92.87.175.49: icmp_seq=1 ttl=54 time=3.75 ms
    64 bytes from 92.87.175.49: icmp_seq=2 ttl=54 time=3.71 ms
    
    --- 92.87.175.49 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1001ms
    rtt min/avg/max/mdev = 3.711/3.734/3.758/0.065 ms
    
  6. wgetне удается:

    $ wget https://google.com
    --2017-04-28 11:39:31--  https://google.com/
    Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
    Resolving google.com... failed: Name or service not known.
    wget: unable to resolve host address 'google.com'
    
  7. curlне удается:

    $ curl https://google.com
    curl: (6) Could not resolve host: google.com
    

Что я упускаю?!...

Редактировать:

$ cat /etc/hosts
#
# /etc/hosts: static lookup table for host names
#

#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1       localhost.localdomain   localhost
::1             localhost.localdomain   localhost

# End of file

$ cat /etc/nsswitch.conf
# Begin /etc/nsswitch.conf

passwd: compat mymachines systemd
group: compat mymachines systemd
shadow: compat

publickey: files

hosts: files mymachines resolve [!UNAVAIL=return] dns myhostname
networks: files

protocols: files
services: files
ethers: files
rpc: files

netgroup: files

# End /etc/nsswitch.conf

Кажется, это как-то связано с systemd-resolvd. Если я его останавливаю или удаляю resolve [!UNAVAIL=return]из /etc/nsswitch.conf, разрешение работает нормально для всех приложений, если я запускаю его снова или оставляю /etc/nsswitch.confкак есть, разрешение работает только для nslookup& dig.

решение1

У меня похожая проблема после обновлений archlinuxarm: некоторые сайты работают, но большинство из них недоступны, и pacman не может обновиться. В моем случае проблема в dnssec на системном резолвере. Ее можно обнаружить, запустив из консоли:

resolvectl запрос archlinuxarm.org (или любой другой недоступный сайт)

ответ был: ... проверка DNSSEC не пройдена: недействительно

В моем случае помогло добавление DNSSEC=false в /etc/systemd/resolved.conf и перезагрузка

Связанный контент