Linux slogan
Visite também: BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux



» Screenshot
Linux: Super Kurumin 7
Por joecs23
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Wallpaper


Artigo

Criando seu próprio servidor de DNS dinâmico (nsupdate + bind9)
Linux user
fabio
03/07/2007
Rotina útil pra quem tem acesso à configuração do servidor DNS (bind) de seu provedor ou é o próprio administrador de tal. Aqui veremos como fazer para ter um subdomínio apontando de forma permanente para seu IP dinâmico ADSL. Enfim, vamos criar um dyndns ou no-ip da vida.
Por: Fábio Berbert de Paula
[ Hits: 27236 ]
Conceito: 10.0   Linux conceitoLinux conceitoLinux conceitoLinux conceitoLinux conceito + quero dar nota ao artigo

Introdução

Esse artigo é a documentação de uma rotina que bolei há uns 2 anos, porém com as famosas migrações de servidor que a gente sempre enfrenta, acabei perdendo os arquivos de configuração e só agora resolvi (re)estudar a solução para fazer novamente. E lição aprendida, documentar para não perder novamente.

Acredito que todos saibam do que se trata DNS dinâmico, certo? Hmmm, não!? Então aí vão algumas sugestões de leitura:
Resumindo, existem sites que oferecem o serviço de DNS dinâmico onde você instala um software cliente na sua máquina (IP dinâmico, que muda toda vez que se conecta) que associa seu IP com um hostname, como por exemplo casa.homelinux.org. Legal né? Sim, mas eu queria mesmo era um domínio casa.acme.com, seria legal ter meu desktop associado com meu próprio domínio. Tais serviços possuem uma lista limitada e pré-definida de domínios que você pode usar para compor seu hostname.

Imagina só se eu tivesse grana sobrando, registraria o domínio berbert.com (Berbert é meu sobrenome) e quem quisesse me encontrar (minha máquina) pingaria pra fabio.berbert.com. ééééé!!! Eu chegaria num cliente e, precisando daquele tal arquivo diria: "acessa fabio.berbert.com aí".

Para acompanhamento do artigo vamos assumir o domínio fictício "acme.com", onde queremos como host dinâmico o "casa.acme.com" e nosso servidor/provedor roda bind9 como software DNS. Na máquina cliente (desktop) precisaremos somente do utilitário nsupdate, que no Debian faz parte do pacote dnsutils. Sendo assim:

# apt-get install dnsutils

Ah, como o objetivo é configurar DNS dinâmico, estou partindo do princípio de que seu servidor DNS já esteja configurado e em pleno funcionamento.

Navegação

Outros artigos deste autor

Leitura recomendada

Comentários
Comentário enviado por M4v3r1ck_RJ em 03/07/2007 - 10:37h:

MARAVILHOSO !!!!!!!!
VC EH O CARA FABIAUM !!!!!!!!

Assim que chegar em casa vou configurar o Bind no Slack e vou fazer segundo sua dica !!!

Abraços !!!!!!! ;)

Ps.: Valew mesmo salvou minha vida !!! hauahuahua

Comentário enviado por silver_bit em 03/07/2007 - 11:30h:

Genial!!!
Esta familia Berbert nao brinca em servico mesmo ;)
[] 's

Comentário enviado por slacklex em 03/07/2007 - 12:43h:

Muito bom mesmo!! Vou testar aqui! Obrigado..

Comentário enviado por viniciuscordeiro em 03/07/2007 - 15:43h:

Esse comando para pegar o IP só vai funcionar se vc tiver diretamente conectado ao modem velox?

IP=`ifconfig $INTERFACE | grep inet | cut -d ":" -f 2 | tr -d a-z,A-Z,- | sed 's/\s//g';`

Se você estiver em uma rede esse comando só vai retornar o IP interno... Além do mais que estava tentando utilizar essa solução no meu notebook, que posso estar conectado na internet de várias formas (LAN, WIFI, BlueTooth, Modem), então seria interessante que o script "checasse" qual(is) interface(s) está(ão) conectada(s) e pegasse o IP EXTERNO dessa interface ou simplesmente a solução mais rápida que eu achei foi pegar o IP através de um site...

lynx -dump www.whatismyip.com | grep Your | awk '{if(!m && match($0,/[0-9]+.[0-9]+.[0-9]+.[0-9]+/,a)){print a[0];m=1}}'

Claro que não vou entrar no mérito da questão de abrir portas para esse DNS dinâmico, pois de nada adianta eu estar na rede do meu cliente com meu notebook e o modem dele estiver com o FIREWALL bloqueando todo e qualquer tipo de acesso...

O que você acha de tudo isso?

Comentário enviado por fabio em 03/07/2007 - 15:57h:

