Ordem de busca por resolução de nomes no Unix / Linux

3

Digamos que o /etc/resolv.conf tenha o seguinte ...

nameserver 10.10.10.10
search x.com y.com

Para uma resolução "ping foo", vejo que o resolvedor primeiro tenta o FQDN com domínios de pesquisa configurados (isto é: foo.x.com, foo.y.com) e depois tenta o padrão "foo".

Este comportamento é consistente em todas as plataformas * nix? Ou algumas implementações podem fazer a resolução de nomes curtos no domínio raiz primeiro (por exemplo: "foo")?

    
por Manohar 29.12.2015 / 01:35

1 resposta

2

da página man do resolv.conf:

options ndots:n
                 Sets a threshold for the number of dots which must
                 appear in a name given to res_query(3) (see
                 resolver(3)) before an initial absolute query will be
                 made.  The default for n is 1, meaning that if there
                 are any dots in a name, the name will be tried first as
                 an absolute name before any search list elements are
                 appended to it.  The value for this option is silently
                 capped to 15.

Assim, se o resolv.conf tiver options ndots:0 , ele tentará imediatamente uma pesquisa de domínio raiz e não tentará nenhum domínio da lista de pesquisa. A manpage parece indicar que deve tentar pesquisar se o domínio de consulta não existe na raiz, mas o meu resolvedor não fez isso ao testar. Caso contrário, se não houver ponto, ele tenta primeiro os elementos de pesquisa em ordem, depois o domínio raiz depois de esgotar a lista. Note, você pode definir search . , que coloca o domínio raiz na lista de pesquisa.

Outra coisa a notar é que a resolução do seu nome pode nunca chegar ao resolv.conf se a requisição for satisfeita por outro mecanismo nsswitch.conf antes que ele chegue lá.

    
por 29.12.2015 / 05:31