O que é DNS dinâmico?
Vamos dar um exemplo comum de uma configuração de DNS. O seu domínio é example.com" A" e você tem registros para server1.example.come server2.example.com. O Server1 está hospedado no Vultr, mas o server2 está hospedado em uma rede local, como dentro da sua empresa ou como uma máquina de desenvolvimento em sua casa. Normalmente, esses tipos de ambientes locais têm endereços IP públicos atribuídos dinamicamente a partir do seu provedor de serviços de Internet (ISP) e podem mudar inesperadamente. Isso resultaria no servidor2 subitamente apontando para um endereço IP errado, o que poderia afetar seriamente o serviço. Este artigo mostra como configurar seu próprio serviço DNS dinâmico, que é executado em uma máquina local e pode atualizar o registro do servidor2 no DNS do Vultr automaticamente após uma alteração de IP pública.
Embora os clientes gostem ddcliente inadyntrabalhem para alguns provedores de DNS, o Vultr atualmente não os suporta e, em vez disso, usa sua própria API personalizada. Este serviço será executado localmente em sua máquina e usará solicitações GET e POST junto com sua chave de acesso.
Pré-requisitos
- Acesse a sua conta Vultr para configurar o DNS e gerenciar as chaves de acesso.
- Capacidade de conectar-se à máquina local que possui um endereço IP dinâmico (ou acessar outra máquina na mesma rede).
Instalação e Configuração
Configurando seu domínio para usar o serviço DNS do Vultr
- Se você não estiver usando o serviço DNS do Vultr no seu domínio, siga este artigo para modificar seus servidores de nomes para uso com o Vultr.
- Depois de configurar o Vultr DNS, vá para a página de gerenciamento de DNS em "Servidores -> DNS -> [seu nome de domínio]".
- Aqui você encontrará todos os registros configurados para o seu domínio. Anote quais registros você gostaria de alterar, pois será necessário mais tarde.
- Somente "
A" os registros são suportados por este utilitário. Se você possui vários " A" registros que deseja atualizar para o mesmo endereço IP, altere-os para " CNAME" registros e aponte-os para um " A" registro. Isso simplificará as coisas para você a longo prazo e é considerado a maneira correta de configurar o DNS.
Instalando as Ferramentas Necessárias
- Conecte-se ao seu servidor local. Isso pode ser diretamente ou através do SSH.
- Essa ferramenta requer o Python 3. A maioria das distribuições do Linux inclui o Python pré-instalado. Caso não esteja instalado em seu ambiente, as instruções estão disponíveis no wiki oficial do Python aqui:
- Esse processo também requer o Git, que você pode instalar com as instruções abaixo:
Fazendo Download do Cliente DNS Dinâmico
Use Git para clonar o repositório que contém o cliente DDNS python. Você deve fazer isso em um diretório seguro para o qual tenha acesso total. Sua pasta pessoal deve ser suficiente. Execute o seguinte comando:
git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns
Gerando um token de acesso pessoal
Gere um token de acesso pessoal no Vultr. Isso pode ser feito em "Conta -> API -> Token de acesso pessoal". Na mesma página, você precisará ir em "Controle de acesso" e clicar no botão "Permitir todos os IPv4", pois você nunca saberá o IP do seu servidor local todas as vezes, daí o ponto do DNS dinâmico.
Configurando a ferramenta para seu servidor
- Leia o
config.json.examplearquivo para obter um exemplo de como deve ser o seu arquivo de configuração.
- Abra o
config.jsonarquivo usando seu editor de texto favorito e preencha os valores com base na configuração específica do servidor.
-
O arquivo deve conter o seguinte:
{
"api_key": "",
"domain": "",
"dynamic_records": [
""
]
}
-
Digite seu token de acesso no campo api_key.
- Digite seu domínio base no
domaincampo. Por exemplo example.com,.
- Agora insira os "
A" registros que você deseja alterar sob o dynamic_recordscampo. Usando o exemplo anterior, você digitaria server2para alterar automaticamente server2o endereço IP. Você pode inserir vários subdomínios. Se você deseja alterar o Aregistro " " básico do seu domínio (normalmente chamado de @registro que responde quando você navega diretamente example.com), basta deixar aspas vazias.
-
Um arquivo de configuração adequado pode ser assim, onde você deseja alterar dinamicamente o IP example.come server2.example.com:
{
"api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"domain": "example.com",
"dynamic_records": [
"",
"server2"
]
}
-
Agora salve essas alterações e seu arquivo deve estar pronto!
Teste sua configuração
- Teste o script e a configuração executando
python3 ddns.py. Se isso não retornar nenhum erro, sua configuração é nominal e você pode iniciar o processo de automação.
Automação
Após concluir a configuração básica, é importante definir uma tarefa recorrente, pois o script não faz isso por padrão. Conecte-se à sua máquina local e siga as etapas abaixo com base no seu sistema operacional.
Linux e Mac OSX
Linux e Mac já têm o cronutilitário instalado, que permite especificar scripts para executar em agendamentos definidos.
- Encontre o caminho completo do
ddns.pyarquivo usando realpath ddns.pyainda no vultrddnsdiretório.
- Corra
crontab -epara editar seu crontab.
-
Adicione a seguinte linha ao final do arquivo, adicionando o caminho real ao ddns.pyarquivo:
*/30 * * * * python3 [full path to ddns.py] > /dev/null 2>&1
-
Isso executará o script a cada 30 minutos e redirecionará toda a sua saída para /dev/null.
- Salve e saia do editor de texto. O arquivo crontab será instalado automaticamente e seu IP será atualizado automaticamente.
janelas
Crie uma tarefa no Agendador de tarefas para executar a cada 30 minutos. Siga o guia da Microsoft para criar tarefas básicas.
- Abra o Agendador de tarefas e clique em "Criar tarefa ...".
- Dê um nome e crie um novo gatilho.
- Clique em "Diariamente". Em "Configurações avançadas", clique para repetir a tarefa a cada 30 minutos e altere "por uma duração de" para "Indefinidamente".
- Adicione uma nova ação para iniciar um programa e navegue até o seu executável Python. Adicione o
ddns.pyscript como argumento.