Eu tenho um problema com o cliente nfs não sendo capaz de resolver um nome DNS resolvível.
[root@testserver-2 ~]# host nfs-server-host-name
nfs-server-host-name has address 10.37.4.131
[root@testserver-2 ~]# nslookup nfs-server-host-name
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: nfs-server-host-name
Address: 10.37.4.126
[root@testserver-2 ~]# showmount -e nfs-server-host-name
clnt_create: RPC: Unknown host
[root@testserver-2 ~]# ss -lnp |grep rpc
LISTEN 0 128 *:111 *:* users:(("rpcbind",7627,8)
[root@testserver-2 ~]# mount -t nfs -o defaults,auto,proto=tcp nfs-server-host-name:/ifs/exports/EXPORT /mnt/export
mount.nfs: Failed to resolve server nfs-server-host-name: Name or service not known
A resolução local é configurada via dnsmasq:
[root@testserver-2 ~]# cat /etc/resolv.conf
options rotate timeout:2 attempts:4
nameserver 127.0.0.1
nameserver 10.1.1.1
nameserver 8.8.8.8
[root@testserver-2 ~]# cat /etc/dnsmasq.conf
resolv-file=/etc/resolv.conf
server=/nfs-server-host-name/10.37.4.1 #IP address of Isilon smart connect resolver
listen-address=127.0.0.1
configuração nsswitch (padrão Centos 6):
[root@testserver-2 ~]# grep hosts /etc/nsswitch.conf
hosts: files dns
Por favor, note que nfs-server-host-name
resolving é tratado por um resolvedor de conexão inteligente Isilon, que é configurado como um resolvedor para nfs-server-host-name
localmente via dnsmasq e funciona (como visto no exemplo acima). Substituir nfs-server-host-name
por um endereço IP não é uma opção, pois há vários nós NFS que são balanceados pelo resolvedor, portanto, o IP é variável e não pode ser codificado. Portanto, é OK que os dois resultados acima de hosts e nslookup sejam diferentes. Este é o comportamento pretendido e esperado.
Por favor, note também que nfs-server-host-name
é um exemplo muito preciso do nome do host. O nome do host real parece quase idêntico, não é um FQDN. Na verdade, não há pontos no nome do host. Este é um recurso que eu não estou no controle.
Quando montado manualmente com um endereço IP de nó válido, a exportação é bem montada. Quando o endereço de um nó é colocado em /etc/hosts
, ele é montado. Quando resolvido via DNS, ele não funciona para o cliente nfs, mas funciona para outras ferramentas da rede, como hosts, escavação ou ping.
Este parece ser um problema não tão incomum, mas todas as dicas que encontrei até agora dizem "substituir hostname por IP", algo que não posso fazer.
O que eu senti falta?