Parte do seu problema provavelmente se deve ao fato de seu caminho de pesquisa ser gerado automaticamente pelo NetworkManager:
search xyz.local
Esta linha deve ser mesmo assim:
search xyz.local.
O período no final é crítico, pois isso faz com que o resolvedor de DNS pare. Por isso, não fará coisas assim para você:
mysql.xyz.local.xyz.local
Você pode confirmar isso tentando resolver os nomes dos hosts adicionando manualmente um período, temporariamente.
$ nslookup mysql.xyz.local.
Resolvendo este domínio inteiro
Para resolver isso, você precisará alterar a definição do seu domínio no seu servidor DHCP para que ele esteja servindo o domínio como xyz.local.
.
/etc/nsswitch.conf
O método usado para resolver um nome de host é controlado pelo arquivo /etc/nsswitch.conf
. A notação NSS, significa Name Service Switch, e você pode ler mais sobre isso através da página man, man nss
.
Aqui está a linha do meu arquivo que controla como nomes de host são resolvidos:
$ grep ^hosts /etc/nsswitch.conf
hosts: files dns mdns4_minimal
Ele olha para o meu arquivo local, /etc/hosts
, primeiro, e depois consulta o DNS em segundo lugar.