resolv.conf opções não sendo honradas

4

Esperava implementar a diretiva "options rotate" dentro do resolv.conf para que as pesquisas de DNS girassem através dos servidores de nomes listados nesse arquivo. Pelo que entendi, esse é o ponto desta diretiva. Não funciona em nenhum sistema que tentei namorar. Ele sempre usa a primeira diretiva do servidor de nomes no arquivo e desconsidera o restante, a menos que ocorra um erro.

Eu testei usando um falso script python do DNS que imita um servidor DNS e sempre responde com o mesmo endereço 192.168.1.1 falso, independentemente da solicitação. Quando colocado em primeiro lugar no arquivo, ele sempre iria para esse servidor e, quando colocado em segundo lugar, ele nunca iria. Esta é a diretiva "options rotate" incluída no arquivo.

# cat /etc/resolv.conf
search some.toplevel
options rotate
nameserver 10.0.0.2 <- fake python DNS server
nameserver 10.0.0.3 <- real DNS server

Roteiro falso de pythons do servidor DNS usado

Além disso, usei o comando dig e o comando host. Eu verifiquei que eles fazem uso da biblioteca de resolução. Eu tentei isso no CentOS 5.6, bem como no meu ubuntu pessoal com versões totalmente diferentes dos pacotes relacionados. Estou totalmente perplexo aqui, preciso de ajuda sobre isso.

    
por CarpeNoctem 28.10.2011 / 03:20

2 respostas

10

Há uma dica sobre isso no link :

Em outras palavras, uma instância do resolvedor ainda consulta primeiro o servidor de primeiro nome no resolv.conf, mas para o próximo nome de domínio que ele procura, ele consulta primeiro o segundo servidor de nomes e assim por diante.

Note que muitos programas não podem tirar proveito disso, pois a maioria dos programas inicializa o resolvedor, procura um nome e depois sai. A rotação não tem efeito nos comandos ping repetidos, por exemplo, porque cada processo de ping inicializa o resolvedor, consulta o servidor de primeiro nome no resolv.conf e sai antes de usar o resolvedor novamente. Cada chamada sucessiva de ping não tem idéia de qual servidor de nome o anterior usou - ou até mesmo que o ping foi executado anteriormente. Mas os processos de longa duração que enviam muitas consultas, como um daemon do sendmail, podem aproveitar a rotação.

    
por 28.10.2011 / 03:57
4

Como os comandos 'dig' e 'host' fazem apenas uma consulta, é impossível para eles rotacionar suas consultas. Rotação requer um programa que emite várias consultas. (É a rotação literal, não distribuição aleatória. A primeira consulta vai para o primeiro servidor, o segundo para o segundo e assim por diante.)

Note that many programs can't take advantage of this since most programs initialize the resolver, look up a name, then exit. Rotation has no effect on repeated ping commands, for example, because each ping process initializes the resolver, queries the first name server in resolv.conf, and then exits before using the resolver again. Each successive invocation of ping has no idea which name server the previous one used -- or even that ping was run earlier. But long-lived processes that send lots of queries, such as a sendmail daemon, can take advantage of rotation. -- O'Reilly, DNS and Bind

    
por 28.10.2011 / 03:57