A simple Dynamic DNS source for octoDNS.
Supports both IPv4 and IPv6 addresses. Generally useful when you have a zone with staticly configured records but would also like to include a dynamic record, e.g. for your office or home on a non-fixed IP address.
By default it uses http://api.ident.me/ to find the public address of the machine running the sync.
pip install octodns-ddns
Pinning specific versions or SHAs is recommended to avoid unplanned upgrades.
# Start with the latest versions and don't just copy what's here
octodns==0.9.14
octodns-ddns==0.0.1
# Start with the latest/specific versions and don't just copy what's here
-e git+https://git@github.com/octodns/octodns.git@9da19749e28f68407a1c246dfdf65663cdc1c422#egg=octodns
-e git+https://git@github.com/octodns/octodns-ddns.git@ec9661f8b335241ae4746eea467a8509205e6a30#egg={MODULE}
The following config will combine the records in ./config/example.com.yaml
and the dynamically looked up address at dynamic.example.com.
creating both
IPv4 and IPv6 addresses.
providers:
config:
class: octodns.provider.yaml.YamlProvider
directory: ./config
dynamic:
class: octodns_ddns.DdnsSource
route53:
class: octodns.provider.route53.Route53Provider
access_key_id: env/AWS_ACCESS_KEY_ID
secret_access_key: env/AWS_SECRET_ACCESS_KEY
zones:
example.com.:
sources:
- config
- dynamic # will add dynamic.example.com.
targets:
- route53
You can configure it to only do A
or AAAA
by adding a types
param to the
provider config.
dynamic:
class: octodns_ddns.DdnsSource
types:
- A
If you would like to use an alternate provider for looking up your address you
can configure urls
with a
and/or aaaa
with urls that return the address
as the content of the response.
dynamic:
class: octodns_ddns.DdnsSource
urls:
A: https://v4.ident.me/
AAAA: https://v6.ident.me/