EdgeMAX - DNS dinâmico personalizado com Cloudflare

Visão geral


Os leitores aprenderão como a configuração do DNS dinâmico através da API de Cloudflare para apontar para o IP EdgeRouter.

Para o fundo, anfitrião de DNS para meu próprio domínio com Cloudflare e queria minha própria configuração DNS dinâmica. Isso pressupõe que o DNS dinâmico já está configurado e funcionando, uma vez que estamos transando nele.

Nós usaremos a API Cloudflare para atualizar um registro que irá apontar para o nosso IP do roteador. Modificaremos o script que gera o config do homem. Se você se sentir desconfortável com isso, você pode executar o script que escrevemos abaixo via cron em vez disso.

1. encontre o id do registro DNS em Cloudflare. O meu é uma A record chamado 'casa' que deve apontar para meu IP público. A seguir e encontre o id do registro na saída do JSON. Você obter o seu token API em sua conta de Cloudflare configurações.

curl https://www.cloudflare.com/api_json.html \
  -d 'a=rec_load_all' \
  -d 'tkn=your_token_here' \
  -d 'email=your_email_here' \
  -d 'z=your_domain_here'

 2. no roteador, crie um script em /config/scripts. Liguei para o meu update_cf.sh. Coloque isso nele:

#!/bin/sh
ip=`vbash -ic "show interfaces" | grep pppoe0 | awk '{print $2}'`
curl https://www.cloudflare.com/api_json.html \
-d 'a=rec_edit' \
-d 'tkn=your_token_here' \
-d 'email=your_email_here' \
-d 'z=your_domain_here' \
-d 'id=the_id_we_found_earlier' \
-d 'type=A' \
-d 'name=home' \
-d 'ttl=1' \
-d "content=$ip" \
> /dev/null

 Você pode ter que ajustar seu ip = foo linha para obter a interface correta. O meu é PPPoE. Além disso, o meu nome de registro é em casa. Tudo o que você colocou aqui será o nome depois que ele atualiza. O resto do script deve ser auto-explicativo. Não se esqueça de chmod a + x ele.

Você pode executá-lo manualmente sem redirecionando a saída de onda para/dev/null para ver se isso geralmente funciona.

3. nós precisamos correr este toda vez que executa homem, então você precisa editar o /opt/vyatta/sbin/vyatta-dynamic-dns.pl. Esse script gera o arquivo de configuração para o homem. Em torno da linha 108 você verá um monte de ' $output. = foo'. Adicionar outra linha antes do retorno' $output;' Declaração parecida com esta:

    $output .= "postscript=/config/scripts/update_cf.sh\n";

 Isso adiciona a config de postscript para o arquivo de conf do homem é gerado automaticamente para a próxima. Isso vai acontecer na reinicialização, embora possa haver uma outra maneira; Se houver, eu não sei, então, reiniciar o router.

Voilà, como homem é executado, ele atualiza o seu provedor DNS dinâmico e então executa o script que nós escrevemos para atualizar também o registro de Cloudflare, mantendo-se atualizado com o seu endereço IP dinâmico.

 

e Ubiquiti Employee

Powered by Zendesk