Eu tenho um problema em que os nomes de host estão sendo pesquisados no DNS, mesmo que estejam presentes em / etc / hosts.
Eu tenho o seguinte configurado:
/etc/host.conf:
order hosts,bind
/etc/nsswitch.conf:
hosts: files dns
/etc/resolv.conf:
nameserver <nameserver one>
nameserver <nameserver two>
O aplicativo em execução no host faz algumas solicitações de API internas e externas.
No tcpdump, estou vendo consultas DNS em alguns dos nomes de host do serviço interno que estão listados em / etc / hosts. O comando tcpdump que estou usando é:
tcpdump -tqAlU -s0 port 53 and host <nameserver one>
No despejo, estou vendo solicitações como as seguintes:
IP 10.0.80.11.domain > app004-private.51308: UDP, length 102
E...I2..>...
.P.
.........I.1E...:...Q.. localhost............ [email protected]..
IP app004-private.33828 > 10.0.80.11.domain: UDP, length 39
E..Ca.@[email protected].
.2.
.P..$.5./..3e.......... localhost.site.com.....
IP 10.0.80.11.domain > app004-private.33828: UDP, length 96
E..|....>.T;
.P.
.2..5.$.hU.3e.......... localhost.site.com................-.ns10.dnshost.com...dns.8w.............u.....
Observe que o host local está sendo enviado para o DNS, bem como para o localhost.site.com. A entrada / etc / hosts para o host local é:
127.0.0.1 localhost.localdomain localhost
e
IP 10.0.80.11.domain > app004-private.51664: UDP, length 93
E..yx...>.m.
.P.
.2..5...e.<N2...........api.site.com................-.ns10.dnshost...dns.5w.............u.....
IP app004-private.51664 > 10.0.80.11.domain: UDP, length 48
E..L'.@[email protected].
.2.
.P....5.8..n............api.site.com.site.com.....
IP 10.0.80.11.domain > app004-private.48878: UDP, length 76
E..h&e..>..w
.P.
.2..5...TQ..............11.80.0.10.in-addr.arpa.............Q............p.... . :...Q.
IP 10.0.80.11.domain > app004-private.51664: UDP, length 105
E...VX..>..g
.P.
.2..5...qJ.n............api.site.com.site.com................-.ns10.dnshost.'.dns.Aw.............u.....
Onde api.site.com está em / etc / hosts. Executando getent para consultar api.site.com retorna:
$ getent hosts api.site.com
10.36.176.114 api001-private api001-private.site.com api001 api.site.com api
Estou perplexo. Tudo parece estar configurado corretamente (tanto quanto eu saiba) para usar o / etc / hosts primeiro então DNS. Alguma idéia de por que /etc/nsswitch.conf e /etc/host.conf não estão sendo respeitados?
A aplicação principal em execução no sistema é http (apache 2.2.15 e PHP 5.3.8 com curl 7.30.0). O SO é o Centos 5.6 rodando com o kernel 2.6.18-238.9.1.el5 e o glibc 2.5-58.el5_6.3.
Obrigado antecipadamente!