Mostrando postagens com marcador dns. Mostrar todas as postagens
Mostrando postagens com marcador dns. Mostrar todas as postagens

domingo, 15 de maio de 2011

Openfire e os registros SRV do DNS


Com a nova versão do Openfire (3.7.0) lançada em março passado percebi uma mudança na integração dos servidores (s2s, A.K.A. federation) e gostaria de compartilhar uma dica que pode ajudar os demais administradores desse excelente servidor XMPP.

Para garantir que não hajam dificuldades na conexão entre servidores é recomendada a existência de registros SRV conforme o exemplo abaixo (tais registros devem existir para todos os domínios que serão conectados).

Imaginando que o domínio da empresa seja minhaempresa.com.br e que o domínio jabber seja xmpp.minhaempresa.com.br é recomendada a criação dos seguintes registros:
  • _jabber._tcp.xmpp.minhaempresa.com.br
  • _jabber._tcp.minhaempresa.com.br
  • _xmpp-server._tcp.xmpp.minhaempresa.com.br
  • _xmpp-server._tcp.minhaempresa.com.br
Todos os registros devem apontar para seu o domínio jabber, como pode ser observado:
marcelo@hellboy:~$ dig srv _xmpp-server._tcp.minhaempresa.com.br

; <<>> DiG 9.7.3 <<>> srv _xmpp-server._tcp.minhaempresa.com.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11368
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;_xmpp-server._tcp.minhaempresa.com.br. IN SRV

;; ANSWER SECTION:
_xmpp-server._tcp.minhaempresa.com.br. 86297 IN SRV 0 1 5269 xmpp.minhaempresa.com.br.

;; Query time: 16 msec
;; SERVER: 200.175.5.139#53(200.175.5.139)
;; WHEN: Sun May 15 00:24:00 2011
;; MSG SIZE rcvd: 89

Descobri essa situação ao migrar um cliente que utilizava uma versão mais antiga de Openfire para a última versão. Enquanto não foram criados os registros SRV dos servidores federados não foi possível ativar a conexão s2s entre os mesmos.

sábado, 1 de dezembro de 2007

Configurando um DNS Dinâmico com o No-IP

O No-IP é um serviço de DNS dinâmico que permite que você consiga acessar seu computador via Internet usando o mesmo nome, independente do IP que ele estiver utilizando (ótimo para conexões sem IP fixo, como assinaturas ADSL ou cable residenciais).

Um dos planos do No-IP, que com certeza atrai a atenção de muita gente (inclusive minha), permite que você crie uma conta free.
Como desvantagem, por tratar-se de um plano free, você terá de trimestralmente confirmar a existência do mesmo para não "perder o seu domínio", o que cá entre nós não chega a ser algo problemático pois você receberá e-mails informando da necessidade de "renovação" da conta.
A No-IP também oferece planos pagos com vários outros recursos e vantagens, mas nesse caso vou utilizar uma conta free normal.

Como fazer ?
Inicialmente, você deve entrar no site do No-IP e se cadastrar. Após o cadastro realizado, você deverá adicionar um Host, escolhendo o nome do mesmo e o domínio ao qual ele vai ficar associado (existe mais de uma dezena deles).

O No-IP oferece uma série de outros recursos, que você poderá explorar com mais cuidado, mas nesse post irei tratar de um DNS simples, somente para permitir que você tenha acesso a seu computador sem se preocupar com o IP que ele está no momento.

Após finalizar seu cadastro, é necessário baixar o arquivo que contém o daemon que ficará rodando no seu computador. Clique aqui para baixar a versão para Linux. Dica: coloque seus sources sempre na pasta /usr/local/src.

Após o download, torne-se root e abra o arquivo .tar.gz. Acesse então o diretório criado (atualmente noip-2.1.7).
Ok, e agora ? Dentro do subdiretório binaries existem os binários do noip em versão 32 e 64 bits. Copiei o binário de sua versão para o diretório /usr/local/bin. Renomeie o mesmo para noip2, pois é com esse nome que os scripts de inicialização irão tentar iniciar o serviço(se você não fizer isso será necessário mexer nesses scripts).

Configurando
Após, rode o comando noip2 -C.