Se sua interface de conexão for diferente de ppp0, basta mudar o valor da variável INTERFACE no script.

Bacana sua linha de comando do whatismyip, funciona melhor que a minha do script local, porém o sistema fica dependendo do site em questão. Se o site cair, mudar de domínio ou acabar, vc terá que mudar seu script, enquanto que localmente o processo nunca vai mudar.

Um abraço.

Comentário enviado por slaypher em 03/07/2007 - 16:05h:

Olá,

Parabéns pelo artigo, mas tenho uma questão que surgiu no final:

# adiciona 3 regras no canal início do canal INPUT
$IPT -I INPUT -p tcp --dport 3306 -j DROP
$IPT -I INPUT -p tcp -i lo --dport 3306 -j ACCEPT
$IPT -I INPUT -p tcp -s casa.acme.com --dport 3306 -j ACCEPT

Ao adicionar essas regras ela não irá bloquear inclusive as conexões locais, pois a primeira regra para bloquear qualquer conexão independente de onde veio, se foi local ou não.

[]'s

Comentário enviado por fabio em 03/07/2007 - 16:08h:

Olá slaypher, no artigo tem citado isso, a princípio parece isso, mas o parâmetro "-I" insere a regra no início da fila do canal. Sendo assim a regra que libera pro localhost fica antes da regra que bloqueia tudo. Se eu tivesse usado p "-i" (minúsculo) ou o "-A", aí sim ia dar problema.

Um abraço.

Comentário enviado por viniciuscordeiro em 03/07/2007 - 16:10h:

Fabio, mas aqui quando utilizo sua linha ele só me retorna o IP INTERNO da rede... Se o DNS casa.acme.com estiver apontando para 192.168.0.1 por exemplo, os outros computadores que estiverem na mesma rede irão te encontrar por esse domínio?

Comentário enviado por fabio em 03/07/2007 - 16:14h:

Na mesma rede sim, sem problemas. Quem tiver na internet que não vai conseguir.

Comentário enviado por viniciuscordeiro em 03/07/2007 - 16:24h:

Ummm... também é interessante... então o ideal é criar 2 hosts pra update, local.acme.com e externo.acme.com

Pq aí ficaria completo não é?

Comentário enviado por fabio em 03/07/2007 - 16:31h:

Isso aí! No script nsupdate.sh vc pode colocar quantos "UPDATE delete" e "UPDATE add $HOST" quiser. É só adaptá-lo.

Comentário enviado por pankdao_dj em 04/07/2007 - 12:09h:

Show de bola Fabio

mas tenho uma duvida
eu poderia fazer algo semelhante para atualizar o IP do próprio servidor?
e o seguinte tenho uma maquina como gateway da rede com
2 ADSLs com IP dinâmico
e um link com IP estático
cada um ligado em uma placa de rede diferente
isso forma um unico link com load-balance para fornecer acesso de internet a rede interna o qual tambem hospeda um bind9
eu preciso saber o IP das interfaces ADSL
e relacionar com um nome(DNS)
depois eu faria um outro load-balance do tipo servidor sujo (como a google faz)
para desafogar o meu unico link com IP estático
pois este gateway também hospeda um site
a sempre que temos que acessa-lo de fora da rede somos obrigados a usar o unico link com IP estático ou entrar no gateway descobrir os IPs dos ADSLs e acessar utilizando o IP direto no navegador o que e um grande problema pois nem todo mundo tem permissão para entrar no gateway(na realidade so eu ai eu entro e tenho que pagar o IP e mandar pro pessoal)
sera que esse meu problema tem solucao ???

desde ja agradeço

Comentário enviado por shocker em 05/07/2007 - 09:23h:

Excelente artigo Fábio, como sempre aliás.
Grande abraço.

Atc,
Alan Cota.

Comentário enviado por zapp em 17/07/2007 - 16:53h:

Otimo Artigo....
tem uns erros por causa do formato de data de cada servidor... em casa esta UTC em no meu server de DNS esta BR mas corrigi isso e deu certo..... depois deu eu erro de permissao, mas tb arrumei...
conclusao tudo funcionando..... Perfeito..



Comentário enviado por leoberbert em 23/07/2007 - 08:57h:

Fabio....

No Slackware vc saberia me informar os pacotes necessários? Outra coisa, é realmente necessário ter uma interface pppoe? Pois estou debaixo de um router tb, mas creio que não seja..... Fico no aguardo!!!

Pois to numa briga aqui

Comentário enviado por fabio em 23/07/2007 - 09:04h:

Leo,

Só é necessário o comando nsupdate, pesquisa em que pacote ele se encontra no Slackware. Se está debaixo de um router, o único sentido de usar isso é se você redirecionar alguma porta do router (IP real) pra sua máquina interna, como por exemplo a do SSH.

