ifdyndnsd-0.1.0 is not a library.
Visit the last successful build:
ifdyndnsd-0.2.0
ifdyndnsd
Watches Linux netlink for interface addresses and their changes to perform DynDNS like nsupdate.
Usage
Pass your configuration file as argument:
cargo run config.toml
Configuration
# Define a key which can be referenced by "mykey". These keys are
# usually generated with BIND's `ddns-confgen`.
[]
# IP address of the DNS server
# (sorry, can't resolve this yet)
= "192.0.2.53"
# Key name which needs to match the name configured for the key in the
# DNS server
= "mykey.example.com"
# Algorithm to use for TSIG
= "hmac-sha256"
# # Plain-text secret; exclusive with `secret-base64`
# secret = "topsecret\n"
# Secret encoded in base64 just like BIND uses. This allows using
# binary strings.
= "dG9wc2VjcmV0Cg=="
# Update an A record (IPv4)
[[]]
# Select `[key.mykey]` for server/key settings
= "mykey"
# DNS name to update
= "dyndns.example.net"
# Network interface to watch for an IP address
= "ppp0"
# # Optionally select the proper IP address by subnet. This is the
# # default for IPv4:
# scope = "0.0.0.0/0"
# Update a AAAA record (IPv6)
[[]]
# Select `[key.mykey]` for server/key settings
= "mykey"
# DNS name to update
= "dyndns.example.net"
# Network interface to watch for an IP address
= "ppp0"
# # Optionally select the proper IP address by subnet. This is the
# # default for IPv6, which filters for global addresses but not
# # link-local, ULA, ...:
= "2000::/3"
# Update another AAAA record
# (when you have setup prefix delegation so that you distribute the
# dynamic ISP-assigned subnet to your LAN)
[[]]
= "mykey"
# For IPv6 ifdyndnsd doesn't need to run on the LAN gateway.
= "server.home.example.net"
# Watch the local LAN interface for addresses
= "eth0"
# Default `scope = "2000::/3"` should be right in most DynDNS
# scenarios.
# Once the IPv6 address is known, ifdyndnsd can also update DNS
# records for other hosts in your LAN if you know the last 64 bits of
# their radvd-assigned addresses (the host part in a /64 network). Be
# careful not to use /temporary/ addresses (Privacy Extensions) here:
= "::2de:adff:fe00:beef"
= "::2de:caff:fefb:ad00"
= "::212:23ff:fe56:789a"