|
[15/03]
:. Lançado Amarok 2.3.0 'Clear Light' [15/03] :. Um pouco sobre o SimplyMEPIS 8.5 [15/03] :. Mais detalhes do Windows Phone 7 Marketplace [15/03] :. Resumo do dia [15/03] :. IBM e Suíça desenvolvem processador tridimensional [15/03] :. Baterias de lítio-enxofre podem ter autonomia até 4x maior [15/03] :. Pesquisa revela dados sobre progresso dos jogadores de Xbox [13/03] :. Resumo do dia [13/03] :. Ciência: redes sem fio através de LEDs azuis [13/03] :. Mesmo com lei rigorosa, pirataria na França aumenta [13/03] :. China: Google sofrerá consequencias se não censurar buscas [12/03] :. Resumo do dia [12/03] :. InstantAction permite rodar jogos através de páginas na Web [12/03] :. AMD prepara Fusion mais leve para concorrer com o Intel Atom [12/03] :. iSuppli: mercado de HDs e drives ópticos crescerá este ano :. Mais noticias » |
Primeiramente seja muito bem-vindo à este post. Toda vez que o DHCP recebe uma requisição de IP dinâmico, ele guarda todas informações do cliente dentro do arquivo /lib/var/dhcp/dhcpd.leases (tais como nome da máquina, MAC address, etc). O que o DDNS irá fazer é pegar estas informações e usá-las para inserir valores dentro do arquivo das zonas especificadas. Por exemplo: A máquina dfabretti (a minha :D) acabou de ser ligada. Ela requisitou, em broadcast, um IP por DHCP. O meu servidor DHCPD recebe essa informação. Guarda os dados da máquina dentro do arquivo leases. Insere os dados dentro das suas respectivas Zonas e envia o IP para a minha estação de trabalho. Tá beleza, adorei, chega de ficar editando zonas DNS dentro da minha rede local, como implemento isso? Meu amigo, é aí que mora o perigo! Foi uma dor de cabeça para eu conseguir fazer funcionar este serviço, foram dias estressantes de trabalho que estou dando de lambuja para vocês, portanto aproveitem :D. Instalando e Configurando o dhcp3-serverPrimeiramente, teremos que instalar o DHCPD, para isso iremos executar o seguinte comando: # apt-get install dhcp3-server
Em seguida, vamos editar o arquivo principal de configuração do dhcpd: # vim /etc/dhcp3/dhcpd.conf
OBS: Todos os comandos desta dica são executados pelo root e estão em destaque.
Arquivo /etc/dhcp3/dhcpd.conf: ddns-update-style interim; # Esta é a linha que habilita a atualização dinâmica.
default-lease-time 600; # Opção padrão (para maiores informações: man dhcpd.conf). max-lease-time 7200; # Opção padrão (para maiores informações: man dhcpd.conf). log-facility local7; # Formato em que será exibido o log no /var/log/syslog. authoritative; # Esta opção diz que este servidor será o DHCP principal da rede. option domain-name "XXXX.com.br"; # Nome do Domínio. option domain-name-servers XXX.XXX.XXX.XXX; # Servidor DNS. option broadcast-address XXX.XXX.XXX.XXX; # Broadcast da Rede. option netbios-name-servers XXX.XXX.XXX.XXX; # Servidor PDC (caso usado). option netbios-node-type 8; option subnet-mask XXX.XXX.XXX.XXX; # Máscara da Rede. option routers XXX.XXX.XXX.XXX; # Gateway da Rede. include "/etc/bind/rndc.key"; # Responsável pela atualização do bind9. zone XXXX.com.br. { # Zona master da rede interna onde o DHCP irá inserir os valores. primary XXX.XXX.XXX.XXX; # IP do servidor DNS (onde a zona está configurada). key "rndc-key"; # Chave que será usada para integração entre os dois serviços. } zone XXX.XXX.XXX.in-addr.arpa. { # Zona reversa da rede interna onde o DHCP irá inserir os valores. primary XXX.XXX.XXX.XXX; # IP do servidor DNS (onde a zona está configurada). key "rndc-key"; # Chave que será usada para integração entre os dois serviços. } subnet XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX { # Rede / Máscara da Rede. range XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX; # Range de IPs dinâmicos que serão distribuidos para os clientes. } OBS: Apenas lembrando que:
Beleza! Após o dhcpd3-server instalado e configurado vamos para o bind9 (ainda não inicie o serviço, pois a chave de autenticação entre os serviços ainda não existe, ela virá junto com o pacote do bind9, se tentar iniciá-lo dará erro). Instalando e Configurando o bind9Primeiramente instalaremos o bind9: # apt-get install bind9
Vamos editar o principal arquivo do bind9: # vim /etc/bind/named.conf
Insira estas linhas antes do começo do arquivo (acima da linha include "/etc/bind/named.conf.options"). Arquivo /etc/bind/named.conf: include "/etc/bind/rndc.key";
controls { inet 127.0.0.1 allow { localhost; } keys { "rndc-key"; }; }; Após, editamos o arquivo named.conf.options: # vim /etc/bind/named.conf.options
Dê uma olhada no seu arquivo e veja se ele está com todas estas opções, não que elas sejam obrigatórias, apenas uma é, mas seria uma boa tê-las para a segurança do serviço. Arquivo /etc/bind/named.conf.options: options {
directory "/etc/bind"; # Aqui mudaremos onde o bind9 está instalado, no debian este é o padrão (working directory). version "N/A"; # Esconde a versão do nosso bind e nos protegermos contra possiveis exploits. forwarders { # Requisições que não seja internas serão feitas em outro servidor DNS. XXX.XXX.XXX.XXX; # Servidor DNS para consultas externas. }; auth-nxdomain yes; # Aqui estamos dizendo que nosso domínio existe, este DNS é autoritativo (o principal da rede). listen-on { # Escutar os seguintes IPs (interfaces). 127.0.0.1; # IP do servidor DNS interno (lo). XXX.XXX.XXX.XXX; # IP do servidor DNS interno (ethX). }; allow-query { # Aceitar consultas provenientes de. 127.0.0.0/8; # Rede localdomain. XXX.XXX.XXX.XXX/XX; # Rede interna. }; }; Agora temos que configurar as Zonas DNS: # vim /etc/bind/named.conf.local
Arquivo /etc/bind/named.conf.local: zone "XXXX.com.br" { # Zona master da rede local.
type master; # Dizemos que será master. notify no; # Aqui é no pois não temos um dns slave, se tivessemos seria yes. file "/etc/bind/master.zone"; # Arquivo de configuração da zona. allow-update { key "rndc-key"; }; # Estamos dizendo que ele aceitará updates pela chave (a mesma que configuramos no DHCP). }; zone "XXX.XXX.XXX.in-addr.arpa"{ # Zona reversa da rede local. type master; # Dizemos que será master. notify no; # Aqui é no pois não temos um dns slave, se tivessemos seria yes. file "/etc/bind/rev.zone"; # Arquivo de configuração da zona. allow-update { key "rndc-key"; }; # Estamos dizendo que ele aceitará updates pela chave (a mesma que configuramos no DHCP). }; Arquivos das zonasAqui não temos nenhum tipo de problema, é uma configuração padrão de DNS. Vi em muitos tutoriais espalhados pela internet que tem que ter algo especial do tipo $ORIGIN porém, não precisa. O $ORIGIN é inserido após a primeira atualização dinâmica do dhcp no bind, portanto não vamos nos preocupar com isto. Vamos editar o arquivo da zona master primeiro: # vim /etc/bind/master.zone
Arquivo /etc/bind/master.zone: $TTL 3600
@ IN SOA XXXX.com.br. root.XXXX.com.br. ( 2009102801 ; Serial (Y-M-D-N) 28800 ; Update (8 hours) 14400 ; Retry (4 hours) 604800 ; Expire (1 week) 86400 ; Negative Cache (1 day) ) @ IN NS XXXX.com.br. @ IN A XXX.XXX.XXX.XXX @ IN MX 10 XXXX.XXXX.com.br. OBS:
Agora vamos editar o arquivo da zona reversa: # vim /etc/bind/rev.zone
Arquivo /etc/bind/rev.zone: $TTL 3600
@ IN SOA XXXX.com.br. root.XXXX.com.br. ( 2009102801 ; Serial (Y-M-D-N) 28800 ; Update (8 hours) 14400 ; Retry (4 hours) 604800 ; Expire (1 week) 86400 ; Negative Cache (1 day) ) @ IN NS XXXX.com.br. @ IN MX 10 XXXX.XXXX.com.br. OBS:
O usuário bind não tem permissão de escrita na pasta /etc/bind/, então: # chmod 765 /etc/bind
Depois, temos que dar permissão de escrita nos arquivos das zonas, então: # chmod 664 /etc/bind/*
Iniciando e testando os serviçosBem, a parte mais difícil já passou, agora temos que depurar os erros (caso aconteçam) dos serviços. Para isso, minha dica é abrir duas sessões ssh na máquina: uma para os comandos e outra monitorando o log do sistema. Para monitorar o log, vá na sessão do ssh e digite: # tail -f /var/log/syslog
... e deixe a sessão aberta. dhcp3-server:Vá para a outra sessão e vamos iniciar os serviços (sempre de olho no monitoramento): # /etc/init.d/dhcp3-server start
Se na sessão do monitoramento aparecer algo do gênero: Oct 28 16:21:09 tyrande dhcpd: Internet Systems Consortium DHCP Server V3.1.1
Oct 28 16:21:09 tyrande dhcpd: Copyright 2004-2008 Internet Systems Consortium. Oct 28 16:21:09 tyrande dhcpd: All rights reserved. Oct 28 16:21:09 tyrande dhcpd: For info, please visit http://www.isc.org/sw/dhcp/ Oct 28 16:21:09 tyrande dhcpd: Wrote 0 deleted host decls to leases file. Oct 28 16:21:09 tyrande dhcpd: Wrote 0 new dynamic host decls to leases file. Oct 28 16:21:09 tyrande dhcpd: Wrote 1 leases to leases file. ... é porque deu tudo certo, caso contrário, deu algo errado e mostrará qual é o problema no log. bind9:Na sessão aberta para a inicialização dos serviços digite: # /etc/init.d/bind9 restart
Se na sessão do monitoramento aparecer algo do gênero: Oct 28 17:56:04 tyrande named[2018]: received control channel command 'stop -p'
Oct 28 17:56:04 tyrande named[2018]: shutting down: flushing changes Oct 28 17:56:04 tyrande named[2018]: stopping command channel on 127.0.0.1#953 Oct 28 17:56:04 tyrande named[2018]: no longer listening on 127.0.0.1#53 Oct 28 17:56:04 tyrande named[2018]: no longer listening on 172.148.200.4#53 Oct 28 17:56:04 tyrande named[2018]: exiting Oct 28 17:56:04 tyrande named[2126]: starting BIND 9.5.1-P3 -u bind Oct 28 17:56:04 tyrande named[2126]: found 1 CPU, using 1 worker thread Oct 28 17:56:04 tyrande named[2126]: using up to 4096 sockets Oct 28 17:56:04 tyrande named[2126]: loading configuration from '/etc/bind/named.conf' Oct 28 17:56:04 tyrande named[2126]: max open files (1024) is smaller than max sockets (4096) Oct 28 17:56:04 tyrande named[2126]: using default UDP/IPv4 port range: [1024, 65535] Oct 28 17:56:04 tyrande named[2126]: using default UDP/IPv6 port range: [1024, 65535] Oct 28 17:56:04 tyrande named[2126]: listening on IPv4 interface lo, 127.0.0.1#53 Oct 28 17:56:04 tyrande named[2126]: listening on IPv4 interface eth0, 172.148.200.4#53 Oct 28 17:56:04 tyrande named[2126]: automatic empty zone: 254.169.IN-ADDR.ARPA Oct 28 17:56:04 tyrande named[2126]: automatic empty zone: 2.0.192.IN-ADDR.ARPA Oct 28 17:56:04 tyrande named[2126]: automatic empty zone: 255.255.255.255.IN-ADDR.ARPA Oct 28 17:56:04 tyrande named[2126]: automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA Oct 28 17:56:04 tyrande named[2126]: automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA Oct 28 17:56:04 tyrande named[2126]: automatic empty zone: D.F.IP6.ARPA Oct 28 17:56:04 tyrande named[2126]: automatic empty zone: 8.E.F.IP6.ARPA Oct 28 17:56:04 tyrande named[2126]: automatic empty zone: 9.E.F.IP6.ARPA Oct 28 17:56:04 tyrande named[2126]: automatic empty zone: A.E.F.IP6.ARPA Oct 28 17:56:04 tyrande named[2126]: automatic empty zone: B.E.F.IP6.ARPA Oct 28 17:56:04 tyrande named[2126]: command channel listening on 127.0.0.1#953 Oct 28 17:56:04 tyrande named[2126]: zone 0.in-addr.arpa/IN: loaded serial 1 Oct 28 17:56:04 tyrande named[2126]: zone 127.in-addr.arpa/IN: loaded serial 1 Oct 28 17:56:04 tyrande named[2126]: zone 200.148.172.in-addr.arpa/IN: loaded serial 2009102706 Oct 28 17:56:04 tyrande named[2126]: zone 255.in-addr.arpa/IN: loaded serial 1 Oct 28 17:56:04 tyrande named[2126]: zone XXX.com.br/IN: loaded serial 2009102724 Oct 28 17:56:04 tyrande named[2126]: zone localhost/IN: loaded serial 2 Oct 28 17:56:04 tyrande named[2126]: running ... é porque deu tudo certo, caso contrário, deu algo errado e mostrará qual é o problema no log. Para testar se está dinamicamente inserindo os valores nas zonas, deixe monitorando o log do mesmo jeito que fizemos acima, pegue uma máquina qualquer na sua rede (Windows ou Linux, tanto faz) e ligue-a. Se quando ela pegar IP aparecer algo do gênero: Oct 27 20:14:02 tyrande dhcpd: DHCPOFFER on 172.148.200.212 to 00:14:38:66:bf:ac (test) via eth0
Oct 27 20:14:02 tyrande named[1529]: client 172.148.200.4#45851: signer "rndc-key" approved Oct 27 20:14:02 tyrande named[1529]: client 172.148.200.4#45851: updating zone 'XXX.com.br/IN': adding an RR at 'test.XXX.com.br' A Oct 27 20:14:02 tyrande named[1529]: client 172.148.200.4#45851: updating zone 'XXX.com.br/IN': adding an RR at 'test.XXX.com.br' TXT Oct 27 20:14:02 tyrande named[1529]: journal file /etc/bind/XXX.master.zone.jnl does not exist, creating it Oct 27 20:14:02 tyrande dhcpd: Added new forward map from test.XXX.com.br to 172.148.200.212 Oct 27 20:14:02 tyrande named[1529]: client 172.148.200.4#45059: signer "rndc-key" approved Oct 27 20:14:02 tyrande named[1529]: client 172.148.200.4#45059: ... '200.148.172.in-addr.arpa/IN': deleting rset at '212.200.148.172.in-addr.arpa' PTR Oct 27 20:14:02 tyrande named[1529]: client 172.148.200.4#45059: ... '200.148.172.in-addr.arpa/IN': adding an RR at '212.200.148.172.in-addr.arpa' PTR Oct 27 20:14:02 tyrande named[1529]: journal file /etc/bind/XXX.rev.zone.jnl does not exist, creating it Oct 27 20:14:02 tyrande dhcpd: added reverse map from 212.200.148.172.in-addr.arpa. to test.XXX.com.br Oct 27 20:14:02 tyrande dhcpd: DHCPREQUEST for 172.148.200.212 (172.148.200.4) from 00:14:38:66:bf:ac (test) via eth0 Oct 27 20:14:02 tyrande dhcpd: DHCPACK on 172.148.200.212 to 00:14:38:66:bf:ac (test) via eth0 ... é porque deu tudo certo, caso contrário, deu algo errado e mostrará qual é o problema no log. Considerações finaisCom esses passos consegui finalmente fazer funcionar o DDNS. Qualquer dúvida quanto aos procedimentos, quanto aos testes e erros no log, escreva-me, podemos trocar algumas ideias. Douglas Fabretti E-mail: douglas.fabretti [at] gmail em com Messenger: douglas.torgo.fabretti [at] hotmail em com Espero que tenha gostado e espero que ele tenha sido útil para quem precisa. Abraços a todos. Por Douglas Tórgo Fabretti <douglas.fabretti [at] gmail em com>
|
|||||