I currently get my ddns from linode. It's a huge pita, because you have to mentally parse the javascript to find the unique identifiers for each dns entry. I may try to switch to bind9 and stick it on a subdomain, but even then a good parse of ip -6 addr is needed.
#!/bin/sh login=noneofyourbusiness pass=keepout key=the_key_you_have_to_get_when_creating a login domain=759244 # teklibre.com resourceid=11054923 # ceres is this machine device=enp7s0 # not strictly needed unless you have firewall issues # useful regex for finding your first valid public address address=$(ip -6 addr list scope global $device | grep -v " fd" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p' | head -n 1) # You have to create one resource id PER host via their web interface first.... # nosql strikes again # first find the domain id, mentally parsing the javascript # curl "https://api.linode.com/?api_key=$key&api_action=domain.list" # Then, based on that, find the resource id # curl "https://api.linode.com/?api_key=$key&api_action=domain.resource.list&domainid=$domain" # And then, after you've gone through all that hell to find out these ids, you have global ddns for # one ipv6 address on that one machine curl "https://api.linode.com/?api_key=$key&api_action=domain.resource.update&domainid=$domain&resourceid=$resourceid&target=$address" > /dev/null # Put something like this in cron - it would be better, IMHO, to just # listen for new addresses via ip mon? or... # 3 */30 * * * * /bin/echo `/bin/date`: `curl # "https://api.linode.com/?api_key=$key&api_action=domain.resource.update&domainid=$domain&resourceid=$resourceid&target=$address" # > /dev/null` # and dont' forget to also keep your certs updated _______________________________________________ Babel-users mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/babel-users
