Executando minha própria hospedagem de registro DNS dinâmico

3

Eu pretendo executar um servidor Debian em casa, ele hospedará vários sites, servidor SSH e email.

Eu tenho um endereço IP dinâmico e não estou disposto a pagar o extra por um IP estático.

Eu estava pensando que eu provavelmente poderia contornar o problema do DNS se eu executasse meu próprio servidor de nomes e usasse algo como no-ip para definir endereços de servidores de nomes atualizados automaticamente para meus domínios registrados, por exemplo:

No registrador:

john-hunt.com (and my other domains) nameservers = johnns1.noip.com & johnns2.noip.com

johnns1.noip.com, johnns2.noip.com -> my dynamic IP

O que garantirá que os servidores de nomes dos meus domínios estejam sempre apontando para minha máquina em casa.

Eu executarei o BIND ou algo semelhante na máquina doméstica para realmente fornecer os registros DNS.

O problema real que tenho é que eu não sei exatamente como eu configuro o BIND (ou tinydns ou qualquer outro) para aceitar e aplicar atualizações quando meu endereço IP muda. Eu posso pensar em uma maneira de evitá-lo ( poll & ping johnns1.noip.com para obter meu endereço IP, depois grep nos zonefiles e recarregar a cada 5 minutos ..) mas isso não parece muito sólido.

Alguém tem alguma experiência nesta área? Eu dei uma olhada nos serviços aprimorados do no-ip, mas eles querem US $ 25 para hospedar registros para cada domínio (e eu tenho alguns).

    
por John Hunt 17.07.2014 / 14:37

2 respostas

2

Eu faço o seguinte que funcionou bem para mim nos últimos 10 anos ou mais. Eu configurei um nome DNS dinâmico em um serviço como DynDNS (que era gratuito até este ano) ou algum outro provedor. Isso me dá um ponto de apoio para que meu IP em constante mudança sempre esteja enraizado em um nome estático como sam.dyndns.org.

Eu então crio CNAMEs em bind que apontam para este nome estático e voila tenho nomes permanentes.

    
por 17.07.2014 / 15:51
0

Embora o BIND tenha suporte DDNS, é um pouco difícil de configurar, já que você precisa criar chaves de autenticação porque as atualizações parecem ser tratadas pelo próprio protocolo DNS, para permitir que as atualizações venham de uma máquina diferente para essa rodando o servidor BIND, então isso obviamente requer um mecanismo de autenticação seguro.

Eu mesmo seguiria esse caminho, mas acabaria tendo meu domínio hospedado no serviço Route53 da Amazon. Eles têm uma API para atualizar registros que podem ser usados para IPs dinâmicos. Defino um TTL baixo para essa entrada e tenho um cronjob na minha máquina que procura o meu endereço IP atual e atualiza o registro Route53 se o meu IP tiver mudado.

O custo no momento da escrita é de cerca de US $ 0,90 / mês, por isso não é gratuito, mas isso parece bastante razoável para o meu caso de uso, considerando a redundância e o failover embutidos no serviço. O restante das minhas entradas de DNS também estão lá porque o custo é por zona, independentemente de quantas entradas você realmente colocou na zona.

Eu uso as ferramentas de linha de comando aws junto com um script como este (executado a partir do cron uma vez por hora) para atualizar o registro Route53 quando meu IP muda:

#!/bin/sh

function updateDNS
{
        TARGET_ZONEID="$1"
        TARGET_FQDN="$2"
        IP="$3"
        CUR_IP="$4"
        TYPE="$5"

        if [ "$IP" != "$CUR_IP" ]; then
                echo '{ "Comment": "DDNS update", "Changes":[ { "Action":"UPSERT", "ResourceRecordSet":{ "ResourceRecords": [ { "Value":"'"$IP"'" } ], "Name": "'"$TARGET_FQDN"'", "Type": "'"$TYPE"'", "TTL": 60} } ] }' |
                        aws route53 change-resource-record-sets --hosted-zone-id "$TARGET_ZONEID" --change-batch file:///dev/stdin > /dev/null
        fi
}

TARGET_ZONEID="ABC123"
TARGET_FQDN="homeip.example.com."
IP='dig +short myip.opendns.com @resolver1.opendns.com'
CUR_IP='dig +short "$TARGET_FQDN"'
TYPE="A"

updateDNS "$TARGET_ZONEID" "$TARGET_FQDN" "$IP" "$CUR_IP" "$TYPE"
# Can add more updateDNS calls to do other hosts, AAAA records, etc.

Eu corro este script de alguns hosts na rede para que, se um deles estiver inativo, o IP ainda seja atualizado.

    
por 02.09.2018 / 01:55