Dynamically update DNS records with your interface's public IPs

Dynamic Route53 DNS

Dynamically update DNS records with your interface's public IPs

Usage of /usr/bin/route53-dynamic-dns:
      --config string         Path to a config JSON file
      --default-ttl int       Default time to live on record
  -z, --default-zone string   Default Zone ID to update
  -i, --interfaces strings    List of interfaces to evaluate (default [eth0])

Config file format

", // Optional "records": [ "vpn.home.example.com", "ui.home.example.com" ], "recordTypes": ["A", "AAAA"], "ttl": 300 }, { "zoneId": " ", // Optional "records": [ "vpn6.home.example.com" ], "recordTypes": ["AAAA"] } ] ">
[
  {
    "zoneId": "
    
     "
    , // Optional
    "records": [
      "vpn.home.example.com",
      "ui.home.example.com"
    ],
    "recordTypes": ["A", "AAAA"],
    "ttl": 300
  },
  {
    "zoneId": "
    
     "
    , // Optional
    "records": [
      "vpn6.home.example.com"
    ],
    "recordTypes": ["AAAA"]
  }
]

Installation on Unifi Dream Machine

First, set up udm-utilities from https://github.com/boostchicken/udm-utilities on your Unifi Dream Machine. This utilitiy is very useful with kchristensen/udm-le for Lets Encrypt TLS and wireguard-go in udm-utilities.

  1. Copy the contents of this repo to your device at /mnt/data/route53-dynamic-dns.
    docker run -it --rm -v /mnt/data/:/mnt/data/ --net host alpine /bin/sh
    $ apk -U add git
    $ cd /mnt/data
    $ git clone https://github.com/micahhausler/route53-dynamic-dns.git
  2. Edit route53-dynamic-dns.env and tweak variables to meet your needs.
  3. Edit records.json with the records you want created
  4. Run /mnt/data/route53-dynamic-dnsle/route53-dynamic-dns.sh sync. This will handle your initial DNS record and setup a cron task at /etc/cron.d/route53-dynamic-dns to attempt a DNS update each morning at 03:02.
  5. Copy on_boot.d/21-dynamic-dns.sh to /mnt/data/on_boot.d/. This will ensure that the DNS gets updated and cron is re-created after a system update.

LICENSE

Apache 2.0. See LICENSE

Owner
Micah Hausler
Working on EKS @ AWS
Micah Hausler
Similar Resources

CUP - Cloudflare (DNS) Updater Program

CUP The Cloudflare (DNS) Updater CUP is a tool to turn CloudFlare DNS into a Dynamic DNS service. Documentation Documentation can be found in the docs

Jun 6, 2022

🐶 Command-line DNS Client for Humans. Written in Golang

🐶 Command-line DNS Client for Humans. Written in Golang

doggo 🐶 Command-line DNS client for humans doggo is a modern command-line DNS client (like dig) written in Golang. It outputs information in a neat c

Dec 29, 2022

CoreDNS is a DNS server that chains plugins

CoreDNS is a DNS server that chains plugins

CoreDNS is a DNS server/forwarder, written in Go, that chains plugins. Each plugin performs a (DNS) function. CoreDNS is a Cloud Native Computing Foun

Jan 3, 2023

Fast and lightweight DNS proxy as ad-blocker for local network with many features

Blocky Blocky is a DNS proxy and ad-blocker for the local network written in Go with following features: Features Blocking - Blocking of DNS queries w

Jan 1, 2023

Are you forwarding DNS traffic to another server for some reason, but want to make sure only queries for certain names are passed? Say no more.

DNSFWD Redirect DNS traffic to an upstream. Get Latest: wget https://github.com/C-Sto/dnsfwd/releases/latest/download/dnsfwd_linux (replace linux with

Dec 16, 2022

Fast DNS implementation for Go

Fast DNS implementation for Go Features 0 Dependency Similar Interface with net/http Fast DoH Server Co-create with fasthttp Fast DNS Client with rich

Dec 27, 2022

Gotator is a tool to generate DNS wordlists through permutations.

Gotator is a tool to generate DNS wordlists through permutations.

Gotator is a tool to generate DNS wordlists through permutations.

Dec 28, 2022

DNS lookup using Go

DNS lookup using Go

DNS lookup using Go

Dec 30, 2022

DNSTake — A fast tool to check missing hosted DNS zones that can lead to subdomain takeover

DNSTake — A fast tool to check missing hosted DNS zones that can lead to subdomain takeover

DNSTake — A fast tool to check missing hosted DNS zones that can lead to subdomain takeover

Dec 28, 2022
A DNS client in Go that supports Google DNS over HTTPS

dingo A DNS client (stub resolver) implemented in Go for the Google DNS-over-HTTPS. It effectively encrypts all your DNS traffic. It also supports Ope

Nov 9, 2022
dnscrypt-proxy 2 - A flexible DNS proxy, with support for encrypted DNS protocols.
dnscrypt-proxy 2 - A flexible DNS proxy, with support for encrypted DNS protocols.

Overview A flexible DNS proxy, with support for modern encrypted DNS protocols such as DNSCrypt v2, DNS-over-HTTPS and Anonymized DNSCrypt. dnscrypt-p

Jan 3, 2023
A smol DNS server (<100 loc) that's configured with a static JSON file. Useful for split-dns.

A smol DNS server (<100 loc) that's configured with a static JSON file. Useful for split-dns.

Jul 27, 2022
Very tiny program for updating A records on digital ocean.

DDNS Tiny library for updating DNS records on digital ocean. Usage ddns does only one thing, update a domain's root A record inside of DigitalOcean wi

Dec 17, 2021
DNS library in Go

Alternative (more granular) approach to a DNS library Less is more. Complete and usable DNS library. All Resource Records are supported, including the

Dec 26, 2022
DNS over HTTPS [mirror]

dnss dnss is a daemon for using DNS over HTTPS. It can act as a proxy, receiving DNS requests and resolving them using DNS-over-HTTPs (DoH). This can

Dec 26, 2022
DNS server with per-client targeted responses

GeoDNS servers This is the DNS server powering the NTP Pool system and other similar services. Questions or suggestions? For bug reports or feature re

Dec 15, 2022
GRONG is a DNS (Domain Name System) authoritative name server.It is more a research project than a production-ready program.

GRONG (Gross and ROugh Nameserver written in Go) is a DNS (Domain Name System) authoritative name server. It is intended as a research project and is

Oct 17, 2020
Multicast DNS library for Go

Introduction This package allows Go processes to publish multicast DNS style records onto their local network segment. For more information about mDNS

Oct 23, 2022
Resolver (DNS) cache daemon.
Resolver (DNS) cache daemon.

RESCACHED(1) Manual Page NAME rescached - DNS resolver cache daemon. Table of Contents SYNOPSIS OPTIONS DESCRIPTION FEATURES BEHIND THE DNS HOW CACHE

Nov 17, 2022