Problema com DNS e IP dinâmico (respondido)

Iniciado por amelotti, 04 de Março de 2010, 10:47

tópico anterior - próximo tópico

amelotti

Pessoal,

acredito que essa dúvida seja relativamente simples, mas ainda não achei nada a respeito. Eu tenho um servidor com o bind para consultas DNS internas e outro servidor atuando como gateway. O meu IP internet é dinâmico. O que acontece é que sempre que o IP externo muda (a cada 2 dias aproximadamente) o meu DNS interno não consegue mais resolver endereços externos (tipo google.com). Só volta a funcionar depois de reiniciar o bind. Cheguei a fazer um script para isso, que verifica se o IP externo mudou, que roda a cada 2 minutos mas achei essa solução meio tosca. Acredito que haja outro meio mais elegante (e eficiente, já que às vezes eu tenho que ir lá e reiniciar na mão. E mesmo assim, ainda demora um pouco pra voltar a responder endereços externos) de se fazer isso.
Alguém sabe de algo que possa me ajudar?

[]'s

Luiz


zekkerj

amelotti, vc se importa de passar a configuração do seu BIND pra gente analisar? Seriam os arquivos /etc/bind/named.conf, e /etc/bind/named.conf.options, se este existir.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

amelotti

named.conf
include "/etc/bind/named.conf.options";

// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
type master;
file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};

// zone "com" { type delegation-only; };
// zone "net" { type delegation-only; };

include "/etc/bind/named.conf.local";



named.conf.local
zone "corp.com" in {
        type master;
        file "/etc/bind/corp.zone";
};

zone "10.in-addr.arpa" in {
        type master;
        file "/etc/bind/corp.rev";
};



named.conf.options
options {
directory "/var/cache/bind";

auth-nxdomain no;    # conform to RFC1035
listen-on-v6 { any; };
};


[]'s

Luiz

zekkerj

Sobre o DNS, seu provedor oferece servidores DNS, certo? Experimente definir esses servidores DNS como "forwarders" do seu. Essa configuração fica no arquivo "/etc/bind/named.conf.options" (por questão de organização), conforme abaixo:


...
forwarders { IP-do-DNS-primário; IP-do-DNS-secundario; ... };
...


Se seu provedor não oferecer serviço DNS, vc pode usar os servidores do Google ( 8.8.8.8 e 4.4.4.4 ) ou do OpenDNS ( 208.67.222.222 e 208.67.220.220 ).

A vantagem de trabalhar assim é que esses servidores DNS são muito confiáveis, mas por estarem no exterior acabam demorando um pouco pra responder. O seu servidor local, fazendo cache das respostas, pode compensar esse atraso.

Outra coisa que vc pode fazer, se não quiser adotar os forwarders, é verificar se esse arquivo de "hint" /etc/bind/db.root está atualizado. Esse arquivo dá ao teu servidor DNS os ponteiros para todos os "root servers", que são os servidores centrais de DNS de toda a internet. De tempos em tempos essa lista altera, então é preciso mantê-la atualizada.

Por fim, você pode ver como seu servidor de compartilhamento/firewall está sendo configurado, particularmente na parte de NAT. Se não for um roteador dedicado, pode ser que tenha sido programado pra fazer o compartilhamento por SNAT, em vez de MASQUERADING, o que pode levar a esse problema na hora da mudança de endereço. Também pode se pensar em cadastrar um script auxiliar, na configuração da interface, pra ser executado sempre que o endereço IP mudar.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

amelotti

Rolou zekke!
Foi só atualizar o db.root mesmo que já funcionou. Estava esperando pra responder, pra ver se só isso ia funcionar mesmo.
Muito obrigado.