Como gerenciar seu DNS pela CloudFlare

É comum que plataformas hospedadas na internet, tenham vários subdomínios. Vamos usar o exemplo de um comércio eletrônico situada no endereço: https://www.minhaloja.com.br, é possível que haja um outro endereço como: https://painel.minhaloja.com.br entre outros. Há casos em que existem dezenas ou até mesmo centenas de subdomínios e domínios associados, de forma que as vezes existe um sistema automatizado que gerenciar todos esses registros.
A maioria dos servidores e hospedagens oferecem algum tipo de gerenciador de DNS, entretanto, um dos maiores problemas é que, quando é necessário realizar uma migração, é preciso refazer todas as configurações. Além disso, como o gerenciador é diferente do antigo, é preciso esperar o tempo de propagação. Vamos ver como o CloudFlare nos ajuda com essas e outras questões.

Glossário de Termos

DNS – Domain Name System. É como todos os endereços da internet são gerenciados. É um nome que tem associado um endereço de IP.

API – Interface de programação de aplicações. Permite o acesso a funções de maneira programática

DDOS – Ataque distribuído de negação de serviço. Um ataque que é realizado por milhares de computadores, de maneira que torne um serviço indisponível.

Nameserver – Um NameServer (Servidor de Nomes) devolve-lhe a informação acerca do servidor onde esse endereço está localizado/alojado, para que o browser possa mostrar-lhe o conteúdo do site.

VPS – Servidor Privado Virtual. Qualquer computador que esteja na cloud (Absam) 

Proxy –  É um servidor que age como um intermediário para requisições de clientes solicitando recursos de outros servidores.

Worker – Programa que roda continuamente, aguardando requisições ou realizando atividades periodicamente.

Middleware – Qualquer programa, serviço ou servidor que recebe uma requisição e a altera, antes de repassar para o destino final.

CORS – Cross-origin resource sharing é uma especificação de uma tecnologia de navegadores que define meios para um servidor permitir que seus recursos sejam acessados por uma página web de um domínio diferente.

CloudFlare

A cloudflare é um serviço de DNS gratuito, que fornece uma plataforma de forma que os usuários possam realizar diversas configurações de uma maneira que o controle seja centralizado. Ele possui outras funcionalidades como workers, proteção contra ataques DDOS, firewall, cache, etc. Discutiremos apenas funções que nos são pertinentes.

Uma vez feito o cadastro na sua conta, você precisará adicionar um novo domínio:

Após clicar em + Add Site aparecerá a tela para digitar o seu domínio:

Após clicar em Add Site você será perguntado sobre qual plano deseja assinar. Por hora, iremos selecionar o plano gratuito (free) e clicar em Confirm plan.

Na próxima tela, caso o domínio já esteja ativo, automaticamente será recuperado as informações e já adicionadas no servidor da cloudflare, basta clicar em continuar. Em seguida ele irá solicitar que se altere os nameservers no seu servidor.  Você pode fazer isso no seu servidor de nuvem ou de hospedagem, mas é preferível que a alteração seja feita na organização responsável sobre seu domínio. Caso seu dominio seja brasileiro (.com.br), basta entrar no registro.br. Em caso do domínio ser internacional, é preciso encontrar quem é a organização que tem autoridade sobre o seu domínio. No site da InterNic (https://www.internic.net/) é possível obter essas informações.

Após realizar a troca do nameserver, levará até 24 horas para que as mudanças sejam devidamente propagadas. E só então, peça ao cloudflare para checar se os nameservers estão devidamente configurados para que seja validada a configuração. Tome cuidado com servidores em produção! Pode ser que os mesmos fiquem indisponíveis por um certo período.

Vamos avaliar as funções de DNS, que são encontradas no menu superior:


Ao abrir a página, veremos uma lista de registros ( caso tenha sido recuperado de um domínio ativo ) e um botão para adicionar novas entradas:

Não iremos nos aprofundar sobre os tipos de registros (A, CNAME, SRV, TXT, etc.). O que nos interessa é que toda vez que alguém acessar nosso endereço (meusite.com.br) ele irá vir na cloudflare e procurar os registros associados. Neste caso, ele irá usar o endereço de ip ─ no exemplo acima é 191.252.4.25 ─ que está configurado. Esse endereço de ip, pode ser o ip da sua VPS. 

Também é possível ver o ícone de uma nuvem, em que o primeiro registro está ativo e outros não. Caso esteja ativo, a solicitação será redirecionada por dentro da cloudflare, de maneira que será encapsulada, fornecendo assim uma proteção maior e uma camuflagem no endereço de ip real. Caso esteja inativa, será enviada a solicitação diretamente para o servidor, sem nenhum middleware. A diferença entre um modo e outro, é que somente no modo ativo, as capacidades anteriormente citadas, como proteção de DDOS, funcionarão.

Uma outra função interessante, são as opções de cache:

Essa opção permite que os arquivos estáticos da sua página ( .HTML, .CSS, .JS ), a medida que forem solicitados, sejam fornecidos pela cloudflare e não pelo seu servidor. Desta maneira, há uma redução na quantidade de processamento pelo seu serviço HTTP. A cache, tem um tempo de expiração configurável, logo, após o tempo determinado, ele irá solicitar ao servidor os dados novamente para que sejam atualizados.

É importante notar que é possível que haja alguns problemas de CORS, pois os arquivos serão fornecidos pela cloudflare e não pelo seu servidor. Caso isso ocorra, é preciso marcar a opção: Respect existing headers.

Outra funcionalidade interessante é a opção de instalar o certificado SSL/TLS oferecido:

Você pode criar um novo certificado e instalar na sua VPS realizando as devidas configurações. É preciso também habilitar o proxy, para que as solicitações passem através da cloudflare, caso contrário, haverá falha na identificação de identidade.


Vantagens:

  • Proteção contra ataques DoS e DDoS; 
  • CDN (rede de distribuição de conteúdo); 
  • Criptografia de dados e emissão de certificados SSL (HTTPS); 
  • Firewall para aplicações web; 
  • Otimização de imagens; 
  • Balanceamento de carga; 
  • HTTP/2 e SPDY; 
  • Regras customizadas de cache e redirecionamento; 
  • E muitos outros! 

Desvantagens:

  • Complexidade na Configuração


Conclusão

A CloudFlare disponibiliza a sua plataforma para realização do gerenciamento de DNS. Além disso, é possível utilizar a API (https://api.cloudflare.com/) para integrar com outros serviços, ferramentas de DevOPS, etc. Por exemplo, se torna muito prático criar máquinas virtuais e configurar suas respectivas entradas de DNS. 

Também, sempre que houver novas entradas no DNS ou o endereço de ip da VPS for alterado, as mudanças são quase instantâneas. Lembra do período de 2 horas para propagação? Não é necessário, pois uma vez que o nameserver esteja apontando para CloudFlare, ele não precisará mais ser alterado. E quaisquer mudanças que acontecem dentro da cloudflare, são colocadas em operação imediatamente, diminuindo assim também, o tempo de inatividade em manutenções e migrações.