Comentário enviado por melare em 21/10/2007 - 18:32h:

tudo bem Fabio,

No debian estou com a seguinte mensagem bindrndc: connect failed: 127.0.0.1#953: connection refused
failed!

Poderia me ajudar..

obrigado pela atenção


Comentário enviado por lucasamorim em 09/11/2007 - 18:16h:

Olá,

Uso Velox Residencial com IP dinâmico. Meu desktop Debian está conectado à saída RJ45 do meu modem roteado speedstream 5200. A saída de ifconfig para mim é bem diferente da do artigo, o que eu devo mudar no procedimento? veja:
eth0 Link encap:Ethernet HWaddr 00:1A:4D:A2:8C:77
inet addr:192.168.254.2 Bcast:192.168.254.255 Mask:255.255.255.0
inet6 addr: fe80::21a:4dff:fea2:8c77/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:208387 errors:0 dropped:0 overruns:0 frame:0
TX packets:196515 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:207925971 (198.2 MiB) TX bytes:16364967 (15.6 MiB)
Interrupt:18 Base address:0xc000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:50 errors:0 dropped:0 overruns:0 frame:0
TX packets:50 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3364 (3.2 KiB) TX bytes:3364 (3.2 KiB)



Comentário enviado por abelardo em 20/12/2007 - 10:14h:

bom dia fabio, seguinte estou com um problema aqui na minha rede, ela ta muito lenta e existem alguns nomes que eu nao estou conseguindo resolver, como o do www.vivaolinux.com.br, nao estou conseguindo nem pingar nele, mas em outros sites estou entrando normal, apenas alguns sites que estao assim,

ai esta o meus logs

http://paste.lymas.com.br//?q=11948

agradeço se puder ajudar!!

Comentário enviado por onlline em 26/12/2007 - 16:04h:

Oi boa tarde, Eu consegui ate configurar o bind mas a parte do NSUPDATE fla que enviou a atualização mas nada de mandar o update no servidor bind.. eu uso o Debian teste no 3.1 r5 e no 4.0r1 , gostaria de saber se alguem poderia me mandar as configurações de dns e do nsupdate, pra ver se eu consigo!

Comentário enviado por onlline em 26/12/2007 - 16:14h:

Eu consegui um cliente tipo NSUPDATE para WINDOWS XP muito bom ,,
o nome dele é (DynSite) ele não é free! mas no meu caso não consegui funcionar nem com o NSUPDATE e Nem com Ele!

Comentário enviado por onlline em 27/12/2007 - 22:08h:

Quando mando manualmente,

nsupdate –d –k /root/Klinuxbsd.com.br.+157+15055.key
Creating key…
server 192.168.149.128
zone onlline.solutions
update delete leo.onlline.solutions
update add leo.onlline.solutions 90 A 200.200.200.200
send

Da erro REFUSED


se eu mandar pelo script do site da NOAUTH

Comentário enviado por onlline em 27/12/2007 - 23:39h:

Eu fiz o Teste com o Fedora 6 deu erro tambem REFUSED tanto no scriipt como manual ,....





Reply from update query:
;; ->>HEADER<<- opcode: UPDATE, status: REFUSED, id: 14845
;; flags: qr ra ; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 1
;; TSIG PSEUDOSECTION:
leo. 0 ANY TSIG hmac-md5.sig-alg.reg.int. 1198


Comentário enviado por marrichi em 13/05/2008 - 19:24h:

[i] parabens...


otimo artigo


\ô/

Comentário enviado por nardin em 13/07/2008 - 11:08h:

Estou com uma dúvida.

Pra fazer essas configurações o modem prescisa ser bridge ou router?
Quando uso meu modem bridge eu consigo uma interface ppp0 como a sua, mas com o router fica a eth0 com um ip interno.

Se for pra usar o bridge como ficaria os arquivos de Registros de Recursos? Por exemplo, de uma olhada como está configurado o meu.

$TTL 43200
@ IN SOA rockstar.leonardocostaborges.com. root.leonardocostaborges.com. (
1 ; Serial
3600 ; Refresh
900 ; Retry
1209600 ; Expire
43200 ) ; Negative Cache TTL
;
@ IN NS rockstar.leonardocostaborges.com.
@ IN A 192.168.1.64
rockstar IN A 192.168.1.64
www IN CNAME rockstar



Contribuir com comentário
  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Contribuir com: [ Artigo | Conf | Dica | Pergunta | Script | Screenshot | Simulado | Wallpaper ]
Responsável pelo site: Fábio Berbert de Paula - Copyleft© 2002-2008 Viva o Linux.com.br

Viva o Linux

A maior comunidade Linux do Brasil! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.