5 segundos para hostname -f e um estranho pedido de DNS

5

Minha pergunta aborda um comportamento estranho do hostname -f no meu sistema Gentoo Linux.

O sintoma:

rt01 ~ # time hostname -f
rt01.domain.net

real    0m5.007s
user    0m0.001s
sys     0m0.000s

Com strace, posso ver que as etapas a seguir são executadas:

  • Leia /etc/host.conf (provavelmente) para determinar a ordem de como o host pesquisas devem ser feitas
  • Leia / etc / hosts (na minha opinião, isso deve ser suficiente, em vez disso, é ...)
  • Conectando-se ao servidor DNS especificado em /etc/resolv.conf
  • Leia / etc / hosts novamente

A configuração do iptables nessa máquina impede que ele se conecte a qualquer servidor DNS. Então é - por design - bloqueado neste ponto. Minha expectativa é que essa etapa não seja necessária com a seguinte configuração:

/etc/host.conf

# This keyword specifies how host lookups are to be performed. It
# should be followed by one or more lookup methods, separated by
# commas.  Valid methods are bind, hosts, and nis.
#
order hosts, bind

/ etc / hosts

# IPv4 and IPv6 localhost aliases
127.0.0.1       rt01.domain.net rt01 localhost
<public ip>     rt01.domain.net rt01
::1             localhost

/etc/conf.d/hostname

# Set to the hostname of this machine
hostname="rt01"

Alguém pode me explicar, por que hostname -f tenta se conectar a um servidor DNS. Eu pensei que as informações fornecidas por / etc / hosts deveriam ser suficientes.

    
por Christian Ehrig 28.03.2016 / 18:51

1 resposta

3

A ordem em que as consultas DNS são resolvidas baseia-se no conteúdo de /etc/nsswitch.conf . Especificamente, a ordem das opções na linha para hosts

Por exemplo, esta linha fará com que sua máquina consulte um servidor antes de verificar arquivos locais:

hosts:          dns files

Página do manual: link

    
por 28.03.2016 / 18:56