Será então necessário informar alguns dados:
  • Seu e-mail cadastrado no No-IP;
  • Sua senha;
  • O domínio a ser usado no computador (caso só tenha registrado um único domínio, ele será usado por padrão);
  • Tempo de intervalo para atualização (em caso de troca de IP). O padrão é 30 minutos, o que é bem razoável;
  • Você também será questionado se deseja executar alguma coisa após uma atualização de DNS bem sucedida. Caso seja necessário, você deverá informar o nome do programa a ser rodado (aconselho sempre informar com o caminho completo);
Após todas as perguntas serem respondidas, o arquivo /usr/local/etc/no-ip2.conf será criado.

E como faço pra iniciar o serviço ?
Bem, se você usa Debian ou Ubuntu, um script padrão é incluído no sources. O mesmo se chama debian.noip2.sh (existe também o gentoo.noip2.sh e o mac.osx.startup).

Copie esse arquivo para a pasta /etc/init.d (eu copiei-o como simplesmente noip2.sh para padronizar) e não esqueça de dar permissão de execução para o mesmo. Tenha também cuidado em colocá-lo na inicialização padrão de sua distro. Como fazer isso no Debian e no Ubuntu ? Rode o comando update-rc.d noip2.sh defaults. Ele irá criar os links simbólicos em todos os runlevels.

Terminados esses processos, agora basta iniciar o serviço e curtir seu DNS dinâmico. E se quiser testar o mesmo rode o comando host NomeDoSeuDominio e você irá ver seu nome resolvido para seu IP atual.

Sem mistérios e muitas complicações, o No-IP é uma boa solução para criação de DNS dinâmicos. Se alguém tiver alguma outra dica sobre o tema, aguardo comentários.

quinta-feira, 22 de novembro de 2007

Usando o pdnsd para fazer cache local de DNS

O pdns é uma ferramenta desenvolvida para fazer cache local de DNS em seu desktop/servidor.

Mas por que motivo cachear o DNS ?
O cache local de DNS permite uma maior velocidade de navegação (principalmente em conexões lentas) pois evita que sempre que seja preciso resolver um nome seja necessário consultar um servidor DNS externo.
Além disso também garante uma maior disponibilidade de resolução de nomes no caso do servidor DNS externo apresentar problemas, o que evita que você, por exemplo, não possa navegar (obviamente o pdnsd só resolverá os endereços já cacheados, mas isso com certeza já ajuda muito).

Configurando
O pdns usa o arquivo de configuração /etc/pdnsd.conf.
Nesse arquivo é preciso informar os servidores DNS externos (podem ser um ou mais) onde o pdnsd irá conectar para resolver o nome que não está ainda cacheado e também como o pdnsd irá trabalhar (TTLs, diretórios de armazenamento, entre outras coisas).

Segue como exemplo uma configuração básica do pdnsd usando o DNS do Terra como exemplo (200.176.2.10):

// $Id: pdnsd.conf.in,v 1.4 2000/11/11 20:32:58 thomas Exp $

global {
perm_cache=512; # Tamanho maximo do cache em disco (em Kb)
cache_dir="/var/cache/pdnsd"; # Local do armazenamento do cache
max_ttl=604800; # TTL (Time to Live) em segundos. 1 semana
run_as="pdnsd";
paranoid=off; # Se for on, consulta sempre o DNS externo
# caso contrario usa o cache
status_ctl=on;
}


server {
ip="200.176.2.10"; # IP do Server DNS externo
timeout=30;
interval=30;
uptest=ping;
ping_timeout=50;
purge_cache=off;
}


source {
ttl=86400; # TTL do /etc/hosts (padrão 1 dia)
owner="localhost.";
file="/etc/hosts";
}
É preciso também alterar o /etc/resolv.conf de forma que o nameserver seja o localhost, deixando nele somente a seguinte linha:

nameserver 127.0.0.1

Atenção: Se você usa DHCP é normal que o resolv.conf seja reescrito sempre que o IP for "adquirido". Nesse caso, será sempre necessário alterar o arquivo após o computador "pegar" o IP.

E como funciona exatamente ?
Ao consultar o endereço, o pdnsd primeiro tenta localizar o endereço no cache. Se o endereço existir, ele vai verificar o TTL do mesmo. Caso o TTL não tenha ainda expirado, o IP cacheado será usado.
Caso o TTL tenha expirado ou o endereço não exista em cache, o pdnsd então irá procurar o endereço solicitado nos servidores DNS externos configurados.


Para quem quer uma navegação mais dinâmica, seja por pouca banda ou mesmo só para otimizar um pouco a velocidade, o pdnsd é uma opção interessante e de simples instalação, tanto para servidores quanto para desktops.