Criar sub domínio com ip dinâmico ou fixo

O objetivo é apontar um subdomínio para um IP diferente do IP principal do nome de domínio. Se o nosso destino é um ip fixo que não muda, basta na gestão do dns criar um subdomínio com um record A. Temos um domínio registado "example.com" e precisamos que o subdomínio "rpi.example.com" aponte sempre para o mesmo local com o mesmo ip. Se usarmos o CPANEL.

Domains->Zone Editor->+A Record

Inserimos o subdomínio que pretendemos e o ip
rpi.example.com
111.111.111.111

Ficamos com o endereço a apontar para o ip que definimos

Ip Dinâmico

Se o ip é dinâmico (o ip de internet na nossa casa, por exemplo) já não é tão fácil. Existem alguns serviços que nos permitem ter acesso a ip dinâmicos mas, cada um deles tem um domínio especifico e dificilmente vai interligar com o nosso subdomínio. Assim, se tivermos o cpanel podemos criar um ip dinâmico.

Dynamic DNS->CREATE

Criamos o nosso subdomínio "rpi.example.com", podemos até acrescentar uma descrição "Home Router". O cpanel vai criar uma url que permitirá renovar o ip se mudar

https://example.com/cpanelwebcall/lmgzxzxzxzxnqnvstbsmuupeumevzmcxjtnpxalh Mas, como vamos usar esta chamada para alterar o nosso ip? Se tivermos um webserver em casa(o nosso raspberry por exemplo) podemos criar uma rotina que execute determinado comando definindo o tempo.

Cron, Crontab

Cron é um programa que executa comandos ou scripts que são agendados numa tabela designada por crontab.

Crontab é um programa que edita os comandos a serem executados pelo cron a uma determinada hora/dia/mês.
Para visualizar os comandos na lista

crontab -l

Aparece-nos os comandos na lista para serem executados

*/5 * * * * curl http://example.com/check/
*/5 * * * * /usr/bin/php /var/www/html/renovar.php >/dev/null 2>&1

Para editar, pode-se editar diretamente, vai abrir a tabela com o editor por defeito vi. Podemos definir o nosso editor por defeito executando antes export EDITOR=nano

crontab -e

No nosso webserver temos de executar a linha gravada no cpanel.

https://example.com/cpanelwebcall/lmgzxzxzxzxnqnvstbsmuup Editamos o crontab com crontab -e
e inserimos
*/5 * * * * curl https://example.com/cpanelwebcall/lmgzxzxzxzxnqnvstbsmuup

Neste exemplo, a cada 5 minutos o sistema verifica se existiu alteração de ip e muda se for alterado.

configuração crontab

Nota importante: Ao criarmos o record A com o subdomínio, o cpanel coloca o TTL (Time To Live) com o valor por defeito, esse valor se for muito alto, especialmente na altura da criação, vai fazer com que possamos esperar até 1 dia para existir uma propagação efetiva. Quando esta a alterar os dados do domínio, no capnel, dns editor->manage e altera-se o TTL temporariamente para um valor baixo, normalmente uso 300 (5 minutos).