Arch Linux resolvendo problemas

1

Eu tenho um Rasberry Pi executando o Arch e estou encontrando um comportamento de resolução estranho. Resumindo, dig e nslookup podem resolver nomes de host, curl , wget , pacman não. Se eu adicionar um host em /etc/hosts , tudo funcionará bem para esse host.

Aqui está a saída de algumas soluções de problemas:

  1. resolv.conf existe e é legível:

    $ ls -l /etc/resolv.conf
    -rw-r--r-- 1 root root 19 Apr 28 10:45 /etc/resolv.conf
    
  2. Eu tenho um servidor de nomes:

    $ cat /etc/resolv.conf
    nameserver 8.8.8.8
    
  3. nslookup funciona:

    $ 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 funciona:

    $ 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. Eu posso ping de um dos IPs:

    $ 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 falha:

    $ 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 falha:

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

O que eu estou sentindo falta?! ...

Editar:

$ 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

Parece que tem algo a ver com systemd-resolvd . Se eu pará-lo ou remover resolve [!UNAVAIL=return] de /etc/nsswitch.conf , a resolução funciona bem para cada aplicativo, se eu iniciá-lo novamente ou deixar /etc/nsswitch.conf como está, a resolução funciona apenas para nslookup & dig .

    
por petry 28.04.2017 / 12:46

0 respostas